Skip to content

governor:timelock-execute

Execute a ready TimelockController operation. Takes the same action block, predecessor and salt used in governor:timelock-schedule.

⚗️ Experimental — available at next.evmcrispr.com.

Smart blocks: cannot be nested. This command opens a separate atomic execution context; nested atomic blocks are unsupported.

governor:timelock-execute <timelock> <actions>
NameTypeEvaluationDescription
timelockaddressBuild timeTimelockController address
actionsblockBuild timeBlock of commands making up the operation
NameTypeEvaluationDescription
--predecessorbytes32Build timeOperation id that must execute first (default none)
--saltbytes32Build timeSalt used when scheduling (default zero)
load governor
load acl
set $timelock 0xc0dbDcA66a0636236fAbe1B3C16B1bD4C84bB1E1
set $token 0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb
set $grantee 0x4F2083f5fBede34C2714aFfb3105539775f7FE64
governor:timelock-execute $timelock (
exec $token transfer(address,uint256) $grantee 100e18
acl:grant MINTER_ROLE on $token to $grantee
)
  • The block, --predecessor and --salt must match the original governor:timelock-schedule exactly.
  • Requires the EXECUTOR_ROLE (or none, when the role is granted to the zero address). Any ETH the actions spend is forwarded automatically.