Class: SetSiloRebalancer
Defined in: cct/evm/token-pool/operations/set-silo-rebalancer.ts:76
Appoints one lane's silo rebalancer on a siloed pool (v1.6.0–v1.6.1). Owner-only.
Extends
EVMOperation<SetSiloRebalancerParams>
Constructors
Constructor
new SetSiloRebalancer():
SetSiloRebalancer
Returns
SetSiloRebalancer
Inherited from
EVMOperation<SetSiloRebalancerParams>.constructor
Properties
name
readonlyname:"setSiloRebalancer"='setSiloRebalancer'
Defined in: cct/evm/token-pool/operations/set-silo-rebalancer.ts:77
camelCase id; matches the token-manager facade method and error context.
Overrides
EVMOperation.name
Methods
buildUnsigned()
protectedbuildUnsigned(chain:EVMChain,params:SetSiloRebalancerParams):Promise<UnsignedEVMTx>
Defined in: cct/evm/token-pool/operations/set-silo-rebalancer.ts:120
Resolves the pool's type/version, floor-matches the encoder, rejects a zero rebalancer on a
v1.6.0 pool, confirms the lane is siloed, then that sender (when given) is the pool owner.
Parameters
| Parameter | Type |
|---|---|
chain | EVMChain |
params | SetSiloRebalancerParams |
Returns
Promise<UnsignedEVMTx>
Remarks
The zero-address check needs only the version, so it costs no RPC. The lane check is
a property of the pool and runs with or without sender. Both live here, not in
execute, so the offline / multisig path gets them too.
Throws
CCTContractTypeInvalidError if the pool is not a SiloedLockReleaseTokenPool
Throws
CCTOperationUnsupportedError on a v2.0.0 pool
Throws
CCTParamsInvalidError if rebalancer is zero on a v1.6.0 pool, the lane is
not siloed, or sender is given and is not the pool owner
Throws
CCTContractVersionUnsupportedError if the pool reports an unknown version
Overrides
EVMOperation.buildUnsigned
execute()
execute(
chain:EVMChain,params:EVMExecuteParams<SetSiloRebalancerParams>):Promise<TransactionResult>
Defined in: cct/evm/token-pool/operations/set-silo-rebalancer.ts:151
Signs and submits as the pool owner, defaulting sender to the signing wallet: the only
address that can satisfy buildUnsigned's owner check for a broadcast tx. See
EVMOperation.resolveWalletSender for why a divergent sender is rejected rather
than signed.
Parameters
| Parameter | Type |
|---|---|
chain | EVMChain |
params | EVMExecuteParams<SetSiloRebalancerParams> |
Returns
Promise<TransactionResult>
Throws
CCIPWalletInvalidError if wallet is not a valid signer
Throws
CCTParamsInvalidError if sender is given and is not the wallet's address,
or the wallet is not the pool owner
Throws
CCIPExecTxRevertedError if the tx reverts on-chain
Overrides
EVMOperation.execute
generate()
generate(
chain:EVMChain,params:SetSiloRebalancerParams):Promise<UnsignedEVMTx>
Defined in: cct/evm/operation.ts:110
Run prepare and buildUnsigned, applying optional sender; no signing.
Parameters
| Parameter | Type |
|---|---|
chain | EVMChain |
params | SetSiloRebalancerParams |
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()
protectedparse(params:SetSiloRebalancerParams):SetSiloRebalancerParams
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
| Parameter | Type |
|---|---|
params | SetSiloRebalancerParams |
Returns
Inherited from
EVMOperation.parse
prepare()
protectedprepare(params:SetSiloRebalancerParams):SetSiloRebalancerParams
Defined in: cct/operation.ts:48
validate then parse — the single pre-RPC step, before any chain access.
Parameters
| Parameter | Type |
|---|---|
params | SetSiloRebalancerParams |
Returns
Inherited from
EVMOperation.prepare
resolveWalletSender()
protectedresolveWalletSender(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
| Parameter | Type |
|---|---|
wallet | unknown |
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()
protectedvalidate(__namedParameters:SetSiloRebalancerParams):void
Defined in: cct/evm/token-pool/operations/set-silo-rebalancer.ts:92
Validates the pool, lane and rebalancer before any RPC. A zero rebalancer passes here: only
the pool's version decides whether it is allowed.
Parameters
| Parameter | Type |
|---|---|
__namedParameters | SetSiloRebalancerParams |
Returns
void
Overrides
EVMOperation.validate