1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.20;
- import {Governor} from "../../../governance/Governor.sol";
- import {GovernorCountingSimple} from "../../../governance/extensions/GovernorCountingSimple.sol";
- import {GovernorVotes} from "../../../governance/extensions/GovernorVotes.sol";
- import {GovernorVotesQuorumFraction} from "../../../governance/extensions/GovernorVotesQuorumFraction.sol";
- import {GovernorTimelockControl} from "../../../governance/extensions/GovernorTimelockControl.sol";
- import {TimelockController} from "../../../governance/TimelockController.sol";
- import {IVotes} from "../../../governance/utils/IVotes.sol";
- contract MyGovernor is
- Governor,
- GovernorCountingSimple,
- GovernorVotes,
- GovernorVotesQuorumFraction,
- GovernorTimelockControl
- {
- constructor(
- IVotes _token,
- TimelockController _timelock
- ) Governor("MyGovernor") GovernorVotes(_token) GovernorVotesQuorumFraction(4) GovernorTimelockControl(_timelock) {}
- function votingDelay() public pure override returns (uint256) {
- return 7200; // 1 day
- }
- function votingPeriod() public pure override returns (uint256) {
- return 50400; // 1 week
- }
- function proposalThreshold() public pure override returns (uint256) {
- return 0;
- }
- // The functions below are overrides required by Solidity.
- function state(uint256 proposalId) public view override(Governor, GovernorTimelockControl) returns (ProposalState) {
- return super.state(proposalId);
- }
- function proposalNeedsQueuing(
- uint256 proposalId
- ) public view virtual override(Governor, GovernorTimelockControl) returns (bool) {
- return super.proposalNeedsQueuing(proposalId);
- }
- function _queueOperations(
- uint256 proposalId,
- address[] memory targets,
- uint256[] memory values,
- bytes[] memory calldatas,
- bytes32 descriptionHash
- ) internal override(Governor, GovernorTimelockControl) returns (uint48) {
- return super._queueOperations(proposalId, targets, values, calldatas, descriptionHash);
- }
- function _executeOperations(
- uint256 proposalId,
- address[] memory targets,
- uint256[] memory values,
- bytes[] memory calldatas,
- bytes32 descriptionHash
- ) internal override(Governor, GovernorTimelockControl) {
- super._executeOperations(proposalId, targets, values, calldatas, descriptionHash);
- }
- function _cancel(
- address[] memory targets,
- uint256[] memory values,
- bytes[] memory calldatas,
- bytes32 descriptionHash
- ) internal override(Governor, GovernorTimelockControl) returns (uint256) {
- return super._cancel(targets, values, calldatas, descriptionHash);
- }
- function _executor() internal view override(Governor, GovernorTimelockControl) returns (address) {
- return super._executor();
- }
- }
|