Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/few-baboons-switch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'openzeppelin-solidity': minor
---

[Deprecations]
`Checkpoints`, `DoubleEndedQueue`, `EnumerableMap` and `EnumerableSet`: Deprecate the `at` function for accessing a specific index of the structure. We introduce new `pos` functions to replace them.
2 changes: 1 addition & 1 deletion .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ runs:
FOUNDRY_DEFAULT_VERSION: "stable"
JAVA_DEFAULT_VERSION: "21"
PYTHON_DEFAULT_VERSION: "3.13"
SOLC_DEFAULT_VERSION: "0.8.31"
SOLC_DEFAULT_VERSION: "0.8.35"
# Node & npm setup
- name: Install Node (${{ steps.versions.outputs.node }})
if: inputs.node != 'off'
Expand Down
2 changes: 1 addition & 1 deletion contracts/access/extensions/AccessControlEnumerable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ abstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessCon
* for more information.
*/
function getRoleMember(bytes32 role, uint256 index) public view virtual returns (address) {
return _roleMembers[role].at(index);
return _roleMembers[role].pos(index);
}

/**
Expand Down
4 changes: 2 additions & 2 deletions contracts/governance/utils/Votes.sol
Original file line number Diff line number Diff line change
Expand Up @@ -217,9 +217,9 @@ abstract contract Votes is Context, EIP712, Nonces, IERC5805 {
*/
function _checkpoints(
address account,
uint32 pos
uint32 index
) internal view virtual returns (Checkpoints.Checkpoint208 memory) {
return _delegateCheckpoints[account].at(pos);
return _delegateCheckpoints[account].pos(index);
}

