Skip to main content
Version: 1.16.0

Class: ApplyChainUpdates

Defined in: cct/evm/token-pool/operations/apply-chain-updates.ts:330

Configures, enables and disables a token pool's remote lanes via applyChainUpdates.

Remarks​

Owner-gated on-chain (onlyOwner). Supply sender to have that checked against the pool's owner() before a tx is built; ApplyChainUpdates.execute defaults it to the signing wallet, the only address a broadcast tx can satisfy it with.

Extends​

Constructors​

Constructor​

new ApplyChainUpdates(): ApplyChainUpdates

Returns​

ApplyChainUpdates

Inherited from​

EVMOperation< ApplyChainUpdatesParams, ParsedApplyChainUpdatesParams >.constructor

Properties​

name​

readonly name: "applyChainUpdates" = 'applyChainUpdates'

Defined in: cct/evm/token-pool/operations/apply-chain-updates.ts:334

camelCase id; matches the token-manager facade method and error context.

Overrides​

EVMOperation.name

Methods​

buildUnsigned()​

protected buildUnsigned(chain: EVMChain, params: ParsedApplyChainUpdatesParams): Promise<UnsignedEVMTx>

Defined in: cct/evm/token-pool/operations/apply-chain-updates.ts:379

Resolves the pool's type and version, applies the checks that needed it, then encodes for that version's signature — adapting the params to v1.5.0's chains array on a legacy pool.

Parameters​

ParameterType
chainEVMChain
paramsParsedApplyChainUpdatesParams

Returns​

Promise<UnsignedEVMTx>

Throws​

CCTParamsInvalidError if a rate limit breaks its enabled-bucket bound, a lane lists several remote pools for a v1.5.0 pool, or sender is not the pool owner

Throws​

CCTContractTypeInvalidError if the address is not a supported pool type

Throws​

CCTContractVersionUnsupportedError if the pool reports an unknown version

Overrides​

EVMOperation.buildUnsigned


execute()​

execute(chain: EVMChain, params: EVMExecuteParams<ApplyChainUpdatesParams>): Promise<TransactionResult>

Defined in: cct/evm/operation.ts:150

generate, then sign and submit; returns the confirmed tx hash.

Parameters​

ParameterType
chainEVMChain
paramsEVMExecuteParams<ApplyChainUpdatesParams>

Returns​

Promise<TransactionResult>

Inherited from​

EVMOperation.execute


generate()​

generate(chain: EVMChain, params: ApplyChainUpdatesParams): Promise<UnsignedEVMTx>

Defined in: cct/evm/operation.ts:110

Run prepare and buildUnsigned, applying optional sender; no signing.

Parameters​

ParameterType
chainEVMChain
paramsApplyChainUpdatesParams

Returns​

Promise<UnsignedEVMTx>

Remarks​

Also pins every built transaction to chain.network.chainId (no RPC, known at construction). This is the one point every CCT builder and both execute paths pass through; unpinned, ethers would infer the chain from the eventual signer's provider.

Inherited from​

EVMOperation.generate


prepare()​

protected prepare(params: ApplyChainUpdatesParams): ParsedApplyChainUpdatesParams

Defined in: cct/evm/token-pool/operations/apply-chain-updates.ts:348

Validates the pool address and every lane entry before any RPC, keeping what each check produced so neither buildUnsigned nor an encoder re-derives it. Only the version-conditional checks are left for once the pool's version is known.

Parameters​

ParameterType
paramsApplyChainUpdatesParams

Returns​

ParsedApplyChainUpdatesParams

Throws​

CCTParamsInvalidError if any lane field is invalid

Overrides​

EVMOperation.prepare


resolveWalletSender()​

protected resolveWalletSender(wallet: unknown, sender?: string): Promise<string>

Defined in: cct/evm/operation.ts:130

Resolves the address a signed submission is authorized against: the signing wallet's own. The chain gates on msg.sender, and submit clears any builder-set tx.from before populating the tx (so ethers' own from/signer guard never fires) — an explicit sender that differs from the wallet would therefore let an op's pre-tx checks authorize one address while a different one actually signs, passing every local guard and reverting on-chain. Ops that gate on an on-chain role call this from execute; build with generateUnsigned* instead when the eventual signer isn't known yet, where sender is trusted as given.

Parameters​

ParameterType
walletunknown
sender?string

Returns​

Promise<string>

Throws​

CCIPWalletInvalidError if wallet is not a valid signer

Throws​

CCTParamsInvalidError if sender is given and is not the wallet's address

Inherited from​

EVMOperation.resolveWalletSender