ETH Price: $2,090.56 (-2.64%)

Contract

0xb8d8701589cE9cecbCEdc8DbDAdff30E987Ee0e8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To
Diamond Cut222719742025-04-15 4:22:59340 days ago1744690979IN
0xb8d87015...E987Ee0e8
0 ETH0.000060730.47924107
Renounce Role222170002025-04-07 12:23:47348 days ago1744028627IN
0xb8d87015...E987Ee0e8
0 ETH0.00008071.8
Grant Role222169912025-04-07 12:21:59348 days ago1744028519IN
0xb8d87015...E987Ee0e8
0 ETH0.000146871.76242802
Create Token Lau...221927572025-04-04 3:06:23351 days ago1743735983IN
0xb8d87015...E987Ee0e8
0.013 ETH0.000157990.4351134
Set Whitelist En...221455862025-03-28 13:03:35358 days ago1743167015IN
0xb8d87015...E987Ee0e8
0 ETH0.000021430.72333884
Create Token Lau...221393522025-03-27 16:09:35359 days ago1743091775IN
0xb8d87015...E987Ee0e8
0.03 ETH0.003730841.19780016
Create Erc20221322062025-03-26 16:13:47360 days ago1743005627IN
0xb8d87015...E987Ee0e8
0.00052366 ETH0.003732540.9758699
Create Erc20221291682025-03-26 6:05:11360 days ago1742969111IN
0xb8d87015...E987Ee0e8
0.05120068 ETH0.001832250.46799609
Create Erc20221157962025-03-24 9:14:11362 days ago1742807651IN
0xb8d87015...E987Ee0e8
0 ETH0.001532460.39545963
Create Erc20220967652025-03-21 17:33:23365 days ago1742578403IN
0xb8d87015...E987Ee0e8
0.05361373 ETH0.001756680.42219722
Create Erc20220011572025-03-08 9:06:59378 days ago1741424819IN
0xb8d87015...E987Ee0e8
0.04943094 ETH0.002497560.64450401
Diamond Cut219649152025-03-03 7:37:59383 days ago1740987479IN
0xb8d87015...E987Ee0e8
0 ETH0.000092350.77254902
Diamond Cut219648992025-03-03 7:34:47383 days ago1740987287IN
0xb8d87015...E987Ee0e8
0 ETH0.00003450.77987034
Diamond Cut219648862025-03-03 7:32:11383 days ago1740987131IN
0xb8d87015...E987Ee0e8
0 ETH0.000028170.8587282
Create Erc20219267462025-02-25 23:52:47389 days ago1740527567IN
0xb8d87015...E987Ee0e8
0 ETH0.003196320.81641917
Diamond Cut218838172025-02-19 23:52:23395 days ago1740009143IN
0xb8d87015...E987Ee0e8
0 ETH0.000311160.85223108
Diamond Cut218838152025-02-19 23:51:59395 days ago1740009119IN
0xb8d87015...E987Ee0e8
0 ETH0.000111970.76661238
Insert Vaults By...218824322025-02-19 19:13:59395 days ago1739992439IN
0xb8d87015...E987Ee0e8
0 ETH0.000083331.11367428
Insert Vaults By...218824312025-02-19 19:13:47395 days ago1739992427IN
0xb8d87015...E987Ee0e8
0 ETH0.000073350.98000122
Insert Vaults By...218824302025-02-19 19:13:35395 days ago1739992415IN
0xb8d87015...E987Ee0e8
0 ETH0.000077561.03637688
Insert Vaults By...218824292025-02-19 19:13:23395 days ago1739992403IN
0xb8d87015...E987Ee0e8
0 ETH0.000090231.2054298
Insert Vaults By...218824282025-02-19 19:13:11395 days ago1739992391IN
0xb8d87015...E987Ee0e8
0 ETH0.000092191.23163836
Insert Vaults By...218824272025-02-19 19:12:59395 days ago1739992379IN
0xb8d87015...E987Ee0e8
0 ETH0.00009061.21034703
Insert Vaults By...218824262025-02-19 19:12:47395 days ago1739992367IN
0xb8d87015...E987Ee0e8
0 ETH0.000079851.06680301
Insert Vaults By...218824252025-02-19 19:12:35395 days ago1739992355IN
0xb8d87015...E987Ee0e8
0 ETH0.000082661.10448511
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Add Liquidity ET...221927572025-04-04 3:06:23351 days ago1743735983
0xb8d87015...E987Ee0e8
0.013 ETH
Add Liquidity ET...221393522025-03-27 16:09:35359 days ago1743091775
0xb8d87015...E987Ee0e8
0.03 ETH
0x60806040221322062025-03-26 16:13:47360 days ago1743005627
0xb8d87015...E987Ee0e8
 Contract Creation0 ETH
