Skip to main content

DiamondLoupe

Asset Tokenization Studio Team

Diamond Loupe

Exposes read-only introspection helpers for resolver-proxy facet metadata.

Implements the EIP-2535 loupe view surface over resolver-proxy storage. All queries are read-only and delegate pagination, selector, facet and ERC-165 lookups to inherited storage helpers.

Methods​

getFacet​

function getFacet(bytes32 _facetId) external view returns (struct IDiamondLoupe.Facet facet_)

Get the information associated with an specific facet

If facet is not found return empty Facet struct

Parameters​

NameTypeDescription
_facetIdbytes32The facet key for the resolver

Returns​

NameTypeDescription
facet_IDiamondLoupe.FacetFacet data

getFacetAddress​

function getFacetAddress(bytes4 _selector) external view returns (address facetAddress_)

Gets the facet that supports the given selector

If facet is not found return address(0)

Parameters​

NameTypeDescription
_selectorbytes4The function selector

Returns​

NameTypeDescription
facetAddress_addressThe facet address

getFacetAddresses​

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

Get all the facet addresses used by a resolverProxy

Returns​

NameTypeDescription
facetAddresses_address[]facetAddresses_

getFacetAddressesByPage​

function getFacetAddressesByPage(uint256 _pageIndex, uint256 _pageLength) external view returns (address[] facetAddresses_)

Get all the facet addresses used by a resolverProxy

Parameters​

NameTypeDescription
_pageIndexuint256members to skip : _pageIndex * _pageLength
_pageLengthuint256number of members to return

Returns​

NameTypeDescription
facetAddresses_address[]facetAddresses_

getFacetIdBySelector​

function getFacetIdBySelector(bytes4 _selector) external view returns (bytes32 facetId_)

Returns the facet identifier registered for a function selector.

Reads resolver-proxy selector metadata and returns zero when the selector is absent.

Parameters​

NameTypeDescription
_selectorbytes4Function selector to resolve.

Returns​

NameTypeDescription
facetId_bytes32Facet identifier associated with the selector.

getFacetIds​

function getFacetIds() external view returns (bytes32[] facetIds_)

Get all the facet addresses used by a resolverProxy

Returns​

NameTypeDescription
facetIds_bytes32[]facetIds_

getFacetIdsByPage​

function getFacetIdsByPage(uint256 _pageIndex, uint256 _pageLength) external view returns (bytes32[] facetIds_)

Get all the facet addresses used by a resolverProxy

Parameters​

NameTypeDescription
_pageIndexuint256members to skip : _pageIndex * _pageLength
_pageLengthuint256number of members to return

Returns​

NameTypeDescription
facetIds_bytes32[]facetIds_

getFacetSelectors​

function getFacetSelectors(bytes32 _facetId) external view returns (bytes4[] facetSelectors_)

Gets all the function selectors supported by a specific facet.

Parameters​

NameTypeDescription
_facetIdbytes32The facet key for the resolver.

Returns​

NameTypeDescription
facetSelectors_bytes4[]facetSelectors_

getFacetSelectorsByPage​

function getFacetSelectorsByPage(bytes32 _facetId, uint256 _pageIndex, uint256 _pageLength) external view returns (bytes4[] facetSelectors_)

Gets all the function selectors supported by a specific facet.

Parameters​

NameTypeDescription
_facetIdbytes32The facet key for the resolver.
_pageIndexuint256members to skip : _pageIndex * _pageLength
_pageLengthuint256number of members to return

Returns​

NameTypeDescription
facetSelectors_bytes4[]facetSelectors_

getFacetSelectorsLength​

function getFacetSelectorsLength(bytes32 _facetId) external view returns (uint256 facetSelectorsLength_)

Gets the function selectors length.

Parameters​

NameTypeDescription
_facetIdbytes32The facet key for the resolver.

Returns​

NameTypeDescription
facetSelectorsLength_uint256facetSelectorsLength_

getFacets​

function getFacets() external view returns (struct IDiamondLoupe.Facet[] facets_)

Gets all facet addresses and their four byte function selectors.

Returns​

NameTypeDescription
facets_IDiamondLoupe.Facet[]Facet

getFacetsByPage​

function getFacetsByPage(uint256 _pageIndex, uint256 _pageLength) external view returns (struct IDiamondLoupe.Facet[] facets_)

Gets all facet addresses and their four byte function selectors.

Parameters​

NameTypeDescription
_pageIndexuint256members to skip : _pageIndex * _pageLength
_pageLengthuint256number of members to return

Returns​

NameTypeDescription
facets_IDiamondLoupe.Facet[]Facet

getFacetsLength​

function getFacetsLength() external view returns (uint256 facetsLength_)

Gets facet length.

Returns​

NameTypeDescription
facetsLength_uint256Facets length

getStaticFunctionSelectors​

function getStaticFunctionSelectors() external pure returns (bytes4[] staticFunctionSelectors_)

Gets all function selectors of a facet

Returns​

NameTypeDescription
staticFunctionSelectors_bytes4[]Face functions selectors

getStaticInterfaceIds​

function getStaticInterfaceIds() external pure returns (bytes4[] staticInterfaceIds_)

Gets all interfaces ids of a facet.

Returns​

NameTypeDescription
staticInterfaceIds_bytes4[]Face interface ids

getStaticResolverKey​

function getStaticResolverKey() external pure returns (bytes32 staticResolverKey_)

Gets the static resolver key

Returns​

NameTypeDescription
staticResolverKey_bytes32Static resolver key

supportsInterface​

function supportsInterface(bytes4 _interfaceId) external view returns (bool)

Returns true if this contract implements the interface defined by interfaceId. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.

Parameters​

NameTypeDescription
_interfaceIdbytes4undefined

Returns​

NameTypeDescription
_0boolundefined

Errors​

UnrecognizedResolverProxyVersion​

error UnrecognizedResolverProxyVersion(bytes8 _resolverProxyVersion)

Thrown when the provided proxy version does not match any BLR compatible standard.

Parameters​

NameTypeDescription
_resolverProxyVersionbytes8proxy version that is not compatible with the BLR.