diff --git a/contracts/governance/extensions/GovernorCountingOverridable.sol b/contracts/governance/extensions/GovernorCountingOverridable.sol index 6e20d9fbf..2ab669fa0 100644 --- a/contracts/governance/extensions/GovernorCountingOverridable.sol +++ b/contracts/governance/extensions/GovernorCountingOverridable.sol @@ -52,6 +52,11 @@ abstract contract GovernorCountingOverridable is GovernorVotes { /** * @dev See {IGovernor-hasVoted}. + * + * NOTE: Calling {castVote} (or similar) casts a vote using the voting power that is delegated to the voter. + * Conversely, calling {castOverrideVote} (or similar) uses the voting power of the account itself, from its asset + * balances. Casting an "override vote" does not count as voting and won't be reflected by this getter. Consider + * using {hasVotedOverride} to check if an account has casted an "override vote" for a given proposal id. */ function hasVoted(uint256 proposalId, address account) public view virtual override returns (bool) { return _proposalVotes[proposalId].voteReceipt[account].casted != 0; @@ -120,7 +125,11 @@ abstract contract GovernorCountingOverridable is GovernorVotes { return totalWeight; } - /// @dev Variant of {Governor-_countVote} that deals with vote overrides. + /** + * @dev Variant of {Governor-_countVote} that deals with vote overrides. + * + * NOTE: See {hasVoted} for more details about the difference between {castVote} and {castOverrideVote}. + */ function _countOverride(uint256 proposalId, address account, uint8 support) internal virtual returns (uint256) { ProposalVote storage proposalVote = _proposalVotes[proposalId]; @@ -150,7 +159,7 @@ abstract contract GovernorCountingOverridable is GovernorVotes { return overridenWeight; } - /// @dev variant of {Governor-_castVote} that deals with vote overrides. + /// @dev Variant of {Governor-_castVote} that deals with vote overrides. function _castOverride( uint256 proposalId, address account,