You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1021 B
34 lines
1021 B
// SPDX-License-Identifier: MIT
|
|
|
|
pragma solidity ^0.8.0;
|
|
|
|
import "../Governor.sol";
|
|
|
|
/**
|
|
* @dev Extension of {Governor} for proposal restriction to token holders with a minimum balance.
|
|
*
|
|
* _Available since v4.3._
|
|
*/
|
|
abstract contract GovernorProposalThreshold is Governor {
|
|
/**
|
|
* @dev See {IGovernor-propose}.
|
|
*/
|
|
function propose(
|
|
address[] memory targets,
|
|
uint256[] memory values,
|
|
bytes[] memory calldatas,
|
|
string memory description
|
|
) public virtual override returns (uint256) {
|
|
require(
|
|
getVotes(msg.sender, block.number - 1) >= proposalThreshold(),
|
|
"GovernorCompatibilityBravo: proposer votes below proposal threshold"
|
|
);
|
|
|
|
return super.propose(targets, values, calldatas, description);
|
|
}
|
|
|
|
/**
|
|
* @dev Part of the Governor Bravo's interface: _"The number of votes required in order for a voter to become a proposer"_.
|
|
*/
|
|
function proposalThreshold() public view virtual returns (uint256);
|
|
}
|
|
|