import "../../contracts/governance/extensions/GovernorProposalThreshold.sol"; contract GovernorProposalThresholdHarness is GovernorProposalThreshold { mapping(uint256 => uint256) _quorum; function quorum(uint256 blockNumber) public view override virtual returns (uint256) { return _quorum[blockNumber]; } mapping (address => mapping (uint256 => uint256)) _getVotes; function getVotes(address account, uint256 blockNumber) public view override virtual returns (uint256) { return _getVotes[account][blockNumber]; } mapping (uint256 => bool) __quoromReached; function _quorumReached(uint256 proposalId) public view override virtual returns (bool) { return __quoromReached[proposalId]; } mapping (uint256 => bool) __voteSucceeded; function _voteSucceeded(uint256 proposalId) public view override virtual returns (bool) { return __voteSucceeded[proposalId]; } //string _COUNTING_MODE; function COUNTING_MODE() public pure override virtual returns (string memory) { return "dummy"; } mapping(uint256 => mapping(address => bool)) _hasVoted; function hasVoted(uint256 proposalId, address account) public view override virtual returns (bool) { return _hasVoted[proposalId][account]; } uint256 _votingDelay; function votingDelay() public view override virtual returns (uint256) { return _votingDelay; } uint256 _votingPeriod; function votingPeriod() public view override virtual returns (uint256) { return _votingPeriod; } function _countVote( uint256 proposalId, address account, uint8 support, uint256 weight ) internal override virtual { // havoc something } uint256 _proposalThreshold; function proposalThreshold() public view override virtual returns (uint256) { return _proposalThreshold; } constructor(string memory name) Governor(name) {} }