Skip to main content
Version: 1.15.0

Class: SetChainRateLimiterConfigs

Defined in: cct/evm/token-pool/operations/set-chain-rate-limiter-configs.ts:244

Sets the inbound/outbound rate limits of one or more configured lanes on a token pool, in a single transaction. Gated on the pool's owner or its rateLimitAdmin.

Extends​

Constructors​

Constructor​

new SetChainRateLimiterConfigs(): SetChainRateLimiterConfigs

Returns​

SetChainRateLimiterConfigs

Inherited from​

EVMOperation<SetChainRateLimiterConfigsParams>.constructor

Properties​

name​

readonly name: "setChainRateLimiterConfigs" = 'setChainRateLimiterConfigs'

Defined in: cct/evm/token-pool/operations/set-chain-rate-limiter-configs.ts:245

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

Overrides​

EVMOperation.name

Methods​

buildUnsigned()​

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

Defined in: cct/evm/token-pool/operations/set-chain-rate-limiter-configs.ts:285

Reads the pool's type-and-version, floor-matches the encoder and its contract interface, then — when sender is known — pre-flights it against the pool's owner or its rateLimitAdmin.

Parameters​

ParameterType
chainEVMChain
paramsSetChainRateLimiterConfigsParams

Returns​

Promise<UnsignedEVMTx>

Remarks​

The role check lives here, not only in execute, so the offline / multisig path gets it too: generateUnsignedSetChainRateLimiterConfigs with an unauthorized sender would otherwise hand back a fully-formed transaction that reverts Unauthorized only after being reviewed and signed. Every sibling pool write gates in buildUnsigned for the same reason; this one is gated on a disjunction rather than the owner alone, so it reads both roles instead of using assertPoolOwner.

Throws​

CCTParamsInvalidError if sender is neither the pool owner nor its (set) rateLimitAdmin, or a multi-lane updates is sent to a v1.5.0 pool

Overrides​

EVMOperation.buildUnsigned


execute()​

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

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

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

Parameters​

ParameterType
chainEVMChain
paramsEVMExecuteParams<SetChainRateLimiterConfigsParams>

Returns​

Promise<TransactionResult>

Inherited from​

EVMOperation.execute


generate()​

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

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

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

Parameters​

ParameterType
chainEVMChain
paramsSetChainRateLimiterConfigsParams

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


parse()​

protected parse(params: SetChainRateLimiterConfigsParams): SetChainRateLimiterConfigsParams

Defined in: cct/operation.ts:42

Normalize validated params for the builder — defaults, conversions, derived values. Identity by default, so an op that needs no normalization declares nothing.

Parameters​

ParameterType
paramsSetChainRateLimiterConfigsParams

Returns​

SetChainRateLimiterConfigsParams

Inherited from​

EVMOperation.parse


prepare()​

protected prepare(params: SetChainRateLimiterConfigsParams): SetChainRateLimiterConfigsParams

Defined in: cct/operation.ts:48

validate then parse — the single pre-RPC step, before any chain access.

Parameters​

ParameterType
paramsSetChainRateLimiterConfigsParams

Returns​

SetChainRateLimiterConfigsParams

Inherited from​

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


validate()​

protected validate(__namedParameters: SetChainRateLimiterConfigsParams): void

Defined in: cct/evm/token-pool/operations/set-chain-rate-limiter-configs.ts:264

Validates the pool address and every update before any RPC. fastFinality is permitted here, and the version-specific rate bounds are not applied (null version) — whether this pool has that field, and which bound its RateLimiter enforces, are only known once its version is resolved, so the version-specific encoder is what rejects those (see parseUpdates).

Parameters​

ParameterType
__namedParametersSetChainRateLimiterConfigsParams

Returns​

void

Overrides​

EVMOperation.validate