Use explicit conversions between addresses and numbers (#2439)
Co-authored-by: hrkrshnn <webmail.hari@gmail.com> Co-authored-by: cameel <cameel2@gmail.com>
This commit is contained in:
@ -11,8 +11,8 @@ import "../../introspection/ERC165.sol";
|
||||
abstract contract ERC1155Receiver is ERC165, IERC1155Receiver {
|
||||
constructor() internal {
|
||||
_registerInterface(
|
||||
ERC1155Receiver(0).onERC1155Received.selector ^
|
||||
ERC1155Receiver(0).onERC1155BatchReceived.selector
|
||||
ERC1155Receiver(address(0)).onERC1155Received.selector ^
|
||||
ERC1155Receiver(address(0)).onERC1155BatchReceived.selector
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,6 +54,6 @@ library Create2 {
|
||||
bytes32 _data = keccak256(
|
||||
abi.encodePacked(bytes1(0xff), deployer, salt, bytecodeHash)
|
||||
);
|
||||
return address(uint256(_data));
|
||||
return address(uint160(uint256(_data)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ library EnumerableMap {
|
||||
* already present.
|
||||
*/
|
||||
function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {
|
||||
return _set(map._inner, bytes32(key), bytes32(uint256(value)));
|
||||
return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -214,7 +214,7 @@ library EnumerableMap {
|
||||
*/
|
||||
function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {
|
||||
(bytes32 key, bytes32 value) = _at(map._inner, index);
|
||||
return (uint256(key), address(uint256(value)));
|
||||
return (uint256(key), address(uint160(uint256(value))));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -225,13 +225,13 @@ library EnumerableMap {
|
||||
* - `key` must be in the map.
|
||||
*/
|
||||
function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {
|
||||
return address(uint256(_get(map._inner, bytes32(key))));
|
||||
return address(uint160(uint256(_get(map._inner, bytes32(key)))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Same as {get}, with a custom error message when `key` is not in the map.
|
||||
*/
|
||||
function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {
|
||||
return address(uint256(_get(map._inner, bytes32(key), errorMessage)));
|
||||
return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));
|
||||
}
|
||||
}
|
||||
|
||||
@ -199,7 +199,7 @@ library EnumerableSet {
|
||||
* already present.
|
||||
*/
|
||||
function add(AddressSet storage set, address value) internal returns (bool) {
|
||||
return _add(set._inner, bytes32(uint256(value)));
|
||||
return _add(set._inner, bytes32(uint256(uint160(value))));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -209,14 +209,14 @@ library EnumerableSet {
|
||||
* present.
|
||||
*/
|
||||
function remove(AddressSet storage set, address value) internal returns (bool) {
|
||||
return _remove(set._inner, bytes32(uint256(value)));
|
||||
return _remove(set._inner, bytes32(uint256(uint160(value))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns true if the value is in the set. O(1).
|
||||
*/
|
||||
function contains(AddressSet storage set, address value) internal view returns (bool) {
|
||||
return _contains(set._inner, bytes32(uint256(value)));
|
||||
return _contains(set._inner, bytes32(uint256(uint160(value))));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -237,7 +237,7 @@ library EnumerableSet {
|
||||
* - `index` must be strictly less than {length}.
|
||||
*/
|
||||
function at(AddressSet storage set, uint256 index) internal view returns (address) {
|
||||
return address(uint256(_at(set._inner, index)));
|
||||
return address(uint160(uint256(_at(set._inner, index))));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user