Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

SupportsInterfaceWithLookupMockUpgradeable

Inherits: Initializable, IERC165

https://eips.ethereum.org/EIPS/eip-214#specification From the specification:

Any attempts to make state-changing operations inside an execution instance with STATIC set to true will instead throw an exception. These operations include [...], LOG0, LOG1, LOG2, [...] therefore, because this contract is staticcall'd we need to not emit events (which is how solidity-coverage works) solidity-coverage ignores the /mocks folder, so we duplicate its implementation here to avoid instrumenting it

State Variables

INTERFACE_ID_ERC165

bytes4 public constant INTERFACE_ID_ERC165 = 0x01ffc9a7;

_supportedInterfaces

A mapping of interface id to whether or not it's supported.

mapping(bytes4 interfaceId => bool) private _supportedInterfaces;

Functions

__SupportsInterfaceWithLookupMock_init

A contract implementing SupportsInterfaceWithLookup implement ERC-165 itself.

function __SupportsInterfaceWithLookupMock_init() internal onlyInitializing;

__SupportsInterfaceWithLookupMock_init_unchained

function __SupportsInterfaceWithLookupMock_init_unchained() internal onlyInitializing;

supportsInterface

Implement supportsInterface(bytes4) using a lookup table.

function supportsInterface(bytes4 interfaceId) public view override returns (bool);

_registerInterface

Private method for registering an interface.

function _registerInterface(bytes4 interfaceId) internal;