Moonbase Alpha Testnet

Contract

0x29CCcF21Bc494F3685C057d5B4fBeFf0f0D53C63
Transaction Hash
Method
Block
From
To
Multi Equip117550992025-04-23 14:39:3615 mins ago1745419176IN
0x29CCcF21...0f0D53C63
0 DEV0.000017970.03125
Multi Equip117550942025-04-23 14:39:0616 mins ago1745419146IN
0x29CCcF21...0f0D53C63
0 DEV0.000017860.03125
Multi Equip117550912025-04-23 14:38:4816 mins ago1745419128IN
0x29CCcF21...0f0D53C63
0 DEV0.000017860.03125
0xe1cd5f83117550622025-04-23 14:35:5419 mins ago1745418954IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
Multi Equip117550112025-04-23 14:30:4824 mins ago1745418648IN
0x29CCcF21...0f0D53C63
0 DEV0.00002510.03125
0xe1cd5f83117550032025-04-23 14:30:0025 mins ago1745418600IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
Migrate Resource...116695112025-04-17 15:43:485 days ago1744904628IN
0x29CCcF21...0f0D53C63
0 DEV0.000004940.03125
Migrate Resource...116694912025-04-17 15:41:485 days ago1744904508IN
0x29CCcF21...0f0D53C63
0 DEV0.0001451.2
0xe1cd5f83116564402025-04-16 17:45:066 days ago1744825506IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
Start Mission116547112025-04-16 14:51:307 days ago1744815090IN
0x29CCcF21...0f0D53C63
0.05 DEV0.000007030.03125
0xe1cd5f83116490932025-04-16 5:28:487 days ago1744781328IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
0xe1cd5f83116490842025-04-16 5:27:547 days ago1744781274IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
0xe1cd5f83116490222025-04-16 5:21:427 days ago1744780902IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
0xe55f6eca116489642025-04-16 5:15:547 days ago1744780554IN
0x29CCcF21...0f0D53C63
0.15 DEV0.000006560.03125
Multi Equip116489502025-04-16 5:14:307 days ago1744780470IN
0x29CCcF21...0f0D53C63
0 DEV0.000073980.03125
0xe55f6eca116489132025-04-16 5:10:487 days ago1744780248IN
0x29CCcF21...0f0D53C63
0 DEV0.000022260.03125
0xe55f6eca116488392025-04-16 5:03:247 days ago1744779804IN
0x29CCcF21...0f0D53C63
0 DEV0.000021220.03125
0xe55f6eca116488072025-04-16 5:00:127 days ago1744779612IN
0x29CCcF21...0f0D53C63
0 DEV0.000021220.03125
0xe1cd5f83116487412025-04-16 4:53:307 days ago1744779210IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
0xe1cd5f83116487312025-04-16 4:52:307 days ago1744779150IN
0x29CCcF21...0f0D53C63
0 DEV0.000003260.03125
Complete Expedit...116465272025-04-16 1:11:487 days ago1744765908IN
0x29CCcF21...0f0D53C63
0 DEV0.000004210.03125
Start Expedition116438312025-04-15 20:41:427 days ago1744749702IN
0x29CCcF21...0f0D53C63
0 DEV0.000003640.03125
Start Mission116437932025-04-15 20:37:547 days ago1744749474IN
0x29CCcF21...0f0D53C63
0.05 DEV0.000006980.03125
0x96e01b78116437742025-04-15 20:36:007 days ago1744749360IN
0x29CCcF21...0f0D53C63
0 DEV0.000000980.03125
Start Expedition116437732025-04-15 20:35:547 days ago1744749354IN
0x29CCcF21...0f0D53C63
0 DEV0.000003640.03125

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
117552312025-04-23 14:52:482 mins ago1745419968
0x29CCcF21...0f0D53C63
0 DEV
117552312025-04-23 14:52:482 mins ago1745419968
0x29CCcF21...0f0D53C63
0 DEV
117551512025-04-23 14:44:4810 mins ago1745419488
0x29CCcF21...0f0D53C63
0 DEV
117551512025-04-23 14:44:4810 mins ago1745419488
0x29CCcF21...0f0D53C63
0 DEV
117551412025-04-23 14:43:4811 mins ago1745419428
0x29CCcF21...0f0D53C63
0 DEV
117551412025-04-23 14:43:4811 mins ago1745419428
0x29CCcF21...0f0D53C63
0 DEV
117551312025-04-23 14:42:4812 mins ago1745419368
0x29CCcF21...0f0D53C63
0 DEV
117551312025-04-23 14:42:4812 mins ago1745419368
0x29CCcF21...0f0D53C63
0 DEV
117551192025-04-23 14:41:3613 mins ago1745419296
0x29CCcF21...0f0D53C63
0 DEV
117551192025-04-23 14:41:3613 mins ago1745419296
0x29CCcF21...0f0D53C63
0 DEV
117551112025-04-23 14:40:4814 mins ago1745419248
0x29CCcF21...0f0D53C63
0 DEV
117551112025-04-23 14:40:4814 mins ago1745419248
0x29CCcF21...0f0D53C63
0 DEV
117551062025-04-23 14:40:1815 mins ago1745419218
0x29CCcF21...0f0D53C63
0 DEV
117551062025-04-23 14:40:1815 mins ago1745419218
0x29CCcF21...0f0D53C63
0 DEV
117550992025-04-23 14:39:3615 mins ago1745419176
0x29CCcF21...0f0D53C63
0 DEV
117550942025-04-23 14:39:0616 mins ago1745419146
0x29CCcF21...0f0D53C63
0 DEV
117550912025-04-23 14:38:4816 mins ago1745419128
0x29CCcF21...0f0D53C63
0 DEV
117550762025-04-23 14:37:1818 mins ago1745419038
0x29CCcF21...0f0D53C63
0 DEV
117550762025-04-23 14:37:1818 mins ago1745419038
0x29CCcF21...0f0D53C63
0 DEV
117550622025-04-23 14:35:5419 mins ago1745418954
0x29CCcF21...0f0D53C63
0 DEV
117550412025-04-23 14:33:4821 mins ago1745418828
0x29CCcF21...0f0D53C63
0 DEV
117550412025-04-23 14:33:4821 mins ago1745418828
0x29CCcF21...0f0D53C63
0 DEV
117550412025-04-23 14:33:4821 mins ago1745418828
0x29CCcF21...0f0D53C63
0 DEV
117550412025-04-23 14:33:4821 mins ago1745418828
0x29CCcF21...0f0D53C63
0 DEV
117550312025-04-23 14:32:4822 mins ago1745418768
0x29CCcF21...0f0D53C63
0 DEV
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Diamond

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 175 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 8 : Diamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
*
* Implementation of a diamond.
/******************************************************************************/

