diff --git a/CHANGELOG.md b/CHANGELOG.md index 69c036e41..38c8f164d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ * `Governor`: Adds internal virtual `_getVotes` method that must be implemented; this is a breaking change for existing concrete extensions to `Governor`. To fix this on an existing voting module extension, rename `getVotes` to `_getVotes` and add a `bytes memory` argument. ([#3043](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3043)) * `Governor`: Adds `params` parameter to internal virtual `_countVote ` method; this is a breaking change for existing concrete extensions to `Governor`. To fix this on an existing counting module extension, add a `bytes memory` argument to `_countVote`. ([#3043](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3043)) * `Governor`: Does not emit `VoteCast` event when params data is non-empty; instead emits `VoteCastWithParams` event. To fix this on an integration that consumes the `VoteCast` event, also fetch/monitor `VoteCastWithParams` events. ([#3043](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3043)) +* `Votes`: The internal virtual function `_getVotingUnits` was made `view` (which was accidentally missing). Any overrides should now be updated so they are `view` as well. ## 4.5.0 (2022-02-09) diff --git a/contracts/governance/utils/Votes.sol b/contracts/governance/utils/Votes.sol index cc5101b9f..202c3f2cf 100644 --- a/contracts/governance/utils/Votes.sol +++ b/contracts/governance/utils/Votes.sol @@ -207,5 +207,5 @@ abstract contract Votes is IVotes, Context, EIP712 { /** * @dev Must return the voting units held by an account. */ - function _getVotingUnits(address) internal virtual returns (uint256); + function _getVotingUnits(address) internal view virtual returns (uint256); } diff --git a/contracts/mocks/VotesMock.sol b/contracts/mocks/VotesMock.sol index db06ee9a5..b5e051340 100644 --- a/contracts/mocks/VotesMock.sol +++ b/contracts/mocks/VotesMock.sol @@ -18,7 +18,7 @@ contract VotesMock is Votes { return _delegate(account, newDelegation); } - function _getVotingUnits(address account) internal virtual override returns (uint256) { + function _getVotingUnits(address account) internal view virtual override returns (uint256) { return _balances[account]; } diff --git a/contracts/token/ERC721/extensions/draft-ERC721Votes.sol b/contracts/token/ERC721/extensions/draft-ERC721Votes.sol index 7d23c4921..4d9d0adba 100644 --- a/contracts/token/ERC721/extensions/draft-ERC721Votes.sol +++ b/contracts/token/ERC721/extensions/draft-ERC721Votes.sol @@ -34,7 +34,7 @@ abstract contract ERC721Votes is ERC721, Votes { /** * @dev Returns the balance of `account`. */ - function _getVotingUnits(address account) internal virtual override returns (uint256) { + function _getVotingUnits(address account) internal view virtual override returns (uint256) { return balanceOf(account); } }