Skip to content

feat(cct-sdk): CCT SDK integration branch - #304

Draft
apedrob wants to merge 88 commits into
mainfrom
cct-sdk
Draft

feat(cct-sdk): CCT SDK integration branch#304
apedrob wants to merge 88 commits into
mainfrom
cct-sdk

Conversation

@apedrob

@apedrob apedrob commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

-- Integration branch for CCT-SDK --

apedrob and others added 30 commits June 12, 2026 17:25
apedrob and others added 30 commits July 21, 2026 16:43
* 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
* 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* fix: add TODO and validation 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

* 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* feat: add configure allowlist op solana

* fix: assert configure allowlist functions

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* 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 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* feat: add configure allowlist op solana

* fix: assert configure allowlist functions

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* fix: address comments

* feat: add remove from allowlist op solana

* fix: add validations and test coverage

* fix: add additional tsdoc
* 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(cct-sdk): add cross-family Query read base (DAPP-10823)

Query wires validate -> read so params are rejected before any RPC, mirroring how
Operation.generate gates buildUnsigned on the write side. EVMQuery binds it to an
EVMChain and owns getTypedContract, the single ethers -> ethers-abitype bridge that
CCT read ops decode through.

* feat(cct-sdk): add pool family type guards (DAPP-10823)

BurnMintTokenPoolType / LockReleaseTokenPoolType split TOKEN_POOL_TYPES by ABI family,
and isLockReleaseTokenPoolType narrows to the lock/release set per getTokenPoolFamily.

* feat(cct-sdk): add EVM getTokenPoolState read op (DAPP-10823)

Reads a pool's admin state across v1.5.0-v2.0.0 through the getters each version has:
one reader per generation, dispatched explicitly rather than floor-matched, so adding a
pool version fails to compile instead of silently inheriting a reader. The result is a
union discriminated by version, then by type for a lock/release pool's lockBox. v1.5.0
has no getTokenDecimals, so legacy decimals come from the token.

* feat(cct-sdk): expose getTokenPoolState on EVMTokenManager (DAPP-10823)

Also groups the operation fields by area (token / token admin registry / token pool /
lockbox), matching SolanaTokenManager.

* refactor(cct-sdk): move SolanaQuery onto the shared Query base (DAPP-10823)

GetTokenPoolState gains name + validate and drops its params-conditional result: read
now resolves to the union, which removes a query override that only re-typed the base's
two steps, along with the two casts that conditional return required. Caller narrowing
moves to SolanaTokenManager.getTokenPoolState overloads, so call sites and inferred
types are unchanged.

* Address PR comments

* Address PR 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 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* feat: add configure allowlist op solana

* fix: assert configure allowlist functions

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* fix: address comments

* feat: add remove from allowlist op solana

* fix: add validations and test coverage

* fix: add additional tsdoc

* feat: add init chain remote config op solana

* fix: throw empty buffer

* fix: update tsdoc

* 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 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* feat: add configure allowlist op solana

* fix: assert configure allowlist functions

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* fix: address comments

* feat: add remove from allowlist op solana

* fix: add validations and test coverage

* fix: add additional tsdoc

* feat: add init chain remote config op solana

* fix: throw empty buffer

* fix: update tsdoc

* feat: add edit chain remote config op solana

* fix: refactor wallet params

* fix: address comments

* 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 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* feat: add configure allowlist op solana

* fix: assert configure allowlist functions

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* fix: address comments

* feat: add remove from allowlist op solana

* fix: add validations and test coverage

* fix: add additional tsdoc

* feat: add init chain remote config op solana

* fix: throw empty buffer

* fix: update tsdoc

* feat: add edit chain remote config op solana

* fix: refactor wallet params

* feat: add delete chain remote config op solana

* fix: address comments

* 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

* 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(cct-sdk): add cross-family Query read base (DAPP-10823)

Query wires validate -> read so params are rejected before any RPC, mirroring how
Operation.generate gates buildUnsigned on the write side. EVMQuery binds it to an
EVMChain and owns getTypedContract, the single ethers -> ethers-abitype bridge that
CCT read ops decode through.

* feat(cct-sdk): add pool family type guards (DAPP-10823)

BurnMintTokenPoolType / LockReleaseTokenPoolType split TOKEN_POOL_TYPES by ABI family,
and isLockReleaseTokenPoolType narrows to the lock/release set per getTokenPoolFamily.

* feat(cct-sdk): add EVM getTokenPoolState read op (DAPP-10823)

Reads a pool's admin state across v1.5.0-v2.0.0 through the getters each version has:
one reader per generation, dispatched explicitly rather than floor-matched, so adding a
pool version fails to compile instead of silently inheriting a reader. The result is a
union discriminated by version, then by type for a lock/release pool's lockBox. v1.5.0
has no getTokenDecimals, so legacy decimals come from the token.

* feat(cct-sdk): expose getTokenPoolState on EVMTokenManager (DAPP-10823)

Also groups the operation fields by area (token / token admin registry / token pool /
lockbox), matching SolanaTokenManager.

* refactor(cct-sdk): move SolanaQuery onto the shared Query base (DAPP-10823)

GetTokenPoolState gains name + validate and drops its params-conditional result: read
now resolves to the union, which removes a query override that only re-typed the base's
two steps, along with the two casts that conditional return required. Caller narrowing
moves to SolanaTokenManager.getTokenPoolState overloads, so call sites and inferred
types are unchanged.

* Address PR comments