Transfer221322062025-03-26 16:13:47360 days ago1743005627
0xb8d87015...E987Ee0e8
0.00002522 ETH
Transfer221322062025-03-26 16:13:47360 days ago1743005627
0xb8d87015...E987Ee0e8
0.00002522 ETH
Swap ETH For Exa...221322062025-03-26 16:13:47360 days ago1743005627
0xb8d87015...E987Ee0e8
0.00052366 ETH
Process Payment221322062025-03-26 16:13:47360 days ago1743005627
0xb8d87015...E987Ee0e8
0xb8d87015...E987Ee0e8
0.00052366 ETH
0x60806040221291682025-03-26 6:05:11360 days ago1742969111
0xb8d87015...E987Ee0e8
 Contract Creation0 ETH
Transfer221291682025-03-26 6:05:11360 days ago1742969111
0xb8d87015...E987Ee0e8
0.00246597 ETH
Transfer221291682025-03-26 6:05:11360 days ago1742969111
0xb8d87015...E987Ee0e8
0.00246597 ETH
Swap ETH For Exa...221291682025-03-26 6:05:11360 days ago1742969111
0xb8d87015...E987Ee0e8
0.05120068 ETH
Process Payment221291682025-03-26 6:05:11360 days ago1742969111
0xb8d87015...E987Ee0e8
0xb8d87015...E987Ee0e8
0.05120068 ETH
0x60806040221157962025-03-24 9:14:11362 days ago1742807651
0xb8d87015...E987Ee0e8
 Contract Creation0 ETH
0x60806040220967652025-03-21 17:33:23365 days ago1742578403
0xb8d87015...E987Ee0e8
 Contract Creation0 ETH
Transfer220967652025-03-21 17:33:23365 days ago1742578403
0xb8d87015...E987Ee0e8
0.00261987 ETH
Transfer220967652025-03-21 17:33:23365 days ago1742578403
0xb8d87015...E987Ee0e8
0.00261987 ETH
Swap ETH For Exa...220967652025-03-21 17:33:23365 days ago1742578403
0xb8d87015...E987Ee0e8
0.05361373 ETH
Process Payment220967652025-03-21 17:33:23365 days ago1742578403
0xb8d87015...E987Ee0e8
0xb8d87015...E987Ee0e8
0.05361373 ETH
0x60806040220011572025-03-08 9:06:59378 days ago1741424819
0xb8d87015...E987Ee0e8
 Contract Creation0 ETH
Transfer220011572025-03-08 9:06:59378 days ago1741424819
0xb8d87015...E987Ee0e8
0.00238074 ETH
Transfer220011572025-03-08 9:06:59378 days ago1741424819
0xb8d87015...E987Ee0e8
0.00238074 ETH
Swap ETH For Exa...220011572025-03-08 9:06:59378 days ago1741424819
0xb8d87015...E987Ee0e8
0.04943094 ETH
Process Payment220011572025-03-08 9:06:59378 days ago1741424819
0xb8d87015...E987Ee0e8
0xb8d87015...E987Ee0e8
0.04943094 ETH
0x60806040219267462025-02-25 23:52:47389 days ago1740527567
0xb8d87015...E987Ee0e8
 Contract Creation0 ETH
