LibDiamond

LibDiamond

DIAMOND_STORAGE_POSITION

bytes32 DIAMOND_STORAGE_POSITION

FacetAddressAndPosition

struct FacetAddressAndPosition {
  address facetAddress;
  uint96 functionSelectorPosition;
}

FacetFunctionSelectors

struct FacetFunctionSelectors {
  bytes4[] functionSelectors;
  uint256 facetAddressPosition;
}

DiamondStorage

struct DiamondStorage {
  mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition) selectorToFacetAndPosition;
  mapping(address => struct LibDiamond.FacetFunctionSelectors) facetFunctionSelectors;
  address[] facetAddresses;
  mapping(bytes4 => bool) supportedInterfaces;
  address contractOwner;
}

diamondStorage

OwnershipTransferred

setContractOwner

contractOwner

enforceIsContractOwner

DiamondCut

diamondCut

addFunctions

replaceFunctions

removeFunctions

addFacet

addFunction

removeFunction

initializeDiamondCut

enforceHasContractCode

Was this helpful?