import {LibDiamond} from "./libraries/LibDiamond.sol";
import {IDiamondCut} from "./interfaces/IDiamondCut.sol";
import {IDiamondLoupe} from "./interfaces/IDiamondLoupe.sol";
import {IERC173} from "./interfaces/IERC173.sol";
import {IERC165} from "./interfaces/IERC165.sol";

// When no function exists for function called
error FunctionNotFound(bytes4 _functionSelector);

// This is used in diamond constructor
// more arguments are added to this struct
// this avoids stack too deep errors
struct DiamondArgs {
    address owner;
    address init;
    bytes initCalldata;
}

contract Diamond {
    constructor(
        IDiamondCut.FacetCut[] memory _diamondCut,
        DiamondArgs memory _args
    ) payable {
        LibDiamond.setContractOwner(_args.owner);
        LibDiamond.diamondCut(_diamondCut, _args.init, _args.initCalldata);

        // Code can be added here to perform actions and set state variables.
    }

    // Find facet for function that is called and execute the
    // function if a facet is found and return any value.
    fallback() external payable {
        LibDiamond.DiamondStorage storage ds;
        bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION;
        // get diamond storage
        assembly {
            ds.slot := position
        }
        // get facet from function selector
        address facet = ds
            .facetAddressAndSelectorPosition[msg.sig]
            .facetAddress;
        if (facet == address(0)) {
            revert FunctionNotFound(msg.sig);
        }
        // Execute external function from facet using delegatecall and return any value.
        assembly {
            // copy function selector and any arguments
            calldatacopy(0, 0, calldatasize())
            // execute function call using the facet
            let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0)
            // get any return value
            returndatacopy(0, 0, returndatasize())
            // return any return value or error back to the caller
            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @notice Allows this contract to receive the gas token.
     */
    // solhint-disable-next-line no-empty-blocks
    receive() external payable {}
}

File 2 of 8 : IDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

interface IDiamond {
    enum FacetCutAction {Add, Replace, Remove}
    // Add=0, Replace=1, Remove=2

    struct FacetCut {
        address facetAddress;
        FacetCutAction action;
        bytes4[] functionSelectors;
    }

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

File 3 of 8 : IDiamondCut.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

import {IDiamond} from "./IDiamond.sol";
import {IERC165Updater} from "./IERC165Updater.sol";

interface IDiamondCut is IDiamond, IERC165Updater {
    /// @notice Add/replace/remove any number of functions and optionally execute
    ///         a function with delegatecall
    /// @param _diamondCut Contains the facet addresses and function selectors
    /// @param _init The address of the contract or facet to execute _calldata
    /// @param _calldata A function call, including function selector and arguments
    ///                  _calldata is executed with delegatecall on _init
    function diamondCut(
        FacetCut[] calldata _diamondCut,
        address _init,
        bytes calldata _calldata
    ) external;
}

File 4 of 8 : IDiamondLoupe.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

// A loupe is a small magnifying glass used to look at diamonds.
// These functions look at diamonds
interface IDiamondLoupe {
    /// These functions are expected to be called frequently
    /// by tools.

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

    /// @notice Gets all facet addresses and their four byte function selectors.
    /// @return facets_ Facet
    function facets() external view returns (Facet[] memory facets_);

    /// @notice Gets all the function selectors supported by a specific facet.
    /// @param _facet The facet address.
    /// @return facetFunctionSelectors_
    function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_);

    /// @notice Get all the facet addresses used by a diamond.
    /// @return facetAddresses_
    function facetAddresses() external view returns (address[] memory facetAddresses_);

    /// @notice Gets the facet that supports the given selector.
    /// @dev If facet is not found return address(0).
    /// @param _functionSelector The function selector.
    /// @return facetAddress_ The facet address.
    function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
}

File 5 of 8 : IERC165.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC165 {
    /// @notice Query if a contract implements an interface
    /// @param interfaceId The interface identifier, as specified in ERC-165
    /// @dev Interface identification is specified in ERC-165. This function
    ///  uses less than 30,000 gas.
    /// @return `true` if the contract implements `interfaceID` and
    ///  `interfaceID` is not 0xffffffff, `false` otherwise
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 6 of 8 : IERC165Updater.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

/**
 * @title IERC165Updater
 * @author Multiple
 * @notice An extension of ERC165 Standard Interface Detection that allows contracts to add and remove supported interfaces.
 *
 * Users can check for interface support via `supportsInterface(bytes4 interfaceID)` as defined in ERC165. Users can add or remove interface support via [`updateSupportedInterfaces()`](#updatesupportedinterfaces).
 */
interface IERC165Updater {
    /// @notice Emitted when support for an interface is updated.
    event InterfaceSupportUpdated(bytes4 indexed interfaceID, bool supported);

    /**
     * @notice Adds or removes supported interfaces.
     * @dev Add access control in implementation.
     * @param interfaceIDs The list of interfaces to update.
     * @param support The list of true to signal support, false otherwise.
     */
    function updateSupportedInterfaces(
        bytes4[] calldata interfaceIDs,
        bool[] calldata support
    ) external payable;
}

File 7 of 8 : IERC173.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/// @title ERC-173 Contract Ownership Standard
///  Note: the ERC-165 identifier for this interface is 0x7f5828d0
/* is ERC165 */
interface IERC173 {
    /// @dev This emits when ownership of a contract changes.
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @notice Get the address of the owner
    /// @return owner_ The address of the owner.
    function owner() external view returns (address owner_);

    /// @notice Set the address of the new owner of the contract
    /// @dev Set _newOwner to address(0) to renounce any ownership.
    /// @param _newOwner The address of the new owner of the contract
    function transferOwnership(address _newOwner) external;
}

File 8 of 8 : LibDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/
import {IDiamond} from "../interfaces/IDiamond.sol";
import {IDiamondCut} from "../interfaces/IDiamondCut.sol";

// Remember to add the loupe functions from DiamondLoupeFacet to the diamond.
// The loupe functions are required by the EIP2535 Diamonds standard

error NoSelectorsGivenToAdd();
error NotContractOwner(address _user, address _contractOwner);
error NotPermitted(
    address _user,
    address _contractOwner,
    address _backendAddress
);
error NoSelectorsProvidedForFacetForCut(address _facetAddress);
error CannotAddSelectorsToZeroAddress(bytes4[] _selectors);
error NoBytecodeAtAddress(address _contractAddress, string _message);
error IncorrectFacetCutAction(uint8 _action);
error CannotAddFunctionToDiamondThatAlreadyExists(bytes4 _selector);
error CannotReplaceFunctionsFromFacetWithZeroAddress(bytes4[] _selectors);
error CannotReplaceImmutableFunction(bytes4 _selector);
error CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(
    bytes4 _selector
);
error CannotReplaceFunctionThatDoesNotExists(bytes4 _selector);
error RemoveFacetAddressMustBeZeroAddress(address _facetAddress);
error CannotRemoveFunctionThatDoesNotExist(bytes4 _selector);
error CannotRemoveImmutableFunction(bytes4 _selector);
error InitializationFunctionReverted(
    address _initializationContractAddress,
    bytes _calldata
);

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

    struct FacetAddressAndSelectorPosition {
        address facetAddress;
        uint16 selectorPosition;
    }

    struct DiamondStorage {
        // function selector => facet address and selector position in selectors array
        mapping(bytes4 => FacetAddressAndSelectorPosition) facetAddressAndSelectorPosition;
        bytes4[] selectors;
        mapping(bytes4 => bool) supportedInterfaces;
        // owner of the contract
        address contractOwner;
        address backendAddress;
    }

    function diamondStorage()
        internal
        pure
        returns (DiamondStorage storage ds)
    {
        bytes32 position = DIAMOND_STORAGE_POSITION;
        assembly {
            ds.slot := position
        }
    }

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

    function setContractOwner(address _newOwner) internal {
        DiamondStorage storage ds = diamondStorage();
        address previousOwner = ds.contractOwner;
        ds.contractOwner = _newOwner;
        emit OwnershipTransferred(previousOwner, _newOwner);
    }

    function contractOwner() internal view returns (address contractOwner_) {
        contractOwner_ = diamondStorage().contractOwner;
    }

    function enforceIsContractOwner() internal view {
        if (msg.sender != diamondStorage().contractOwner) {
            revert NotContractOwner(msg.sender, diamondStorage().contractOwner);
        }
    }

    function enforceIsContractOwnerOrBackendAddress() internal view {
        DiamondStorage storage ds = diamondStorage();
        if (msg.sender != ds.backendAddress && msg.sender != ds.contractOwner) {
            revert NotPermitted(
                msg.sender,
                diamondStorage().contractOwner,
                diamondStorage().backendAddress
            );
        }
    }

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

    // Internal function version of diamondCut
    function diamondCut(
        IDiamondCut.FacetCut[] memory _diamondCut,
        address _init,
        bytes memory _calldata
    ) internal {
        for (
            uint256 facetIndex;
            facetIndex < _diamondCut.length;
            facetIndex++
        ) {
            bytes4[] memory functionSelectors = _diamondCut[facetIndex]
                .functionSelectors;
            address facetAddress = _diamondCut[facetIndex].facetAddress;
            if (functionSelectors.length == 0) {
                revert NoSelectorsProvidedForFacetForCut(facetAddress);
            }
            IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action;
            if (action == IDiamond.FacetCutAction.Add) {
                addFunctions(facetAddress, functionSelectors);
            } else if (action == IDiamond.FacetCutAction.Replace) {
                replaceFunctions(facetAddress, functionSelectors);
            } else if (action == IDiamond.FacetCutAction.Remove) {
                removeFunctions(facetAddress, functionSelectors);
            } else {
                revert IncorrectFacetCutAction(uint8(action));
            }
        }
        emit DiamondCut(_diamondCut, _init, _calldata);
        initializeDiamondCut(_init, _calldata);
    }

    function addFunctions(
        address _facetAddress,
        bytes4[] memory _functionSelectors
    ) internal {
        if (_facetAddress == address(0)) {
            revert CannotAddSelectorsToZeroAddress(_functionSelectors);
        }
        DiamondStorage storage ds = diamondStorage();
        uint16 selectorCount = uint16(ds.selectors.length);
        enforceHasContractCode(
            _facetAddress,
            "LibDiamondCut: Add facet has no code"
        );
        for (
            uint256 selectorIndex;
            selectorIndex < _functionSelectors.length;
            selectorIndex++
        ) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds
                .facetAddressAndSelectorPosition[selector]
                .facetAddress;
            if (oldFacetAddress != address(0)) {
                revert CannotAddFunctionToDiamondThatAlreadyExists(selector);
            }
            ds.facetAddressAndSelectorPosition[
                    selector
                ] = FacetAddressAndSelectorPosition(
                _facetAddress,
                selectorCount
            );
            ds.selectors.push(selector);
            selectorCount++;
        }
    }

    function replaceFunctions(
        address _facetAddress,
        bytes4[] memory _functionSelectors
    ) internal {
        DiamondStorage storage ds = diamondStorage();
        if (_facetAddress == address(0)) {
            revert CannotReplaceFunctionsFromFacetWithZeroAddress(
                _functionSelectors
            );
        }
        enforceHasContractCode(
            _facetAddress,
            "LibDiamondCut: Replace facet has no code"
        );
        for (
            uint256 selectorIndex;
            selectorIndex < _functionSelectors.length;
            selectorIndex++
        ) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds
                .facetAddressAndSelectorPosition[selector]
                .facetAddress;
            // can't replace immutable functions -- functions defined directly in the diamond in this case
            if (oldFacetAddress == address(this)) {
                revert CannotReplaceImmutableFunction(selector);
            }
            if (oldFacetAddress == _facetAddress) {
                revert CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(
                    selector
                );
            }
            if (oldFacetAddress == address(0)) {
                revert CannotReplaceFunctionThatDoesNotExists(selector);
            }
            // replace old facet address
            ds
                .facetAddressAndSelectorPosition[selector]
                .facetAddress = _facetAddress;
        }
    }

    function removeFunctions(
        address _facetAddress,
        bytes4[] memory _functionSelectors
    ) internal {
        DiamondStorage storage ds = diamondStorage();
        uint256 selectorCount = ds.selectors.length;
        if (_facetAddress != address(0)) {
            revert RemoveFacetAddressMustBeZeroAddress(_facetAddress);
        }
        for (
            uint256 selectorIndex;
            selectorIndex < _functionSelectors.length;
            selectorIndex++
        ) {
            bytes4 selector = _functionSelectors[selectorIndex];
            FacetAddressAndSelectorPosition
                memory oldFacetAddressAndSelectorPosition = ds
                    .facetAddressAndSelectorPosition[selector];
            if (oldFacetAddressAndSelectorPosition.facetAddress == address(0)) {
                revert CannotRemoveFunctionThatDoesNotExist(selector);
            }

            // can't remove immutable functions -- functions defined directly in the diamond
            if (
                oldFacetAddressAndSelectorPosition.facetAddress == address(this)
            ) {
                revert CannotRemoveImmutableFunction(selector);
            }
            // replace selector with last selector
            selectorCount--;
            if (
                oldFacetAddressAndSelectorPosition.selectorPosition !=
                selectorCount
            ) {
                bytes4 lastSelector = ds.selectors[selectorCount];
                ds.selectors[
                    oldFacetAddressAndSelectorPosition.selectorPosition
                ] = lastSelector;
                ds
                    .facetAddressAndSelectorPosition[lastSelector]
                    .selectorPosition = oldFacetAddressAndSelectorPosition
                    .selectorPosition;
            }
            // delete last selector
            ds.selectors.pop();
            delete ds.facetAddressAndSelectorPosition[selector];
        }
    }

    function initializeDiamondCut(
        address _init,
        bytes memory _calldata
    ) internal {
        if (_init == address(0)) {
            return;
        }
        enforceHasContractCode(
            _init,
            "LibDiamondCut: _init address has no code"
        );
        (bool success, bytes memory error) = _init.delegatecall(_calldata);
        if (!success) {
            if (error.length > 0) {
                // bubble up error
                /// @solidity memory-safe-assembly
                assembly {
                    let returndata_size := mload(error)
                    revert(add(32, error), returndata_size)
                }
            } else {
                revert InitializationFunctionReverted(_init, _calldata);
            }
        }
    }

    function enforceHasContractCode(
        address _contract,
        string memory _errorMessage
    ) internal view {
        uint256 contractSize;
        assembly {
            contractSize := extcodesize(_contract)
        }
        if (contractSize == 0) {
            revert NoBytecodeAtAddress(_contract, _errorMessage);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 175
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

API
[{"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"init","type":"address"},{"internalType":"bytes","name":"initCalldata","type":"bytes"}],"internalType":"struct DiamondArgs","name":"_args","type":"tuple"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotAddFunctionToDiamondThatAlreadyExists","type":"error"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"name":"CannotAddSelectorsToZeroAddress","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotRemoveFunctionThatDoesNotExist","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotRemoveImmutableFunction","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotReplaceFunctionThatDoesNotExists","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","type":"error"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"name":"CannotReplaceFunctionsFromFacetWithZeroAddress","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotReplaceImmutableFunction","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"name":"FunctionNotFound","type":"error"},{"inputs":[{"internalType":"uint8","name":"_action","type":"uint8"}],"name":"IncorrectFacetCutAction","type":"error"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"InitializationFunctionReverted","type":"error"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"name":"NoBytecodeAtAddress","type":"error"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"name":"NoSelectorsProvidedForFacetForCut","type":"error"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"name":"RemoveFacetAddressMustBeZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"indexed":false,"internalType":"address","name":"_init","type":"address"},{"indexed":false,"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"DiamondCut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

6080604052604051610ff8380380610ff883398101604081905261002291610aa2565b805161002d9061004d565b61004682826020015183604001516100ce60201b60201c565b5050610e67565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f80546001600160a01b031981166001600160a01b038481169182179093556040515f80516020610f44833981519152939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5b8351811015610231575f8482815181106100ec576100ec610c36565b60200260200101516040015190505f85838151811061010d5761010d610c36565b60200260200101515f0151905081515f0361014b5760405163e767f91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b5f86848151811061015e5761015e610c36565b60200260200101516020015190505f600281111561017e5761017e610c4a565b81600281111561019057610190610c4a565b036101a45761019f828461027c565b61021b565b60018160028111156101b8576101b8610c4a565b036101c75761019f8284610429565b60028160028111156101db576101db610c4a565b036101ea5761019f82846105b7565b8060028111156101fc576101fc610c4a565b604051633ff4d20f60e11b815260ff9091166004820152602401610142565b505050808061022990610c72565b9150506100d0565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161026593929190610cf8565b60405180910390a16102778282610835565b505050565b6001600160a01b0382166102a557806040516302b8da0760e21b81526004016101429190610dbf565b5f80516020610fb083398151915254604080516060810190915260248082525f80516020610f4483398151915292916102e891869190610f6460208301396108f7565b5f5b8351811015610422575f84828151811061030657610306610c36565b6020908102919091018101516001600160e01b031981165f908152918690526040909120549091506001600160a01b031680156103625760405163ebbf5d0760e01b81526001600160e01b031983166004820152602401610142565b6040805180820182526001600160a01b03808a16825261ffff80881660208085019182526001600160e01b031988165f9081528b8252958620945185549251909316600160a01b026001600160b01b0319909216929093169190911717909155600180880180549182018155835291206008820401805460e085901c60046007909416939093026101000a92830263ffffffff90930219169190911790558361040a81610dd8565b9450505050808061041a90610c72565b9150506102ea565b5050505050565b5f80516020610f448339815191526001600160a01b038316610460578160405163cd98a96f60e01b81526004016101429190610dbf565b61048283604051806060016040528060288152602001610fd0602891396108f7565b5f5b82518110156105b1575f8382815181106104a0576104a0610c36565b6020908102919091018101516001600160e01b031981165f908152918590526040909120549091506001600160a01b03163081036104fd57604051632901806d60e11b81526001600160e01b031983166004820152602401610142565b856001600160a01b0316816001600160a01b03160361053b57604051631ac6ce8d60e11b81526001600160e01b031983166004820152602401610142565b6001600160a01b03811661056e57604051637479f93960e01b81526001600160e01b031983166004820152602401610142565b506001600160e01b0319165f90815260208390526040902080546001600160a01b0319166001600160a01b038616179055806105a981610c72565b915050610484565b50505050565b5f80516020610fb0833981519152545f80516020610f44833981519152906001600160a01b038416156106085760405163d091bc8160e01b81526001600160a01b0385166004820152602401610142565b5f5b8351811015610422575f84828151811061062657610626610c36565b6020908102919091018101516001600160e01b031981165f9081528683526040908190208151808301909252546001600160a01b038116808352600160a01b90910461ffff1693820193909352909250906106a057604051637a08a22d60e01b81526001600160e01b031983166004820152602401610142565b8051306001600160a01b03909116036106d857604051630df5fd6160e31b81526001600160e01b031983166004820152602401610142565b836106e281610df8565b94505083816020015161ffff16146107bc575f85600101858154811061070a5761070a610c36565b905f5260205f2090600891828204019190066004029054906101000a900460e01b90508086600101836020015161ffff168154811061074b5761074b610c36565b5f91825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c92909202939093179055838201516001600160e01b03199390931681529087905260409020805461ffff60a01b1916600160a01b61ffff909316929092029190911790555b846001018054806107cf576107cf610e0d565b5f828152602080822060085f1990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b0319909316815291859052506040902080546001600160b01b03191690558061082d81610c72565b91505061060a565b6001600160a01b038216610847575050565b61086982604051806060016040528060288152602001610f88602891396108f7565b5f80836001600160a01b0316836040516108839190610e21565b5f60405180830381855af49150503d805f81146108bb576040519150601f19603f3d011682016040523d82523d5f602084013e6108c0565b606091505b5091509150816105b1578051156108da5780518082602001fd5b838360405163192105d760e01b8152600401610142929190610e3c565b813b5f81900361027757828260405163919834b960e01b8152600401610142929190610e3c565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156109545761095461091e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156109825761098261091e565b604052919050565b5f6001600160401b038211156109a2576109a261091e565b5060051b60200190565b80516001600160a01b03811681146109c2575f80fd5b919050565b5f5b838110156109e15781810151838201526020016109c9565b50505f910152565b5f606082840312156109f9575f80fd5b610a01610932565b9050610a0c826109ac565b81526020610a1b8184016109ac565b8282015260408301516001600160401b0380821115610a38575f80fd5b818501915085601f830112610a4b575f80fd5b815181811115610a5d57610a5d61091e565b610a6f601f8201601f1916850161095a565b91508082528684828501011115610a84575f80fd5b610a93818584018686016109c7565b50604084015250909392505050565b5f8060408385031215610ab3575f80fd5b82516001600160401b0380821115610ac9575f80fd5b818501915085601f830112610adc575f80fd5b81516020610af1610aec8361098a565b61095a565b82815260059290921b84018101918181019089841115610b0f575f80fd5b8286015b84811015610c0657805186811115610b29575f80fd5b87016060818d03601f19011215610b3e575f80fd5b610b46610932565b610b518683016109ac565b8152604082015160038110610b64575f80fd5b81870152606082015188811115610b79575f80fd5b8083019250508c603f830112610b8d575f80fd5b85820151610b9d610aec8261098a565b81815260059190911b830160400190878101908f831115610bbc575f80fd5b6040850194505b82851015610bf15784516001600160e01b031981168114610be2575f80fd5b82529388019390880190610bc3565b60408401525050845250918301918301610b13565b5091880151919650909350505080821115610c1f575f80fd5b50610c2c858286016109e9565b9150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201610c8357610c83610c5e565b5060010190565b5f8151808452602080850194508084015f5b83811015610cc25781516001600160e01b03191687529582019590820190600101610c9c565b509495945050505050565b5f8151808452610ce48160208601602086016109c7565b601f01601f19169290920160200192915050565b5f606080830181845280875180835260808601915060808160051b87010192506020808a015f805b84811015610d8f57898703607f19018652825180516001600160a01b031688528481015160038110610d6057634e487b7160e01b84526021600452602484fd5b88860152604090810151908801899052610d7c89890182610c8a565b9750509483019491830191600101610d20565b5050506001600160a01b0389169087015250508381036040850152610db48186610ccd565b979650505050505050565b602081525f610dd16020830184610c8a565b9392505050565b5f61ffff808316818103610dee57610dee610c5e565b6001019392505050565b5f81610e0657610e06610c5e565b505f190190565b634e487b7160e01b5f52603160045260245ffd5b5f8251610e328184602087016109c7565b9190910192915050565b6001600160a01b03831681526040602082018190525f90610e5f90830184610ccd565b949350505050565b60d180610e735f395ff3fe608060405236600a57005b5f80356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602081905260409091205481906001600160a01b031680607e57604051630a82dd7360e31b81526001600160e01b03195f3516600482015260240160405180910390fd5b365f80375f80365f845af43d5f803e8080156097573d5ff35b3d5ffdfea26469706673582212205d7c01213fa237194cbccd1f6a4cbc098170058cdabe9b3980709f6bdcfdebb564736f6c63430008150033c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c4c69624469616d6f6e644375743a2041646420666163657420686173206e6f20636f64654c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f646500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001160000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000ae00000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000f59ba92ae8cde1cbbda977ff4138e6bede11dc5e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000021f931c1c00000000000000000000000000000000000000000000000000000000f71a8a0f00000000000000000000000000000000000000000000000000000000000000000000000000000000188ed2e358d5af639c8565814a5c126a643881b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000000000000000000000000000000ac00913ad8b6df9194d978651183d8625d37d2b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000028da5cb5b00000000000000000000000000000000000000000000000000000000f2fde38b000000000000000000000000000000000000000000000000000000000000000000000000000000008f62a274c18418ccb01c895fb97d5d6ed2ef020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004150b7a020000000000000000000000000000000000000000000000000000000069332ed900000000000000000000000000000000000000000000000000000000d39553e5000000000000000000000000000000000000000000000000000000002c8533290000000000000000000000000000000000000000000000000000000000000000000000000000000019d63ed7e5d57a8fd51f43b7f094c7b353baee5a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000cde2f9e920000000000000000000000000000000000000000000000000000000004c86e7900000000000000000000000000000000000000000000000000000000f63acb4000000000000000000000000000000000000000000000000000000000b6878737000000000000000000000000000000000000000000000000000000002661bacf00000000000000000000000000000000000000000000000000000000f25747e0000000000000000000000000000000000000000000000000000000000fa1ecc30000000000000000000000000000000000000000000000000000000003c779710000000000000000000000000000000000000000000000000000000061b80af100000000000000000000000000000000000000000000000000000000bdcad3db00000000000000000000000000000000000000000000000000000000143a28e700000000000000000000000000000000000000000000000000000000476343ee000000000000000000000000000000000000000000000000000000000000000000000000000000009834c1db8455a6f8511d3f35c4918e8838482c36000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003a6798f5c000000000000000000000000000000000000000000000000000000004428981d000000000000000000000000000000000000000000000000000000009a198ab00000000000000000000000000000000000000000000000000000000000000000000000000000000001102dad1f50efaa5cd3b7872aa6b68818ce43b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000d9038b3a50000000000000000000000000000000000000000000000000000000091926c1800000000000000000000000000000000000000000000000000000000251f2e8a000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000008385e897000000000000000000000000000000000000000000000000000000009ee7504000000000000000000000000000000000000000000000000000000000fc00da4e0000000000000000000000000000000000000000000000000000000009c27fd9000000000000000000000000000000000000000000000000000000005851babc000000000000000000000000000000000000000000000000000000007a9e5c96000000000000000000000000000000000000000000000000000000003f4ba83a00000000000000000000000000000000000000000000000000000000a689440a00000000000000000000000000000000000000000000000000000000000000000000000000000000f6bcc725a52da8546c98f5acdc638e5795e25e4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000379fa6b9a0000000000000000000000000000000000000000000000000000000051332fb500000000000000000000000000000000000000000000000000000000ee329fd3000000000000000000000000000000000000000000000000000000000000000000000000000000009ab1b95c6c8f9f2acbe9a7472a65a87f32c1baaa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000c08bc3c8400000000000000000000000000000000000000000000000000000000b3e09cf2000000000000000000000000000000000000000000000000000000003be4383c00000000000000000000000000000000000000000000000000000000a05ecc8000000000000000000000000000000000000000000000000000000000b032d4360000000000000000000000000000000000000000000000000000000094b018c400000000000000000000000000000000000000000000000000000000945374d7000000000000000000000000000000000000000000000000000000004526c3fe00000000000000000000000000000000000000000000000000000000360aa1de00000000000000000000000000000000000000000000000000000000070bef6500000000000000000000000000000000000000000000000000000000b65bdf7300000000000000000000000000000000000000000000000000000000da40ef800000000000000000000000000000000000000000000000000000000000000000000000000000000082ba02543127a0b89391c3308c6ed170b0dc6d36000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000011095ea7b30000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000081812fc00000000000000000000000000000000000000000000000000000000c59abf9f00000000000000000000000000000000000000000000000000000000ea02cfa300000000000000000000000000000000000000000000000000000000e985e9c50000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000042842e0e00000000000000000000000000000000000000000000000000000000b88d4fde00000000000000000000000000000000000000000000000000000000a22cb4650000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000004f6ccce7000000000000000000000000000000000000000000000000000000002f745c5900000000000000000000000000000000000000000000000000000000c87b56dd0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000089811e440731221aa8ff08b0e07636047f812a6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000803ff950a00000000000000000000000000000000000000000000000000000000bc97df600000000000000000000000000000000000000000000000000000000019f1f43100000000000000000000000000000000000000000000000000000000aff654fe0000000000000000000000000000000000000000000000000000000064ee73130000000000000000000000000000000000000000000000000000000030798223000000000000000000000000000000000000000000000000000000008966afa7000000000000000000000000000000000000000000000000000000009780497600000000000000000000000000000000000000000000000000000000000000000000000000000000aeeb60294871c83b17ae74610e9ef45a0ce3ce4b000000000000000000000000b37e5720ab586600a336a4841209a733664071e9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c4532c17660000000000000000000000000000000000000000000000000000000000000020000000000000000000000000aeeb60294871c83b17ae74610e9ef45a0ce3ce4b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009bdc284607b2335c27ffcafeaeaec12556bd28a5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d58357865716d4262715374536b573975713955447574315278447a555568666a5268745878574b35626431342f000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405236600a57005b5f80356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602081905260409091205481906001600160a01b031680607e57604051630a82dd7360e31b81526001600160e01b03195f3516600482015260240160405180910390fd5b365f80375f80365f845af43d5f803e8080156097573d5ff35b3d5ffdfea26469706673582212205d7c01213fa237194cbccd1f6a4cbc098170058cdabe9b3980709f6bdcfdebb564736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001160000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000ae00000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000f59ba92ae8cde1cbbda977ff4138e6bede11dc5e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000021f931c1c00000000000000000000000000000000000000000000000000000000f71a8a0f00000000000000000000000000000000000000000000000000000000000000000000000000000000188ed2e358d5af639c8565814a5c126a643881b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000000000000000000000000000000ac00913ad8b6df9194d978651183d8625d37d2b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000028da5cb5b00000000000000000000000000000000000000000000000000000000f2fde38b000000000000000000000000000000000000000000000000000000000000000000000000000000008f62a274c18418ccb01c895fb97d5d6ed2ef020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004150b7a020000000000000000000000000000000000000000000000000000000069332ed900000000000000000000000000000000000000000000000000000000d39553e5000000000000000000000000000000000000000000000000000000002c8533290000000000000000000000000000000000000000000000000000000000000000000000000000000019d63ed7e5d57a8fd51f43b7f094c7b353baee5a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000cde2f9e920000000000000000000000000000000000000000000000000000000004c86e7900000000000000000000000000000000000000000000000000000000f63acb4000000000000000000000000000000000000000000000000000000000b6878737000000000000000000000000000000000000000000000000000000002661bacf00000000000000000000000000000000000000000000000000000000f25747e0000000000000000000000000000000000000000000000000000000000fa1ecc30000000000000000000000000000000000000000000000000000000003c779710000000000000000000000000000000000000000000000000000000061b80af100000000000000000000000000000000000000000000000000000000bdcad3db00000000000000000000000000000000000000000000000000000000143a28e700000000000000000000000000000000000000000000000000000000476343ee000000000000000000000000000000000000000000000000000000000000000000000000000000009834c1db8455a6f8511d3f35c4918e8838482c36000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003a6798f5c000000000000000000000000000000000000000000000000000000004428981d000000000000000000000000000000000000000000000000000000009a198ab00000000000000000000000000000000000000000000000000000000000000000000000000000000001102dad1f50efaa5cd3b7872aa6b68818ce43b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000d9038b3a50000000000000000000000000000000000000000000000000000000091926c1800000000000000000000000000000000000000000000000000000000251f2e8a000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000008385e897000000000000000000000000000000000000000000000000000000009ee7504000000000000000000000000000000000000000000000000000000000fc00da4e0000000000000000000000000000000000000000000000000000000009c27fd9000000000000000000000000000000000000000000000000000000005851babc000000000000000000000000000000000000000000000000000000007a9e5c96000000000000000000000000000000000000000000000000000000003f4ba83a00000000000000000000000000000000000000000000000000000000a689440a00000000000000000000000000000000000000000000000000000000000000000000000000000000f6bcc725a52da8546c98f5acdc638e5795e25e4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000379fa6b9a0000000000000000000000000000000000000000000000000000000051332fb500000000000000000000000000000000000000000000000000000000ee329fd3000000000000000000000000000000000000000000000000000000000000000000000000000000009ab1b95c6c8f9f2acbe9a7472a65a87f32c1baaa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000c08bc3c8400000000000000000000000000000000000000000000000000000000b3e09cf2000000000000000000000000000000000000000000000000000000003be4383c00000000000000000000000000000000000000000000000000000000a05ecc8000000000000000000000000000000000000000000000000000000000b032d4360000000000000000000000000000000000000000000000000000000094b018c400000000000000000000000000000000000000000000000000000000945374d7000000000000000000000000000000000000000000000000000000004526c3fe00000000000000000000000000000000000000000000000000000000360aa1de00000000000000000000000000000000000000000000000000000000070bef6500000000000000000000000000000000000000000000000000000000b65bdf7300000000000000000000000000000000000000000000000000000000da40ef800000000000000000000000000000000000000000000000000000000000000000000000000000000082ba02543127a0b89391c3308c6ed170b0dc6d36000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000011095ea7b30000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000081812fc00000000000000000000000000000000000000000000000000000000c59abf9f00000000000000000000000000000000000000000000000000000000ea02cfa300000000000000000000000000000000000000000000000000000000e985e9c50000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000042842e0e00000000000000000000000000000000000000000000000000000000b88d4fde00000000000000000000000000000000000000000000000000000000a22cb4650000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000004f6ccce7000000000000000000000000000000000000000000000000000000002f745c5900000000000000000000000000000000000000000000000000000000c87b56dd0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000089811e440731221aa8ff08b0e07636047f812a6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000803ff950a00000000000000000000000000000000000000000000000000000000bc97df600000000000000000000000000000000000000000000000000000000019f1f43100000000000000000000000000000000000000000000000000000000aff654fe0000000000000000000000000000000000000000000000000000000064ee73130000000000000000000000000000000000000000000000000000000030798223000000000000000000000000000000000000000000000000000000008966afa7000000000000000000000000000000000000000000000000000000009780497600000000000000000000000000000000000000000000000000000000000000000000000000000000aeeb60294871c83b17ae74610e9ef45a0ce3ce4b000000000000000000000000b37e5720ab586600a336a4841209a733664071e9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c4532c17660000000000000000000000000000000000000000000000000000000000000020000000000000000000000000aeeb60294871c83b17ae74610e9ef45a0ce3ce4b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009bdc284607b2335c27ffcafeaeaec12556bd28a5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d58357865716d4262715374536b573975713955447574315278447a555568666a5268745878574b35626431342f000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _diamondCut (tuple[]): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [1] : _args (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]

-----Encoded View---------------
158 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000001160
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000220
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000340
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000400
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000500
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000700
Arg [9] : 00000000000000000000000000000000000000000000000000000000000007e0
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000a00
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000ae0
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000ce0
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000f80
Arg [14] : 000000000000000000000000f59ba92ae8cde1cbbda977ff4138e6bede11dc5e
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [18] : 1f931c1c00000000000000000000000000000000000000000000000000000000
Arg [19] : f71a8a0f00000000000000000000000000000000000000000000000000000000
Arg [20] : 000000000000000000000000188ed2e358d5af639c8565814a5c126a643881b5
Arg [21] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [24] : cdffacc600000000000000000000000000000000000000000000000000000000
Arg [25] : 52ef6b2c00000000000000000000000000000000000000000000000000000000
Arg [26] : adfca15e00000000000000000000000000000000000000000000000000000000
Arg [27] : 7a0ed62700000000000000000000000000000000000000000000000000000000
Arg [28] : 01ffc9a700000000000000000000000000000000000000000000000000000000
Arg [29] : 0000000000000000000000000ac00913ad8b6df9194d978651183d8625d37d2b
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [32] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [33] : 8da5cb5b00000000000000000000000000000000000000000000000000000000
Arg [34] : f2fde38b00000000000000000000000000000000000000000000000000000000
Arg [35] : 0000000000000000000000008f62a274c18418ccb01c895fb97d5d6ed2ef020b
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [39] : 150b7a0200000000000000000000000000000000000000000000000000000000
Arg [40] : 69332ed900000000000000000000000000000000000000000000000000000000
Arg [41] : d39553e500000000000000000000000000000000000000000000000000000000
Arg [42] : 2c85332900000000000000000000000000000000000000000000000000000000
Arg [43] : 00000000000000000000000019d63ed7e5d57a8fd51f43b7f094c7b353baee5a
Arg [44] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [45] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [46] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [47] : de2f9e9200000000000000000000000000000000000000000000000000000000
Arg [48] : 04c86e7900000000000000000000000000000000000000000000000000000000
Arg [49] : f63acb4000000000000000000000000000000000000000000000000000000000
Arg [50] : b687873700000000000000000000000000000000000000000000000000000000
Arg [51] : 2661bacf00000000000000000000000000000000000000000000000000000000
Arg [52] : f25747e000000000000000000000000000000000000000000000000000000000
Arg [53] : 0fa1ecc300000000000000000000000000000000000000000000000000000000
Arg [54] : 03c7797100000000000000000000000000000000000000000000000000000000
Arg [55] : 61b80af100000000000000000000000000000000000000000000000000000000
Arg [56] : bdcad3db00000000000000000000000000000000000000000000000000000000
Arg [57] : 143a28e700000000000000000000000000000000000000000000000000000000
Arg [58] : 476343ee00000000000000000000000000000000000000000000000000000000
Arg [59] : 0000000000000000000000009834c1db8455a6f8511d3f35c4918e8838482c36
Arg [60] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [61] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [62] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [63] : a6798f5c00000000000000000000000000000000000000000000000000000000
Arg [64] : 4428981d00000000000000000000000000000000000000000000000000000000
Arg [65] : 9a198ab000000000000000000000000000000000000000000000000000000000
Arg [66] : 00000000000000000000000001102dad1f50efaa5cd3b7872aa6b68818ce43b2
Arg [67] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [68] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [69] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [70] : 9038b3a500000000000000000000000000000000000000000000000000000000
Arg [71] : 91926c1800000000000000000000000000000000000000000000000000000000
Arg [72] : 251f2e8a00000000000000000000000000000000000000000000000000000000
Arg [73] : 8456cb5900000000000000000000000000000000000000000000000000000000
Arg [74] : 5c975abb00000000000000000000000000000000000000000000000000000000
Arg [75] : 8385e89700000000000000000000000000000000000000000000000000000000
Arg [76] : 9ee7504000000000000000000000000000000000000000000000000000000000
Arg [77] : fc00da4e00000000000000000000000000000000000000000000000000000000
Arg [78] : 09c27fd900000000000000000000000000000000000000000000000000000000
Arg [79] : 5851babc00000000000000000000000000000000000000000000000000000000
Arg [80] : 7a9e5c9600000000000000000000000000000000000000000000000000000000
Arg [81] : 3f4ba83a00000000000000000000000000000000000000000000000000000000
Arg [82] : a689440a00000000000000000000000000000000000000000000000000000000
Arg [83] : 000000000000000000000000f6bcc725a52da8546c98f5acdc638e5795e25e4b
Arg [84] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [85] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [86] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [87] : 79fa6b9a00000000000000000000000000000000000000000000000000000000
Arg [88] : 51332fb500000000000000000000000000000000000000000000000000000000
Arg [89] : ee329fd300000000000000000000000000000000000000000000000000000000
Arg [90] : 0000000000000000000000009ab1b95c6c8f9f2acbe9a7472a65a87f32c1baaa
Arg [91] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [92] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [93] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [94] : 08bc3c8400000000000000000000000000000000000000000000000000000000
Arg [95] : b3e09cf200000000000000000000000000000000000000000000000000000000
Arg [96] : 3be4383c00000000000000000000000000000000000000000000000000000000
Arg [97] : a05ecc8000000000000000000000000000000000000000000000000000000000
Arg [98] : b032d43600000000000000000000000000000000000000000000000000000000
Arg [99] : 94b018c400000000000000000000000000000000000000000000000000000000
Arg [100] : 945374d700000000000000000000000000000000000000000000000000000000
Arg [101] : 4526c3fe00000000000000000000000000000000000000000000000000000000
Arg [102] : 360aa1de00000000000000000000000000000000000000000000000000000000
Arg [103] : 070bef6500000000000000000000000000000000000000000000000000000000
Arg [104] : b65bdf7300000000000000000000000000000000000000000000000000000000
Arg [105] : da40ef8000000000000000000000000000000000000000000000000000000000
Arg [106] : 00000000000000000000000082ba02543127a0b89391c3308c6ed170b0dc6d36
Arg [107] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [108] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [109] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [110] : 095ea7b300000000000000000000000000000000000000000000000000000000
Arg [111] : 70a0823100000000000000000000000000000000000000000000000000000000
Arg [112] : 081812fc00000000000000000000000000000000000000000000000000000000
Arg [113] : c59abf9f00000000000000000000000000000000000000000000000000000000
Arg [114] : ea02cfa300000000000000000000000000000000000000000000000000000000
Arg [115] : e985e9c500000000000000000000000000000000000000000000000000000000
Arg [116] : 06fdde0300000000000000000000000000000000000000000000000000000000
Arg [117] : 6352211e00000000000000000000000000000000000000000000000000000000
Arg [118] : 42842e0e00000000000000000000000000000000000000000000000000000000
Arg [119] : b88d4fde00000000000000000000000000000000000000000000000000000000
Arg [120] : a22cb46500000000000000000000000000000000000000000000000000000000
Arg [121] : 95d89b4100000000000000000000000000000000000000000000000000000000
Arg [122] : 4f6ccce700000000000000000000000000000000000000000000000000000000
Arg [123] : 2f745c5900000000000000000000000000000000000000000000000000000000
Arg [124] : c87b56dd00000000000000000000000000000000000000000000000000000000
Arg [125] : 18160ddd00000000000000000000000000000000000000000000000000000000
Arg [126] : 23b872dd00000000000000000000000000000000000000000000000000000000
Arg [127] : 00000000000000000000000089811e440731221aa8ff08b0e07636047f812a65
Arg [128] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [129] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [130] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [131] : 03ff950a00000000000000000000000000000000000000000000000000000000
Arg [132] : bc97df6000000000000000000000000000000000000000000000000000000000
Arg [133] : 19f1f43100000000000000000000000000000000000000000000000000000000
Arg [134] : aff654fe00000000000000000000000000000000000000000000000000000000
Arg [135] : 64ee731300000000000000000000000000000000000000000000000000000000
Arg [136] : 3079822300000000000000000000000000000000000000000000000000000000
Arg [137] : 8966afa700000000000000000000000000000000000000000000000000000000
Arg [138] : 9780497600000000000000000000000000000000000000000000000000000000
Arg [139] : 000000000000000000000000aeeb60294871c83b17ae74610e9ef45a0ce3ce4b
Arg [140] : 000000000000000000000000b37e5720ab586600a336a4841209a733664071e9
Arg [141] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [142] : 00000000000000000000000000000000000000000000000000000000000001c4
Arg [143] : 532c176600000000000000000000000000000000000000000000000000000000
Arg [144] : 00000020000000000000000000000000aeeb60294871c83b17ae74610e9ef45a
Arg [145] : 0ce3ce4b00000000000000000000000000000000000000000000000000000000
Arg [146] : 0000008000000000000000000000000000000000000000000000000000000000
Arg [147] : 000000c000000000000000000000000000000000000000000000000000000000
Arg [148] : 0000016000000000000000000000000000000000000000000000000000000000
Arg [149] : 000000010000000000000000000000009bdc284607b2335c27ffcafeaeaec125
Arg [150] : 56bd28a500000000000000000000000000000000000000000000000000000000
Arg [151] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [152] : 0000002000000000000000000000000000000000000000000000000000000000
Arg [153] : 00000036697066733a2f2f516d58357865716d4262715374536b573975713955
Arg [154] : 447574315278447a555568666a5268745878574b35626431342f000000000000
Arg [155] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [156] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [157] : 0000000100000000000000000000000000000000000000000000000000000000


Block Transaction Gas Used Reward
view all blocks collator

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.