0x60806040218250352025-02-11 18:21:23403 days ago1739298083
0xb8d87015...E987Ee0e8
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Diamond

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 10 runs

Other Settings:
london EvmVersion, MIT license
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

/******************************************************************************\
* Author: Nick Mudge <nick@perfectabstractions.com> (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";

contract Diamond {
    constructor(address _contractOwner, address _diamondCutFacet) payable {
        LibDiamond.setContractOwner(_contractOwner);

        // Add the diamondCut external function from the diamondCutFacet
        IDiamondCut.FacetCut[] memory cut = new IDiamondCut.FacetCut[](1);
        bytes4[] memory functionSelectors = new bytes4[](1);
        functionSelectors[0] = IDiamondCut.diamondCut.selector;
        cut[0] = IDiamondCut.FacetCut({ facetAddress: _diamondCutFacet, action: IDiamondCut.FacetCutAction.Add, functionSelectors: functionSelectors });
        LibDiamond.diamondCut(cut, address(0), "");
    }

    // Find facet for function that is called and execute the
    // function if a facet is found and return any value.
    // solhint-disable-next-line no-complex-fallback
    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.selectorToFacetAndPosition[msg.sig].facetAddress;
        require(facet != address(0), "Diamond: Function does not exist");
        // 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())
            }
        }
    }

    receive() external payable {}
}

// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

/******************************************************************************\
* Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

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

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

    /// @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;
}

// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

/******************************************************************************\
* Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/
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 InitializationFunctionReverted(address _initializationContractAddress, bytes _calldata);

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

    struct FacetAddressAndPosition {
        address facetAddress;
        uint96 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array
    }

    struct FacetFunctionSelectors {
        bytes4[] functionSelectors;
        uint256 facetAddressPosition; // position of facetAddress in facetAddresses array
    }

    struct DiamondStorage {
        // maps function selector to the facet address and
        // the position of the selector in the facetFunctionSelectors.selectors array
        mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition;
        // maps facet addresses to function selectors
        mapping(address => FacetFunctionSelectors) facetFunctionSelectors;
        // facet addresses
        address[] facetAddresses;
        // Used to query if a contract implements an interface.
        // Used to implement ERC-165.
        mapping(bytes4 => bool) supportedInterfaces;
        // owner of the contract
        address contractOwner;
    }

    function diamondStorage() internal pure returns (DiamondStorage storage ds) {
        bytes32 position = DIAMOND_STORAGE_POSITION;
        // solhint-disable-next-line no-inline-assembly
        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 {
        require(msg.sender == diamondStorage().contractOwner, "LibDiamond: Must be contract owner");
    }

    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++) {
            IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action;
            if (action == IDiamondCut.FacetCutAction.Add) {
                addFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);
            } else if (action == IDiamondCut.FacetCutAction.Replace) {
                replaceFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);
            } else if (action == IDiamondCut.FacetCutAction.Remove) {
                removeFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);
            } else {
                revert("LibDiamondCut: Incorrect FacetCutAction");
            }
        }
        emit DiamondCut(_diamondCut, _init, _calldata);
        initializeDiamondCut(_init, _calldata);
    }

    function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
        require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut");
        DiamondStorage storage ds = diamondStorage();
        require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)");
        uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length);
        // add new facet address if it does not exist
        if (selectorPosition == 0) {
            addFacet(ds, _facetAddress);
        }
        for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
            require(oldFacetAddress == address(0), "LibDiamondCut: Can't add function that already exists");
            addFunction(ds, selector, selectorPosition, _facetAddress);
            selectorPosition++;
        }
    }

    function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
        require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut");
        DiamondStorage storage ds = diamondStorage();
        require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)");
        uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length);
        // add new facet address if it does not exist
        if (selectorPosition == 0) {
            addFacet(ds, _facetAddress);
        }
        for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
            require(oldFacetAddress != _facetAddress, "LibDiamondCut: Can't replace function with same function");
            removeFunction(ds, oldFacetAddress, selector);
            addFunction(ds, selector, selectorPosition, _facetAddress);
            selectorPosition++;
        }
    }

    function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
        require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut");
        DiamondStorage storage ds = diamondStorage();
        // if function does not exist then do nothing and return
        require(_facetAddress == address(0), "LibDiamondCut: Remove facet address must be address(0)");
        for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
            removeFunction(ds, oldFacetAddress, selector);
        }
    }

    function addFacet(DiamondStorage storage ds, address _facetAddress) internal {
        enforceHasContractCode(_facetAddress, "LibDiamondCut: New facet has no code");
        ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = ds.facetAddresses.length;
        ds.facetAddresses.push(_facetAddress);
    }

    function addFunction(DiamondStorage storage ds, bytes4 _selector, uint96 _selectorPosition, address _facetAddress) internal {
        ds.selectorToFacetAndPosition[_selector].functionSelectorPosition = _selectorPosition;
        ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(_selector);
        ds.selectorToFacetAndPosition[_selector].facetAddress = _facetAddress;
    }

    function removeFunction(DiamondStorage storage ds, address _facetAddress, bytes4 _selector) internal {
        require(_facetAddress != address(0), "LibDiamondCut: Can't remove function that doesn't exist");
        // an immutable function is a function defined directly in a diamond
        require(_facetAddress != address(this), "LibDiamondCut: Can't remove immutable function");
        // replace selector with last selector, then delete last selector
        uint256 selectorPosition = ds.selectorToFacetAndPosition[_selector].functionSelectorPosition;
        uint256 lastSelectorPosition = ds.facetFunctionSelectors[_facetAddress].functionSelectors.length - 1;
        // if not the same then replace _selector with lastSelector
        if (selectorPosition != lastSelectorPosition) {
            bytes4 lastSelector = ds.facetFunctionSelectors[_facetAddress].functionSelectors[lastSelectorPosition];
            ds.facetFunctionSelectors[_facetAddress].functionSelectors[selectorPosition] = lastSelector;
            ds.selectorToFacetAndPosition[lastSelector].functionSelectorPosition = uint96(selectorPosition);
        }
        // delete the last selector
        ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop();
        delete ds.selectorToFacetAndPosition[_selector];

        // if no more selectors for facet address then delete the facet address
        if (lastSelectorPosition == 0) {
            // replace facet address with last facet address and delete last facet address
            uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1;
            uint256 facetAddressPosition = ds.facetFunctionSelectors[_facetAddress].facetAddressPosition;
            if (facetAddressPosition != lastFacetAddressPosition) {
                address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition];
                ds.facetAddresses[facetAddressPosition] = lastFacetAddress;
                ds.facetFunctionSelectors[lastFacetAddress].facetAddressPosition = facetAddressPosition;
            }
            ds.facetAddresses.pop();
            delete ds.facetFunctionSelectors[_facetAddress].facetAddressPosition;
        }
    }

    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)
        }
        require(contractSize > 0, _errorMessage);
    }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "none",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 10
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"internalType":"address","name":"_diamondCutFacet","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"InitializationFunctionReverted","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IDiamondCut.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"}]

608060405260405161120b38038061120b83398101604081905261002291610dc2565b61002b82610136565b604080516001808252818301909252600091816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816100425750506040805160018082528183019092529192506000919060208083019080368337019050509050631f931c1c60e01b816000815181106100b1576100b1610df5565b6001600160e01b031990921660209283029190910182015260408051606081019091526001600160a01b038516815290810160008152602001828152508260008151811061010157610101610df5565b602002602001018190525061012d8260006040518060200160405280600081525061019660201b60201c565b505050506110e0565b60006101406103b4565b6004810180546001600160a01b038581166001600160a01b031983168117909355604051939450169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b83518110156103695760008482815181106101b6576101b6610df5565b6020026020010151602001519050600060028111156101d7576101d7610e0b565b8160028111156101e9576101e9610e0b565b0361023d5761023885838151811061020357610203610df5565b60200260200101516000015186848151811061022157610221610df5565b6020026020010151604001516103d860201b60201c565b610360565b600181600281111561025157610251610e0b565b036102a05761023885838151811061026b5761026b610df5565b60200260200101516000015186848151811061028957610289610df5565b60200260200101516040015161055560201b60201c565b60028160028111156102b4576102b4610e0b565b03610303576102388583815181106102ce576102ce610df5565b6020026020010151600001518684815181106102ec576102ec610df5565b6020026020010151604001516106db60201b60201c565b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756044820152663a20b1ba34b7b760c91b60648201526084015b60405180910390fd5b50600101610199565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161039d93929190610e71565b60405180910390a16103af82826107f2565b505050565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90565b60008151116103f95760405162461bcd60e51b815260040161035790610f74565b60006104036103b4565b90506001600160a01b03831661042b5760405162461bcd60e51b815260040161035790610fbf565b6001600160a01b0383166000908152600182016020526040812054906001600160601b03821690036104615761046182856108b8565b60005b835181101561054e57600084828151811061048157610481610df5565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b031680156105275760405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c72656164792065786973747300000000000000000000006064820152608401610357565b6105338583868a610922565b8361053d81611021565b945050600190920191506104649050565b5050505050565b60008151116105765760405162461bcd60e51b815260040161035790610f74565b60006105806103b4565b90506001600160a01b0383166105a85760405162461bcd60e51b815260040161035790610fbf565b6001600160a01b0383166000908152600182016020526040812054906001600160601b03821690036105de576105de82856108b8565b60005b835181101561054e5760008482815181106105fe576105fe610df5565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b0390811690871681036106a95760405162461bcd60e51b815260206004820152603860248201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60448201527f6374696f6e20776974682073616d652066756e6374696f6e00000000000000006064820152608401610357565b6106b48582846109c2565b6106c08583868a610922565b836106ca81611021565b945050600190920191506105e19050565b60008151116106fc5760405162461bcd60e51b815260040161035790610f74565b60006107066103b4565b90506001600160a01b038316156107855760405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260448201527f657373206d7573742062652061646472657373283029000000000000000000006064820152608401610357565b60005b82518110156107ec5760008382815181106107a5576107a5610df5565b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b03166107e28482846109c2565b5050600101610788565b50505050565b6001600160a01b038216610804575050565b610826826040518060600160405280602881526020016111bf60289139610d85565b600080836001600160a01b031683604051610841919061104f565b600060405180830381855af49150503d806000811461087c576040519150601f19603f3d011682016040523d82523d6000602084013e610881565b606091505b5091509150816107ec5780511561089b5780518082602001fd5b838360405163192105d760e01b815260040161035792919061106b565b6108da816040518060600160405280602481526020016111e760249139610d85565b6002820180546001600160a01b0390921660008181526001948501602090815260408220860185905594840183559182529290200180546001600160a01b0319169091179055565b6001600160e01b0319831660008181526020868152604080832080546001600160601b03909716600160a01b026001600160a01b0397881617815594909516808352600180890183529583208054968701815583528183206008870401805460e09890981c60046007909816979097026101000a96870263ffffffff9097021990971695909517909555529290915281546001600160a01b031916179055565b6001600160a01b038216610a3e5760405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e27742065786973740000000000000000006064820152608401610357565b306001600160a01b03831603610aad5760405162461bcd60e51b815260206004820152602e60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201526d3a30b1363290333ab731ba34b7b760911b6064820152608401610357565b6001600160e01b03198116600090815260208481526040808320546001600160a01b0386168452600180880190935290832054600160a01b9091046001600160601b03169291610afc91611097565b9050808214610bee576001600160a01b03841660009081526001860160205260408120805483908110610b3157610b31610df5565b600091825260208083206008830401546001600160a01b038916845260018a019091526040909220805460079092166004026101000a90920460e01b925082919085908110610b8257610b82610df5565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790556001600160e01b03199290921682528690526040902080546001600160a01b0316600160a01b6001600160601b038516021790555b6001600160a01b03841660009081526001860160205260409020805480610c1757610c176110b0565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b0319851682528690526040812081905581900361054e576002850154600090610c7a90600190611097565b6001600160a01b0386166000908152600180890160205260409091200154909150808214610d29576000876002018381548110610cb957610cb9610df5565b6000918252602090912001546002890180546001600160a01b039092169250829184908110610cea57610cea610df5565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055929091168152600189810190925260409020018190555b86600201805480610d3c57610d3c6110b0565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0388168252600189810190915260408220015550505050505050565b813b81816107ec5760405162461bcd60e51b815260040161035791906110c6565b80516001600160a01b0381168114610dbd57600080fd5b919050565b60008060408385031215610dd557600080fd5b610dde83610da6565b9150610dec60208401610da6565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b83811015610e3c578181015183820152602001610e24565b50506000910152565b60008151808452610e5d816020860160208601610e21565b601f01601f19169290920160200192915050565b60006060808301606084528087518083526080925060808601915060808160051b8701016020808b0160005b84811015610f4457898403607f19018652815180516001600160a01b03168552838101518986019060038110610ee357634e487b7160e01b600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b80831015610f2f5783516001600160e01b0319168252928601926001929092019190860190610f05565b50978501979550505090820190600101610e9d565b50506001600160a01b038a16908801528681036040880152610f668189610e45565b9a9950505050505050505050565b6020808252602b908201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660408201526a1858d95d081d1bc818dd5d60aa1b606082015260800190565b6020808252602c908201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260408201526b65206164647265737328302960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038281166002600160601b031981016110455761104561100b565b6001019392505050565b60008251611061818460208701610e21565b9190910192915050565b6001600160a01b038316815260406020820181905260009061108f90830184610e45565b949350505050565b818103818111156110aa576110aa61100b565b92915050565b634e487b7160e01b600052603160045260246000fd5b6020815260006110d96020830184610e45565b9392505050565b60d1806110ee6000396000f3fe608060405236600a57005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602081905260409091205481906001600160a01b03168060a15760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374604482015260640160405180910390fd5b3660008037600080366000845af43d6000803e80801560bf573d6000f35b3d6000fdfea164736f6c6343000817000a4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465000000000000000000000000ce6a13955ec32b6b1b7ebe089302b536ad40aec3000000000000000000000000e2e237da290076922067123b7823986005ab6f76

Deployed Bytecode

0x608060405236600a57005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602081905260409091205481906001600160a01b03168060a15760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374604482015260640160405180910390fd5b3660008037600080366000845af43d6000803e80801560bf573d6000f35b3d6000fdfea164736f6c6343000817000a

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

000000000000000000000000ce6a13955ec32b6b1b7ebe089302b536ad40aec3000000000000000000000000e2e237da290076922067123b7823986005ab6f76

-----Decoded View---------------
Arg [0] : _contractOwner (address): 0xcE6a13955EC32B6B1b7EBe089302b536Ad40aeC3
Arg [1] : _diamondCutFacet (address): 0xE2e237da290076922067123B7823986005Ab6F76

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000ce6a13955ec32b6b1b7ebe089302b536ad40aec3
Arg [1] : 000000000000000000000000e2e237da290076922067123b7823986005ab6f76


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0xb8d8701589cE9cecbCEdc8DbDAdff30E987Ee0e8
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.