Skip to main content
Version: 1.15.0

Class: DeployAdvancedPoolHooks

Defined in: cct/evm/advanced-pool-hooks/operations/deploy-advanced-pool-hooks.ts:73

Deploys an AdvancedPoolHooks; execute resolves to { hash, contractAddress, verification }, where verification.encodedConstructorArgs is the ABI-encoded ctor tuple a block explorer needs to verify the source.

Extends​

Constructors​

Constructor​

new DeployAdvancedPoolHooks(): DeployAdvancedPoolHooks

Returns​

DeployAdvancedPoolHooks

Inherited from​

EVMDeployOperation<DeployAdvancedPoolHooksParams>.constructor

Properties​

name​

readonly name: "deployAdvancedPoolHooks" = 'deployAdvancedPoolHooks'

Defined in: cct/evm/advanced-pool-hooks/operations/deploy-advanced-pool-hooks.ts:74

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

Overrides​

EVMDeployOperation.name

Methods​

artifact()​

protected artifact(): DeployArtifact

Defined in: cct/evm/advanced-pool-hooks/operations/deploy-advanced-pool-hooks.ts:91

Deploy artifact for AdvancedPoolHooks (v2.0.0).

Returns​

DeployArtifact

Overrides​

EVMDeployOperation.artifact


buildUnsigned()​

protected buildUnsigned(_chain: EVMChain, params: DeployAdvancedPoolHooksParams): UnsignedEVMTx

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

Builds a deployment tx (no to): creation bytecode + ABI-encoded constructor args.

Parameters​

ParameterType
_chainEVMChain
paramsDeployAdvancedPoolHooksParams

Returns​

UnsignedEVMTx

Inherited from​

EVMDeployOperation.buildUnsigned


encode()​

protected encode(iface: Interface, p: DeployAdvancedPoolHooksParams): string

Defined in: cct/evm/advanced-pool-hooks/operations/deploy-advanced-pool-hooks.ts:96

ABI-encodes the AdvancedPoolHooks (v2.0.0) constructor args; omitted params encode as off.

Parameters​

ParameterType
ifaceInterface
pDeployAdvancedPoolHooksParams

Returns​

string

Overrides​

EVMDeployOperation.encode


execute()​

execute(chain: EVMChain, params: EVMExecuteParams<DeployAdvancedPoolHooksParams>): Promise<DeployResult>

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

generate, then sign and submit; resolves to the tx hash and the newly deployed contract address (validated against the submitted CREATE sender and nonce), plus the ExplorerVerificationInput for verifying its source on a block explorer.

Parameters​

ParameterType
chainEVMChain
paramsEVMExecuteParams<DeployAdvancedPoolHooksParams>

Returns​

Promise<DeployResult>

Remarks​

Assumes a direct EOA CREATE deployment. Factory/CREATE2 deployments derive their address differently and must not use this base.

Throws​

CCTTxFailedError if the tx mined without the expected contract address

Inherited from​

EVMDeployOperation.execute


generate()​

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

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

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

Parameters​

ParameterType
chainEVMChain
paramsDeployAdvancedPoolHooksParams

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​

EVMDeployOperation.generate


parse()​

protected parse(params: DeployAdvancedPoolHooksParams): DeployAdvancedPoolHooksParams

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
paramsDeployAdvancedPoolHooksParams

Returns​

DeployAdvancedPoolHooksParams

Inherited from​

EVMDeployOperation.parse


prepare()​

protected prepare(params: DeployAdvancedPoolHooksParams): DeployAdvancedPoolHooksParams

Defined in: cct/operation.ts:48

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

Parameters​

ParameterType
paramsDeployAdvancedPoolHooksParams

Returns​

DeployAdvancedPoolHooksParams

Inherited from​

EVMDeployOperation.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​

EVMDeployOperation.resolveWalletSender


validate()​

protected validate(params: DeployAdvancedPoolHooksParams): void

Defined in: cct/evm/advanced-pool-hooks/operations/deploy-advanced-pool-hooks.ts:83

Validates the constructor params before building init-code. Not parse: a normalizing deploy op would publish verification args that differ from the deployed ones, because EVMDeployOperation.execute re-derives them from the raw params.

Parameters​

ParameterType
paramsDeployAdvancedPoolHooksParams

Returns​

void

Remarks​

A zero in allowlist is the nastier of the two zero cases — the constructor skips it but still counts it, permanently enabling an allowlist containing nobody.

Overrides​

EVMDeployOperation.validate