LibDiamond

Git Source

State Variables

DIAMOND_STORAGE_POSITION

bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage");

Functions

diamondStorage

function diamondStorage() internal pure returns (DiamondStorage storage ds);

setContractOwner

function setContractOwner(address _newOwner) internal;

transferContractOwner

function transferContractOwner() internal;

contractOwner

function contractOwner() internal view returns (address contractOwner_);

pendingOwner

function pendingOwner() internal view returns (address pendingOwner_);

enforceIsContractOwner

function enforceIsContractOwner() internal view;

enforceIsPendingOwner

function enforceIsPendingOwner() internal view;

startTransferOwnership

function startTransferOwnership(address newOwner) internal;

diamondCut

function diamondCut(IDiamondCut.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata) internal;

addFunctions

function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal;

replaceFunctions

function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal;

removeFunctions

function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal;

initializeDiamondCut

function initializeDiamondCut(address _init, bytes memory _calldata) internal;

enforceHasContractCode

function enforceHasContractCode(address _contract, string memory _errorMessage) internal view;

Events

OwnershipTransferred

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

OwnershipTransferStarted

event OwnershipTransferStarted(address indexed owner, address indexed pendingOwner);

DiamondCut

event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);

Structs

FacetAddressAndSelectorPosition

struct FacetAddressAndSelectorPosition {
    address facetAddress;
    uint16 selectorPosition;
}

DiamondStorage

struct DiamondStorage {
    mapping(bytes4 => FacetAddressAndSelectorPosition) facetAddressAndSelectorPosition;
    bytes4[] selectors;
    mapping(bytes4 => bool) supportedInterfaces;
    address contractOwner;
    address pendingOwner;
}