Description
The StandardGovernor contract inherits from IGovernor, which states the following:
/// @title Minimal OpenZeppelin-style, Tally-compatible governor. interface IGovernor is IERC6372, IERC712 {But the StandardGovernor contract implements quorum functions in the following way:
/// @inheritdoc IGovernor
function quorum() external pure returns (uint256) {
return 0;
}
/// @inheritdoc IGovernor
function quorum(uint256) external pure returns (uint256) {
return 0;
}The documentation from Tally states that it "needs the quorum to calculate if a proposal has passed." Returning quorum as zero, even though that's not the quorum threshold's value, will not only break some compatibility with Tally, but it also might bring about unexpected outputs to other smart contracts within the Ethereum ecosystem expecting the StandardGovernor to follow full Tally compatibility, as stated in IGovernor, thus breaking modularity.
Recommendation
Consider properly implementing the quorum functions. Optionally, be explicit about this lack of compatibility.
Status
Addressed in #235.