GovernanceTimelockFacet

Git Source

Inherits: UnifiedGovernanceBase

Handles proposal execution delays within the unified governance framework

Simplified timelock functionality for unified governance

State Variables

proposalExecutionTimes

mapping(uint256 => uint256) public proposalExecutionTimes;

Functions

queueProposal

Queue a proposal for execution after timelock delay

function queueProposal(uint256 proposalId) external;

executeQueuedProposal

Execute a queued proposal after timelock delay has passed

function executeQueuedProposal(uint256 proposalId) external returns (uint256);

updateTimelockDelay

Update the timelock delay (governance only)

function updateTimelockDelay(uint256 newDelay) external;

getProposalExecutionTime

Get the execution time for a queued proposal

function getProposalExecutionTime(uint256 proposalId) external view returns (uint256);

isProposalReady

Check if a proposal is ready for execution

function isProposalReady(uint256 proposalId) external view returns (bool);

getTimelockDelay

Get current timelock delay

function getTimelockDelay() external view returns (uint256);

_proposalSucceeded

function _proposalSucceeded(uint256 proposalId) internal view returns (bool);

configureOCFStockClasses

function configureOCFStockClasses(GovernanceStorage.OCFStockClass[] calldata stockClasses) external pure override;

configureOCFProposalTypes

function configureOCFProposalTypes(GovernanceStorage.OCFProposalTypeConfig[] calldata proposalTypes)
    external
    pure
    override;

updateStakeholderShares

function updateStakeholderShares(address stakeholder, string calldata classId, uint256 shares) external pure override;

calculateVotingPower

function calculateVotingPower(address stakeholder, string memory proposalType) public pure override returns (uint256);

canVetoProposal

function canVetoProposal(address stakeholder, string memory proposalType) public pure override returns (bool);

Events

ProposalQueued

event ProposalQueued(uint256 indexed proposalId, uint256 executeTime);

ProposalExecuted

event ProposalExecuted(uint256 indexed proposalId);

TimelockDelayUpdated

event TimelockDelayUpdated(uint256 oldDelay, uint256 newDelay);

Last updated

Was this helpful?