Repository navigation
Conversation
…able-solana-cct-sdk
## What - [DAPP-10500](https://smartcontract-it.atlassian.net/browse/DAPP-10500) - Add Solana CCT SDK support for appending addresses to an existing lookup table - Share CCIP lookup table address derivation between create and append operations - Add validation for ALT existence, authority mismatch, address sources, and 256-address capacity limits ## Why - Vault-owned ALTs need to be created empty and populated later through the vault authority, which requires an extend-only operation that can be serialized for external signing [DAPP-10500]: https://smartcontract-it.atlassian.net/browse/DAPP-10500?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
## What - [DAPP-10175](https://smartcontract-it.atlassian.net/browse/DAPP-10175): Add the CCT SDK at `@chainlink/ccip-sdk/cct` - Introduce `EVMTokenManager` with `generateUnsignedSetPool` (build unsigned tx) and `setPool` (sign + submit) - Add `setPool` operation module: validates params, encodes `setPool(localToken, pool)`, discovers `TokenAdminRegistry` via router - Add `Operation` / `EVMOperation` lifecycle abstraction (validate → encode → submit) - Add shared CCT infra: `TokenManager` base, submit action, address validations, and error types ## Why - TMEM's Set Pool flow currently builds calldata client-side via `ccip-contracts`. This adds a first-class SDK path for CCT admin ops so consumers (partners / dapp team) can build and submit txs server-side with consistent validation and error handling # Testing - CI ## Notes - smartcontractkit/explorer#10928 vendors this SDK and wires it into our server-side endpoint - [CCT SDK Architecture & Requirements (DD)](https://docs.google.com/document/d/1-4Q-l5bc_kX5olWH3JWOT2Sl5oqaESUFlum2LQNxs4Y/edit?usp=sharing) [DAPP-10175]: https://smartcontract-it.atlassian.net/browse/DAPP-10175?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
## What - [DAPP-10480](https://smartcontract-it.atlassian.net/browse/DAPP-10480) and [DAPP-10500](https://smartcontract-it.atlassian.net/browse/DAPP-10500) - Add Solana CCT `createLookupTable` and `appendToLookupTable` operation for generating pool lookup table instructions - Support typed Solana unsigned results with extra metadata such as `lookupTableAddress` - Add optional `computeUnits` support to Solana CCT execute params ## Why - Solana token pool setup needs a reusable SDK operation to build ALT instructions and return the derived lookup table address - Future Solana CCT operations may also need generated metadata results alongside unsigned transaction instructions [DAPP-10480]: https://smartcontract-it.atlassian.net/browse/DAPP-10480?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [DAPP-10500]: https://smartcontract-it.atlassian.net/browse/DAPP-10500?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
* chore(cct-sdk): Gate subtree from public releases * Fix line comment
* feat: add deploy token op solana * fix: add tsdoc * fix: address comments * fix: address comments
* Better separation of concerns and abstractions * CCT: Add version dispatch + Transfer Ownership * Adjust with base * Address generic error types and doc examples * Fix linting * add example doc for op * linting fix
* Better separation of concerns and abstractions * CCT: Add version dispatch + Transfer Ownership * Adjust with base * Address generic error types and doc examples * Fix linting * feat(cct-sdk): Add deploy evm token * Address PR comments * Address PR comments by fixing chain-specific types * feat(cct-sdk): Source chainlink/contracts-ccip artifacts (#303) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * Remove outdated bytecodes * feat(cct-sdk): Add CrossChainToken deployment + token versioning (#305) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * feat(cct-sdk): Add versioned Deploy Token (CCT + ERC20) * Remove outdated bytecodes * Deploy only CrossChainToken * Recover previous type changes * Address preMint specs
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * fix: address comments * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * fix: address comments * fix: export resolveTokenMint
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * feat: add create token multisig op solana * fix: refactor validators * fix: refactor validators * fix: export pool programs and type * fix: use current module's PublicKey * fix: address comments * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * fix: change to TransactionResult * fix: address comments * fix: export resolveTokenMint * fix: merge conflicts
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * feat: add get token pool state op solana * fix: address comments * fix: let decodeTokenPoolState catch errors * fix: add parsePublicKey helper * fix: move getTokenPoolState declaration * fix: address comments * fix: export resolveTokenMint * fix: address comments
* Better separation of concerns and abstractions * CCT: Add version dispatch + Transfer Ownership * Adjust with base * Address generic error types and doc examples * Fix linting * feat(cct-sdk): Add deploy evm token * Address PR comments * Address PR comments by fixing chain-specific types * feat(cct-sdk): Source chainlink/contracts-ccip artifacts (#303) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * Remove outdated bytecodes * feat(cct-sdk): Add CrossChainToken deployment + token versioning (#305) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * feat(cct-sdk): Add versioned Deploy Token (CCT + ERC20) * Remove outdated bytecodes * Deploy only CrossChainToken * Recover previous type changes * Address preMint specs * feat(cct-sdk): Add deploy evm token pool + type/version resolution * add remarks ts doc comment * Address PR comments * add lockfile to fix ci issue * Add comments
* Better separation of concerns and abstractions * CCT: Add version dispatch + Transfer Ownership * Adjust with base * Address generic error types and doc examples * Fix linting * feat(cct-sdk): Add deploy evm token * Address PR comments * Address PR comments by fixing chain-specific types * feat(cct-sdk): Source chainlink/contracts-ccip artifacts (#303) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * Remove outdated bytecodes * feat(cct-sdk): Add CrossChainToken deployment + token versioning (#305) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * feat(cct-sdk): Add versioned Deploy Token (CCT + ERC20) * Remove outdated bytecodes * Deploy only CrossChainToken * Recover previous type changes * Address preMint specs * feat(cct-sdk): Add deploy evm token pool + type/version resolution * add remarks ts doc comment * Address PR comments * add lockfile to fix ci issue * Add comments * feat(cct-sdk): Add EVM deployLockbox operation (DAPP-10738) Vendor ERC20LockBox v2.0.0 artifacts; add the cached lockbox Interface + DeployLockbox op, wire generateUnsignedDeployLockbox/deployLockbox into EVMTokenManager, and document the LockRelease deploy sequence. * Address comments and linting
* Better separation of concerns and abstractions * CCT: Add version dispatch + Transfer Ownership * Adjust with base * Address generic error types and doc examples * Fix linting * feat(cct-sdk): Add deploy evm token * Address PR comments * Address PR comments by fixing chain-specific types * feat(cct-sdk): Source chainlink/contracts-ccip artifacts (#303) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * Remove outdated bytecodes * feat(cct-sdk): Add CrossChainToken deployment + token versioning (#305) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * feat(cct-sdk): Add versioned Deploy Token (CCT + ERC20) * Remove outdated bytecodes * Deploy only CrossChainToken * Recover previous type changes * Address preMint specs * feat(cct-sdk): Add deploy evm token pool + type/version resolution * add remarks ts doc comment * Address PR comments * add lockfile to fix ci issue * Add comments * feat(cct-sdk): Add EVM deployLockbox operation (DAPP-10738) Vendor ERC20LockBox v2.0.0 artifacts; add the cached lockbox Interface + DeployLockbox op, wire generateUnsignedDeployLockbox/deployLockbox into EVMTokenManager, and document the LockRelease deploy sequence. * feat(cct-sdk): Add EVM authorizeLockboxCallers operation (DAPP-10788) Add AuthorizeLockboxCallers op (wraps ERC20LockBox applyAuthorizedCallerUpdates) + tests, and wire generateUnsignedAuthorizeLockboxCallers/authorizeLockboxCallers into EVMTokenManager to complete the LockRelease flow. * Update doc
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * feat: add get token pool state op solana * fix: address comments * fix: let decodeTokenPoolState catch errors * fix: add parsePublicKey helper * fix: move getTokenPoolState declaration * fix: address comments * fix: export resolveTokenMint * feat: add register token op solana * fix: update register token tests * fix: get pool state tests * fix: address comments * fix: update tsdoc for register admin * fix: update tsdoc for register admin
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * feat: add get token pool state op solana * fix: address comments * fix: let decodeTokenPoolState catch errors * fix: add parsePublicKey helper * fix: move getTokenPoolState declaration * fix: address comments * fix: export resolveTokenMint * feat: add register token op solana * fix: update register token tests * feat: add propose admin op solana * fix: get pool state tests * fix: address comments * fix: update tsdoc for register admin * fix: update tsdoc for register admin * fix: address comments
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * feat: add get token pool state op solana * fix: address comments * fix: let decodeTokenPoolState catch errors * fix: add parsePublicKey helper * fix: move getTokenPoolState declaration * fix: address comments * fix: export resolveTokenMint * feat: add register token op solana * fix: update register token tests * feat: add propose admin op solana * fix: get pool state tests * feat: add accept admin op solana * fix: address comments * fix: update tsdoc for register admin * fix: update tsdoc for register admin * fix: address comments * fix: address comments * fix: address comments * fix: update err.context.reason test
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * feat: add get token pool state op solana * fix: address comments * fix: let decodeTokenPoolState catch errors * fix: add parsePublicKey helper * fix: move getTokenPoolState declaration * fix: address comments * fix: export resolveTokenMint * fix: address comments * fix: refactor solana ops * fix: package-lock file * fix: package script * fix: remove cct exports and add script to pack package including cct * fix: address comments * fix: address comments * fix: add comment
* Better separation of concerns and abstractions * CCT: Add version dispatch + Transfer Ownership * Adjust with base * Address generic error types and doc examples * Fix linting * feat(cct-sdk): Add deploy evm token * Address PR comments * Address PR comments by fixing chain-specific types * feat(cct-sdk): Source chainlink/contracts-ccip artifacts (#303) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * Remove outdated bytecodes * feat(cct-sdk): Add CrossChainToken deployment + token versioning (#305) * feat(cct-sdk): Source token + pool abi/bytecode from contracts-ccip * feat(cct-sdk): Add versioned Deploy Token (CCT + ERC20) * Remove outdated bytecodes * Deploy only CrossChainToken * Recover previous type changes * Address preMint specs * feat(cct-sdk): Add deploy evm token pool + type/version resolution * add remarks ts doc comment * Address PR comments * add lockfile to fix ci issue * Add comments * feat(cct-sdk): Add EVM deployLockbox operation (DAPP-10738) Vendor ERC20LockBox v2.0.0 artifacts; add the cached lockbox Interface + DeployLockbox op, wire generateUnsignedDeployLockbox/deployLockbox into EVMTokenManager, and document the LockRelease deploy sequence. * feat(cct-sdk): Add EVM authorizeLockboxCallers operation (DAPP-10788) Add AuthorizeLockboxCallers op (wraps ERC20LockBox applyAuthorizedCallerUpdates) + tests, and wire generateUnsignedAuthorizeLockboxCallers/authorizeLockboxCallers into EVMTokenManager to complete the LockRelease flow. * refactor(cct-sdk): add validateNonZeroAddress + guard single-tx submit * feat(cct-sdk): EVM deploy verification + unify deploy ops * Address PR comments * Review pass
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * feat: add get token pool state op solana * fix: address comments * fix: let decodeTokenPoolState catch errors * fix: add parsePublicKey helper * fix: move getTokenPoolState declaration * fix: address comments * fix: export resolveTokenMint * feat: add register token op solana * fix: update register token tests * feat: add propose admin op solana * fix: get pool state tests * feat: add accept admin op solana * fix: address comments * fix: update tsdoc for register admin * fix: update tsdoc for register admin * fix: address comments * fix: address comments * fix: address comments * fix: update err.context.reason test * feat: add get token admin registry config op solana * fix: group tests * fix: merge conflicts * fix: remove console logs * fix: refactor test * fix: add tsdoc for decodeTokenAdminRegistryConfig
* feat: add deploy token op solana * feat: add deploy token pool op solana * fix: add wallet and authority assertion * fix: add tsdoc * fix: add tsdoc * feat: add create token account op solana * fix: group ops in SolanaTokenManager * fix: address comments * fix: remove helper function and override execute * fix: address comments * fix: address comments * fix: refactor validators * fix: export pool programs and type * fix: add validateAuthorityMatchesWallet * fix: use validateAuthorityMatchesWallet * fix: add @remarks to deploy token pool * feat: add get token pool state op solana * fix: address comments * fix: let decodeTokenPoolState catch errors * fix: add parsePublicKey helper * fix: move getTokenPoolState declaration * fix: address comments * fix: export resolveTokenMint * feat: add register token op solana * fix: update register token tests * feat: add propose admin op solana * fix: get pool state tests * feat: add accept admin op solana * fix: address comments * fix: update tsdoc for register admin * fix: update tsdoc for register admin * fix: address comments * fix: address comments * fix: address comments * fix: update err.context.reason test * feat: add get token admin registry config op solana * fix: group tests * fix: merge conflicts * fix: remove console logs * fix: refactor test * fix: add tsdoc for decodeTokenAdminRegistryConfig * feat: add get supported tokens op solana * fix: address followup comments * fix: address comments
|
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
force-pushed
the
cct-sdk
branch
2 times, most recently
from
September 30, 2026 14:50
e2b4455 to
56d4281
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.