Queue
Queing a proposal for execution on the onchain cool-down period.
The queue function is responsible for moving a successful proposal into the Onyx Timelock queue. Once a proposal has been approved by the governance process, it must be queued before it can be executed. Only proposals that have met the required voting threshold and have been successfully passed can be queued.
Function Implementation in CHNGovernance
CHNGovernance
In the CHNGovernance
contract, the queue()
function ensures that only validated proposals are added to the Timelock queue, preventing unauthorized executions.
Function Signature
Parameters
proposalId
: The unique identifier of the governance proposal that has been successfully approved and is eligible to be queued.RETURN
: The function does not return a value. If the proposal is invalid or not yet approved, it will revert with an error.
Example Solidity Implementation
To queue a proposal using Solidity, the queue()
function can be called from an instance of the CHNGovernance
contract:
Web3.js Implementation (v1.2.6)
For interacting with the CHNGovernance
contract using Web3.js, the following example demonstrates how to queue a proposal:
Technical Considerations
The
queue()
function is state-modifying and will incur gas costs.A proposal must have succeeded in the voting phase before it can be queued.
Once queued, the proposal must wait for the Timelock period before execution can occur.
The Timelock contract ensures security and decentralization by preventing immediate execution after voting.
If an attempt is made to queue a proposal that has not succeeded, the transaction will revert with an error.
Last updated