IGNSDiamondLoupe

Based on EIP-2535: Diamonds (https://eips.ethereum.org/EIPS/eip-2535) Follows diamond-3 implementation (https://github.com/mudgen/diamond-3-hardhat/) One of the diamond standard interfaces, used to inspect the diamond like a magnifying glass.

Facet

These functions are expected to be called frequently by tools.

struct Facet {
  address facetAddress;
  bytes4[] functionSelectors;
}

facets

function facets() external view returns (struct IGNSDiamondLoupe.Facet[] facets_)

Gets all facet addresses and their four byte function selectors.

Return Values

NameTypeDescription

facets_

Facet

facetFunctionSelectors

function facetFunctionSelectors(address _facet) external view returns (bytes4[] facetFunctionSelectors_)

Gets all the function selectors supported by a specific facet.

Parameters

NameTypeDescription

_facet

address

The facet address.

Return Values

NameTypeDescription

facetFunctionSelectors_

bytes4[]

facetAddresses

function facetAddresses() external view returns (address[] facetAddresses_)

Get all the facet addresses used by a diamond.

Return Values

NameTypeDescription

facetAddresses_

address[]

facetAddress

function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_)

Gets the facet that supports the given selector.

If facet is not found return address(0).

Parameters

NameTypeDescription

_functionSelector

bytes4

The function selector.

Return Values

NameTypeDescription

facetAddress_

address

The facet address.

Last updated