* feat(cct-sdk): Add register token evm op

---------

Co-authored-by: mervin-link <tvc-mervin.villaceran@smartcontract.com>
* 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* feat: add configure allowlist op solana

* fix: assert configure allowlist functions

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* fix: address comments

* feat: add remove from allowlist op solana

* fix: add validations and test coverage

* fix: add additional tsdoc

* feat: add init chain remote config op solana

* fix: throw empty buffer

* fix: update tsdoc

* feat: add edit chain remote config op solana

* fix: refactor wallet params

* feat: add delete chain remote config op solana

* fix: migrate solana ops to use parse

* fix: update tsdoc
* 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(cct-sdk): add cross-family Query read base (DAPP-10823)

Query wires validate -> read so params are rejected before any RPC, mirroring how
Operation.generate gates buildUnsigned on the write side. EVMQuery binds it to an
EVMChain and owns getTypedContract, the single ethers -> ethers-abitype bridge that
CCT read ops decode through.

* feat(cct-sdk): add pool family type guards (DAPP-10823)

BurnMintTokenPoolType / LockReleaseTokenPoolType split TOKEN_POOL_TYPES by ABI family,
and isLockReleaseTokenPoolType narrows to the lock/release set per getTokenPoolFamily.

* feat(cct-sdk): add EVM getTokenPoolState read op (DAPP-10823)

Reads a pool's admin state across v1.5.0-v2.0.0 through the getters each version has:
one reader per generation, dispatched explicitly rather than floor-matched, so adding a
pool version fails to compile instead of silently inheriting a reader. The result is a
union discriminated by version, then by type for a lock/release pool's lockBox. v1.5.0
has no getTokenDecimals, so legacy decimals come from the token.

* feat(cct-sdk): expose getTokenPoolState on EVMTokenManager (DAPP-10823)

Also groups the operation fields by area (token / token admin registry / token pool /
lockbox), matching SolanaTokenManager.

* refactor(cct-sdk): move SolanaQuery onto the shared Query base (DAPP-10823)

GetTokenPoolState gains name + validate and drops its params-conditional result: read
now resolves to the union, which removes a query override that only re-typed the base's
two steps, along with the two casts that conditional return required. Caller narrowing
moves to SolanaTokenManager.getTokenPoolState overloads, so call sites and inferred
types are unchanged.

* Address PR comments

* feat(cct-sdk): Add register token evm op

* feat(cct-sdk): Add transfer admin evm op

* docs(cct-sdk): document ZeroAddress cancellation behavior and add role distinction warning to transferAdmin execute method

* feat(cct-sdk): Add accept admin evm op (#328)

* feat(cct-sdk): Add accept admin evm op

* feat(cct-sdk): Add get token admin registry config evm query (#335)

* feat(cct-sdk): Add get token admin registry config evm op

* docs(cct-sdk): add ZeroAddress caveat to GetTokenAdminRegistryResult type alias

Clarify that administrator may be ZeroAddress for pending-acceptance state;
guide callers to test with === ZeroAddress instead of truthiness to avoid
silently missing the pending-registration case.

* feat(cct-sdk): Add get supported tokens evm query (#336)

* feat(cct-sdk): Add get supported tokens evm query

* docs+types(cct-sdk): add default page size and explicit result type to getSupportedTokens

- Document that page parameter defaults to 1000 tokens per call
- Add explicit GetSupportedTokensResult type export for surface parity with
  sibling ops and Solana variant
- Makes the intent clearer and provides consistency across CCT query operations

* fix: use GetSupportedTokensResult

---------

Co-authored-by: aelmanaa <aelmanaa@users.noreply.github.com>
Co-authored-by: mervin-link <tvc-mervin.villaceran@smartcontract.com>

---------

Co-authored-by: aelmanaa <aelmanaa@users.noreply.github.com>
Co-authored-by: mervin-link <tvc-mervin.villaceran@smartcontract.com>

---------

Co-authored-by: aelmanaa <aelmanaa@users.noreply.github.com>
Co-authored-by: mervin-link <tvc-mervin.villaceran@smartcontract.com>

---------

Co-authored-by: aelmanaa <aelmanaa@users.noreply.github.com>
Co-authored-by: mervin-link <tvc-mervin.villaceran@smartcontract.com>
* 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

* fix: add validateOptionalPublicKey and refactor test files

* fix: update solana lifecycle

* fix: remove dev build

* feat: add configure allowlist op solana

* fix: assert configure allowlist functions

* fix: address comments

* fix: params.additionalAddresses.length with eslint rule

* fix: address comments

* feat: add remove from allowlist op solana

* fix: add validations and test coverage

* fix: add additional tsdoc

* feat: add init chain remote config op solana

* fix: throw empty buffer

* fix: update tsdoc

* feat: add edit chain remote config op solana

* fix: refactor wallet params

* feat: add delete chain remote config op solana

* fix: migrate solana ops to use parse

* feat: add set rate limit op solana

* fix: defaults to zeroes if enabled is false

* fix: update tsdoc

* feat(cct-sdk): Add set chain rate limit admin op solana (#347)

feat: add set rate limit admin op solana
* fix: refactor solana parse with validations

* fix: remove TODO

* fix: address comments
* feat: add apply chian updates op solana

* fix: add explicitly types

* fix: address comments

* fix: update tsdoc

* fix: address comments

* feat(cct-sdk): Add append remote pool addresses op solana (#352)

* feat: add append remote pool addresses op solana

* fix: address comments
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