|
|
|
@ -80,28 +80,28 @@ interface IERC1820Registry { |
|
|
|
|
function interfaceHash(string calldata interfaceName) external pure returns (bytes32); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @notice Updates the cache with whether the contract implements an ERC165 interface or not. |
|
|
|
|
* @param account Address of the contract for which to update the cache. |
|
|
|
|
* @param interfaceId ERC165 interface for which to update the cache. |
|
|
|
|
* @notice Updates the cache with whether the contract implements an ERC165 interface or not. |
|
|
|
|
* @param account Address of the contract for which to update the cache. |
|
|
|
|
* @param interfaceId ERC165 interface for which to update the cache. |
|
|
|
|
*/ |
|
|
|
|
function updateERC165Cache(address account, bytes4 interfaceId) external; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @notice Checks whether a contract implements an ERC165 interface or not. |
|
|
|
|
* If the result is not cached a direct lookup on the contract address is performed. |
|
|
|
|
* If the result is not cached or the cached value is out-of-date, the cache MUST be updated manually by calling |
|
|
|
|
* {updateERC165Cache} with the contract address. |
|
|
|
|
* @param account Address of the contract to check. |
|
|
|
|
* @param interfaceId ERC165 interface to check. |
|
|
|
|
* @return True if `account` implements `interfaceId`, false otherwise. |
|
|
|
|
* @notice Checks whether a contract implements an ERC165 interface or not. |
|
|
|
|
* If the result is not cached a direct lookup on the contract address is performed. |
|
|
|
|
* If the result is not cached or the cached value is out-of-date, the cache MUST be updated manually by calling |
|
|
|
|
* {updateERC165Cache} with the contract address. |
|
|
|
|
* @param account Address of the contract to check. |
|
|
|
|
* @param interfaceId ERC165 interface to check. |
|
|
|
|
* @return True if `account` implements `interfaceId`, false otherwise. |
|
|
|
|
*/ |
|
|
|
|
function implementsERC165Interface(address account, bytes4 interfaceId) external view returns (bool); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @notice Checks whether a contract implements an ERC165 interface or not without using nor updating the cache. |
|
|
|
|
* @param account Address of the contract to check. |
|
|
|
|
* @param interfaceId ERC165 interface to check. |
|
|
|
|
* @return True if `account` implements `interfaceId`, false otherwise. |
|
|
|
|
* @notice Checks whether a contract implements an ERC165 interface or not without using nor updating the cache. |
|
|
|
|
* @param account Address of the contract to check. |
|
|
|
|
* @param interfaceId ERC165 interface to check. |
|
|
|
|
* @return True if `account` implements `interfaceId`, false otherwise. |
|
|
|
|
*/ |
|
|
|
|
function implementsERC165InterfaceNoCache(address account, bytes4 interfaceId) external view returns (bool); |
|
|
|
|
|
|
|
|
|