function _push(
Expand Down
10 changes: 5 additions & 5 deletions contracts/mocks/ConstructorMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,18 @@ contract ConstructorMock {

error CustomError();

constructor(RevertType error) {
constructor(RevertType err) {
// After transpilation to upgradeable contract, the constructor will become an initializer
// To silence the `... can be restricted to view` warning, we write to state
foo = true;

if (error == RevertType.RevertWithoutMessage) {
if (err == RevertType.RevertWithoutMessage) {
revert();
} else if (error == RevertType.RevertWithMessage) {
} else if (err == RevertType.RevertWithMessage) {
revert("ConstructorMock: reverting");
} else if (error == RevertType.RevertWithCustomError) {
} else if (err == RevertType.RevertWithCustomError) {
revert CustomError();
} else if (error == RevertType.Panic) {
} else if (err == RevertType.Panic) {
uint256 a = uint256(0) / uint256(0);
a;
}
Expand Down
4 changes: 2 additions & 2 deletions contracts/mocks/docs/AccessManagerEnumerable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ abstract contract AccessManagerEnumerable is AccessManager {
* for more information.
*/
function getRoleMember(uint64 roleId, uint256 index) public view virtual returns (address) {
return _roleMembers[roleId].at(index);
return _roleMembers[roleId].pos(index);
}

/**
Expand Down Expand Up @@ -84,7 +84,7 @@ abstract contract AccessManagerEnumerable is AccessManager {
* for more information.
*/
function getRoleTargetFunction(uint64 roleId, address target, uint256 index) public view virtual returns (bytes4) {
return _roleTargetFunctions[roleId][target].at(index);
return _roleTargetFunctions[roleId][target].pos(index);
}

/**
Expand Down
4 changes: 2 additions & 2 deletions contracts/mocks/token/ERC1155ReceiverMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ contract ERC1155ReceiverMock is ERC165, IERC1155Receiver {
event BatchReceived(address operator, address from, uint256[] ids, uint256[] values, bytes data, uint256 gas);
error CustomError(bytes4);

constructor(bytes4 recRetval, bytes4 batRetval, RevertType error) {
constructor(bytes4 recRetval, bytes4 batRetval, RevertType err) {
_recRetval = recRetval;
_batRetval = batRetval;
_error = error;
_error = err;
}

function onERC1155Received(
Expand Down
4 changes: 2 additions & 2 deletions contracts/mocks/token/ERC1363ReceiverMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ contract ERC1363ReceiverMock is IERC1363Receiver {
_error = RevertType.None;
}

function setUp(bytes4 retval, RevertType error) public {
function setUp(bytes4 retval, RevertType err) public {
_retval = retval;
_error = error;
_error = err;
}

function onTransferReceived(
Expand Down
4 changes: 2 additions & 2 deletions contracts/mocks/token/ERC1363SpenderMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ contract ERC1363SpenderMock is IERC1363Spender {
_error = RevertType.None;
}

function setUp(bytes4 retval, RevertType error) public {
function setUp(bytes4 retval, RevertType err) public {
_retval = retval;
_error = error;
_error = err;
}

function onApprovalReceived(address owner, uint256 value, bytes calldata data) external override returns (bytes4) {
Expand Down
4 changes: 2 additions & 2 deletions contracts/mocks/token/ERC721ReceiverMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ contract ERC721ReceiverMock is IERC721Receiver {
event Received(address operator, address from, uint256 tokenId, bytes data, uint256 gas);
error CustomError(bytes4);

constructor(bytes4 retval, RevertType error) {
constructor(bytes4 retval, RevertType err) {
_retval = retval;
_error = error;
_error = err;
}

function onERC721Received(
Expand Down
26 changes: 13 additions & 13 deletions contracts/utils/cryptography/ECDSA.sol
Original file line number Diff line number Diff line change
Expand Up @@ -122,17 +122,17 @@ library ECDSA {
* be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.
*/
function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
(address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);
_throwError(error, errorArg);
(address recovered, RecoverError err, bytes32 errorArg) = tryRecover(hash, signature);
_throwError(err, errorArg);
return recovered;
}

/**
* @dev Variant of {recover} that takes a signature in calldata
*/
function recoverCalldata(bytes32 hash, bytes calldata signature) internal pure returns (address) {
(address recovered, RecoverError error, bytes32 errorArg) = tryRecoverCalldata(hash, signature);
_throwError(error, errorArg);
(address recovered, RecoverError err, bytes32 errorArg) = tryRecoverCalldata(hash, signature);
_throwError(err, errorArg);
return recovered;
}

Expand All @@ -158,8 +158,8 @@ library ECDSA {
* @dev Overload of {ECDSA-recover} that receives the `r` and `vs` short-signature fields separately.
*/
function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {
(address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);
_throwError(error, errorArg);
(address recovered, RecoverError err, bytes32 errorArg) = tryRecover(hash, r, vs);
_throwError(err, errorArg);
return recovered;
}

Expand Down Expand Up @@ -200,8 +200,8 @@ library ECDSA {
* `r` and `s` signature fields separately.
*/
function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
(address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);
_throwError(error, errorArg);
(address recovered, RecoverError err, bytes32 errorArg) = tryRecover(hash, v, r, s);
_throwError(err, errorArg);
return recovered;
}

Expand Down Expand Up @@ -270,14 +270,14 @@ library ECDSA {
/**
* @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.
*/
function _throwError(RecoverError error, bytes32 errorArg) private pure {
if (error == RecoverError.NoError) {
function _throwError(RecoverError err, bytes32 errorArg) private pure {
if (err == RecoverError.NoError) {
return; // no error: do nothing
} else if (error == RecoverError.InvalidSignature) {
} else if (err == RecoverError.InvalidSignature) {
revert ECDSAInvalidSignature();
} else if (error == RecoverError.InvalidSignatureLength) {
} else if (err == RecoverError.InvalidSignatureLength) {
revert ECDSAInvalidSignatureLength(uint256(errorArg));
} else if (error == RecoverError.InvalidSignatureS) {
} else if (err == RecoverError.InvalidSignatureS) {
revert ECDSAInvalidSignatureS(errorArg);
}
}
Expand Down
Loading