Contract 0x362fA9D0bCa5D19f743Db50738345ce2b40eC99f 22

 

Contract Overview

Balance:
0.000046952719653253 ETH

ETH Value:
$0.14 (@ $3,064.91/ETH)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xfbfb754aab31d54358a9c054ff655677f45cdfa48730048724d094d4c30b40faExecute Call And...1332111202023-09-21 14:25:06211 days 16 hrs ago0x11f11121df7256c40339393b0fb045321022ce44 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00008914 0.1
0x1d03b9c9cbde37e263fe44b798c28a81be49dae43c0b2a578cc6edaff56eec44Confirm Ownershi...1332108182023-09-21 14:23:50211 days 16 hrs ago0x11f11121df7256c40339393b0fb045321022ce44 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.0000292 0.1
0xbfe6ae41f4caf2f4fc1ba26b057300e511aa619af8c46f450fa2e6f824d02308Transfer Ownersh...1332107182023-09-21 14:23:25211 days 16 hrs ago0xcb1e9fa11edd27098a6b2ff23cb6b79183ccf8ee IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00003774 0.1
0x132fabcf2169714afa7555b68f5229883ae34786b13e03220c976ca52d3fd726Start Bridge Tok...374950482022-11-12 12:25:11524 days 18 hrs ago0x1e97d737786df74228eed4862d222bda6adc11b2 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00006231 0.1
0xec037ab213f8a63ff9faef2af3d327e08cb9a89a7dc4b35888deae5a69e11d8eStart Bridge Tok...368651382022-11-10 8:45:06526 days 22 hrs ago0x10ea6ae9343a79c48eb5d7e58260a6523d7cb443 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.08 ETH0.00008384 0.1
0x9833577a66230d91b30ff9795c46a5cde3d38295602adddb842940a036c8cb61Start Bridge Tok...368650662022-11-10 8:44:45526 days 22 hrs ago0x375c0c442924bd191dd4a2ef774b983467fceeb9 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.000089240.1
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6Start Bridge Tok...368648972022-11-10 8:43:56526 days 22 hrs ago0xf4c7249fce1168709883298951f1ab176cc71860 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.00007764064773 ETH0.00013273 0.1
0x5bd9e38991217e0ac16f9ec419ef040d2bd33ae4ae13e426193a3aef15fe95c8Start Bridge Tok...368646922022-11-10 8:42:58526 days 22 hrs ago0x40988184a7b8f93ddab94fc1c431faa9bf678450 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.000090080.1
0xb06fb7db6c8831c06b9fc583ffbc7289a74b449de0345aca70172469d6322db8Start Bridge Tok...368646842022-11-10 8:42:55526 days 22 hrs ago0x5d129864177c05253217eb4f6204dbe0faa9549c IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.000089730.1
0x8dc5707173c47a0bb1f4c6024c2b58e99461465c6c8a9d9a50c0ccc428cdbc4dStart Bridge Tok...368646512022-11-10 8:42:45526 days 22 hrs ago0xb673f72171742a596c9322ee91c46f7724602d56 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00009056 0.1
0x297397f251edb99376372857d073f7600fa6629b72f2b332564c84e54aa69fe1Start Bridge Tok...368644342022-11-10 8:41:43526 days 22 hrs ago0x4b66840d77fed37bbca7db5e6b679ecaedb96ae1 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00008757 0.1
0x777139bb672b9240cd7ed2b5e6170f9a4f11b3c8c3573f74d8f486f7b46f2a32Swap Tokens Gene...368643632022-11-10 8:41:24526 days 22 hrs ago0x79a71b809a5211e5d54380a484241b9e37375f71 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.049747027662512 ETH0.00018569 0.1
0x3602c4b04ac5018339bc98d1dd7454cb4333aec6c44ebbf53fb49cbedf19ed00Swap Tokens Gene...368639752022-11-10 8:39:37526 days 22 hrs ago0x79a71b809a5211e5d54380a484241b9e37375f71 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.049747027662512 ETH0.00018473 0.1
0xdf26fbe1726762e547fd593473357189636d4e7212e2fb5abd16bd5f3bbb19d7Start Bridge Tok...368639142022-11-10 8:39:19526 days 22 hrs ago0x76c3156eb0f502607ad22f5782f733f1f9351505 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.002 ETH0.000082530.1
0x4c534765b857de42bfbfd1134bcb7f714f81b826561b5382238a7031c449e928Swap And Start B...368638212022-11-10 8:38:52526 days 22 hrs ago0x10c598cf1da2a558561820d9224a7c8535eb24ce IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.002566208657809 ETH0.00032021 0.1
0xf85cb3323cea1dfc1edd9e5fedaa3d558db5ef0f5218a0485acfc72e25a87c3eStart Bridge Tok...368632012022-11-10 8:35:59526 days 22 hrs ago0x4888b63d987595b4d83370eb73fb9b501f79f00a IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00008928 0.1
0x48333b1e02f9a53335bbd99b19b9a38743f0bb02c969da803a9a2084f4456036Start Bridge Tok...368629092022-11-10 8:34:33526 days 22 hrs ago0xc797f7a9518cf452267ed06719895dac6f3010ea IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00008986 0.1
0x1f1741ed2d8f0ce782fea6de604135ddda4ca4b39e44203cd17e31133b06260aStart Bridge Tok...368625912022-11-10 8:33:02526 days 22 hrs ago0x64a00ed31e559c4a19ec0c7b9b6e6811d1b20d2e IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.000090780.1
0x2df4417791b3c6d92d134a372271e3088adb0ee059109728c032b3d12b867121Start Bridge Tok...368625742022-11-10 8:32:57526 days 22 hrs ago0x375c0c442924bd191dd4a2ef774b983467fceeb9 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.06 ETH0.000084060.1
0x56b0d4f47ea260e802491c816552605fb4fb4738b2bdb11a6f60e75578b28449Swap Tokens Gene...368624432022-11-10 8:32:21526 days 22 hrs ago0xbba161264817228317b3f59bf7931ef59d0e6cdd IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.00010924 0.1
0x2bb82ccfa4492ad3364f5481daa50189ca37eac4b426eee569a9f328fe62a00aStart Bridge Tok...368624242022-11-10 8:32:17526 days 22 hrs ago0x76c3156eb0f502607ad22f5782f733f1f9351505 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.043 ETH0.000083760.1
0xb6aab470ed9b4a321dffe0ded11dedd7f3d43dfd875cfbb26f05f6ae77443803Start Bridge Tok...368623132022-11-10 8:31:41526 days 22 hrs ago0xc55555e874445d904626bd2c4d920e883894a61c IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.0000911 0.1
0xe18462c798992ba5416942b290373b96102850b577bf71b26fa4d62fbadc8063Start Bridge Tok...368620322022-11-10 8:30:19526 days 22 hrs ago0x8b31fba186fcd5c6d18a691671371d9135e259ac IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.055 ETH0.00008616 0.1
0x44622e44a84721052e79df23f5c6b1bd638d09f92156439019f18cf9ea03f4fdStart Bridge Tok...368617422022-11-10 8:29:03526 days 22 hrs ago0x375c0c442924bd191dd4a2ef774b983467fceeb9 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.06 ETH0.000084710.1
0xd7b9dde11bdf1f656207c6ef144a661436ade7abce4862f4ff6b9521914c552bStart Bridge Tok...368614852022-11-10 8:27:52526 days 22 hrs ago0xdd6fa21105fe98dff55577620712d27bfc6b2d0c IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 ETH0.0000924 0.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x132fabcf2169714afa7555b68f5229883ae34786b13e03220c976ca52d3fd726374950482022-11-12 12:25:11524 days 18 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Across Protocol: Arbitrum Spoke Pool V20 ETH
0x132fabcf2169714afa7555b68f5229883ae34786b13e03220c976ca52d3fd726374950482022-11-12 12:25:11524 days 18 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x132fabcf2169714afa7555b68f5229883ae34786b13e03220c976ca52d3fd726374950482022-11-12 12:25:11524 days 18 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x132fabcf2169714afa7555b68f5229883ae34786b13e03220c976ca52d3fd726374950482022-11-12 12:25:11524 days 18 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x132fabcf2169714afa7555b68f5229883ae34786b13e03220c976ca52d3fd726374950482022-11-12 12:25:11524 days 18 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x132fabcf2169714afa7555b68f5229883ae34786b13e03220c976ca52d3fd726374950482022-11-12 12:25:11524 days 18 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f 0xca05f892509ad91ce7e53d5904857f273529d1b60 ETH
0xec037ab213f8a63ff9faef2af3d327e08cb9a89a7dc4b35888deae5a69e11d8e368651382022-11-10 8:45:06526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Across Protocol: Arbitrum Spoke Pool V20.08 ETH
0xec037ab213f8a63ff9faef2af3d327e08cb9a89a7dc4b35888deae5a69e11d8e368651382022-11-10 8:45:06526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f 0xca05f892509ad91ce7e53d5904857f273529d1b60 ETH
0x9833577a66230d91b30ff9795c46a5cde3d38295602adddb842940a036c8cb61368650662022-11-10 8:44:45526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Biconomy: Liquidity Pool0 ETH
0x9833577a66230d91b30ff9795c46a5cde3d38295602adddb842940a036c8cb61368650662022-11-10 8:44:45526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x9833577a66230d91b30ff9795c46a5cde3d38295602adddb842940a036c8cb61368650662022-11-10 8:44:45526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x9833577a66230d91b30ff9795c46a5cde3d38295602adddb842940a036c8cb61368650662022-11-10 8:44:45526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x9833577a66230d91b30ff9795c46a5cde3d38295602adddb842940a036c8cb61368650662022-11-10 8:44:45526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x9833577a66230d91b30ff9795c46a5cde3d38295602adddb842940a036c8cb61368650662022-11-10 8:44:45526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f 0xa7506e76f433485c6a7b23490f2708a29e72679f0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Stargate Finance: Router0.000077640647730897 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Stargate Finance: S*USDC Token0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Stargate Finance: Factory0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Stargate Finance: Router0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Arbitrum: USDC Token0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Stargate Finance: S*USDC Token0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Stargate Finance: Factory0 ETH
0x1904683366a243928f829f602205723515c32aed276dfa86b1b8b7d9c08f9aa6368648972022-11-10 8:43:56526 days 22 hrs ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f Stargate Finance: Router0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LiFiDiamond

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 3 : LiFiDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;

import { LibDiamond } from "./Libraries/LibDiamond.sol";
import { IDiamondCut } from "./Interfaces/IDiamondCut.sol";

contract LiFiDiamond {
    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
        // solhint-disable-next-line no-inline-assembly
        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.
        // solhint-disable-next-line no-inline-assembly
        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())
            }
        }
    }

    // Able to receive ether
    // solhint-disable-next-line no-empty-blocks
    receive() external payable {}
}

File 2 of 3 : LibDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;

import { IDiamondCut } from "../Interfaces/IDiamondCut.sol";

library LibDiamond {
    bytes32 internal 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)) {
            require(_calldata.length == 0, "LibDiamondCut: _init is address(0) but_calldata is not empty");
        } else {
            require(_calldata.length > 0, "LibDiamondCut: _calldata is empty but _init is not address(0)");
            if (_init != address(this)) {
                enforceHasContractCode(_init, "LibDiamondCut: _init address has no code");
            }
            // solhint-disable-next-line avoid-low-level-calls
            (bool success, bytes memory error) = _init.delegatecall(_calldata);
            if (!success) {
                if (error.length > 0) {
                    // bubble up the error
                    revert(string(error));
                } else {
                    revert("LibDiamondCut: _init function reverted");
                }
            }
        }
    }

    function enforceHasContractCode(address _contract, string memory _errorMessage) internal view {
        uint256 contractSize;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            contractSize := extcodesize(_contract)
        }
        require(contractSize > 0, _errorMessage);
    }
}

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

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;

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

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"internalType":"address","name":"_diamondCutFacet","type":"address"}],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

608060405260405162002d2c38038062002d2c83398101604081905262000026916200116d565b6200003c826200015660201b620000ed1760201c565b604080516001808252818301909252600091816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081620000535750506040805160018082528183019092529192506000919060208083019080368337019050509050631f931c1c60e01b81600081518110620000c657620000c6620011a5565b6001600160e01b031990921660209283029190910182015260408051606081019091526001600160a01b0385168152908101600081526020018281525082600081518110620001195762000119620011a5565b60200260200101819052506200014c82600060405180602001604052806000815250620001da60201b620001a71760201c565b5050505062001402565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c132080546001600160a01b031981166001600160a01b0384811691821790935560405160008051602062002c80833981519152939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b8351811015620003e6576000848281518110620001fe57620001fe620011a5565b602002602001015160200151905060006002811115620002225762000222620011bb565b816002811115620002375762000237620011bb565b0362000295576200028f858381518110620002565762000256620011a5565b602002602001015160000151868481518110620002775762000277620011a5565b6020026020010151604001516200043560201b60201c565b620003d0565b6001816002811115620002ac57620002ac620011bb565b0362000304576200028f858381518110620002cb57620002cb620011a5565b602002602001015160000151868481518110620002ec57620002ec620011a5565b602002602001015160400151620006c260201b60201c565b60028160028111156200031b576200031b620011bb565b0362000373576200028f8583815181106200033a576200033a620011a5565b6020026020010151600001518684815181106200035b576200035b620011a5565b6020026020010151604001516200095a60201b60201c565b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756044820152663a20b1ba34b7b760c91b60648201526084015b60405180910390fd5b5080620003dd81620011e7565b915050620001dd565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516200041c9392919062001260565b60405180910390a162000430828262000ac0565b505050565b60008151116200048b5760405162461bcd60e51b815260206004820152602b602482015260008051602062002d0c83398151915260448201526a1858d95d081d1bc818dd5d60aa1b6064820152608401620003c7565b60008051602062002c808339815191526001600160a01b038316620004f75760405162461bcd60e51b815260206004820152602c602482015260008051602062002cc883398151915260448201526b65206164647265737328302960a01b6064820152608401620003c7565b6001600160a01b0383166000908152600182016020526040812054906001600160601b0382169003620005305762000530828562000cdf565b60005b8351811015620006bb576000848281518110620005545762000554620011a5565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b03168015620005fc5760405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c72656164792065786973747300000000000000000000006064820152608401620003c7565b6001600160e01b0319821660008181526020878152604080832080546001600160a01b03908116600160a01b6001600160601b038c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281546001600160a01b03191617905583620006a08162001367565b94505050508080620006b290620011e7565b91505062000533565b5050505050565b6000815111620007185760405162461bcd60e51b815260206004820152602b602482015260008051602062002d0c83398151915260448201526a1858d95d081d1bc818dd5d60aa1b6064820152608401620003c7565b60008051602062002c808339815191526001600160a01b038316620007845760405162461bcd60e51b815260206004820152602c602482015260008051602062002cc883398151915260448201526b65206164647265737328302960a01b6064820152608401620003c7565b6001600160a01b0383166000908152600182016020526040812054906001600160601b0382169003620007bd57620007bd828562000cdf565b60005b8351811015620006bb576000848281518110620007e157620007e1620011a5565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b0390811690871681036200088e5760405162461bcd60e51b815260206004820152603860248201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60448201527f6374696f6e20776974682073616d652066756e6374696f6e00000000000000006064820152608401620003c7565b6200089b85828462000d4c565b6001600160e01b0319821660008181526020878152604080832080546001600160a01b03908116600160a01b6001600160601b038c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281546001600160a01b031916179055836200093f8162001367565b945050505080806200095190620011e7565b915050620007c0565b6000815111620009b05760405162461bcd60e51b815260206004820152602b602482015260008051602062002d0c83398151915260448201526a1858d95d081d1bc818dd5d60aa1b6064820152608401620003c7565b60008051602062002c808339815191526001600160a01b0383161562000a3f5760405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260448201527f657373206d7573742062652061646472657373283029000000000000000000006064820152608401620003c7565b60005b825181101562000aba57600083828151811062000a635762000a63620011a5565b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b031662000aa284828462000d4c565b5050808062000ab190620011e7565b91505062000a42565b50505050565b6001600160a01b03821662000b4a5780511562000b465760405162461bcd60e51b815260206004820152603c60248201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860448201527f3029206275745f63616c6c64617461206973206e6f7420656d707479000000006064820152608401620003c7565b5050565b600081511162000bc35760405162461bcd60e51b815260206004820152603d60248201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460448201527f7920627574205f696e6974206973206e6f7420616464726573732830290000006064820152608401620003c7565b6001600160a01b038216301462000bf95762000bf98260405180606001604052806028815260200162002ca0602891396200112c565b600080836001600160a01b03168360405162000c16919062001398565b600060405180830381855af49150503d806000811462000c53576040519150601f19603f3d011682016040523d82523d6000602084013e62000c58565b606091505b50915091508162000aba5780511562000c87578060405162461bcd60e51b8152600401620003c79190620013b6565b60405162461bcd60e51b815260206004820152602660248201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e2072656044820152651d995c9d195960d21b6064820152608401620003c7565b62000d048160405180606001604052806024815260200162002ce8602491396200112c565b6002820180546001600160a01b0390921660008181526001948501602090815260408220860185905594840183559182529290200180546001600160a01b0319169091179055565b6001600160a01b03821662000dca5760405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e27742065786973740000000000000000006064820152608401620003c7565b306001600160a01b0383160362000e3b5760405162461bcd60e51b815260206004820152602e60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201526d3a30b1363290333ab731ba34b7b760911b6064820152608401620003c7565b6001600160e01b03198116600090815260208481526040808320546001600160a01b0386168452600180880190935290832054600160a01b9091046001600160601b0316929162000e8c91620013d2565b905080821462000f85576001600160a01b0384166000908152600186016020526040812080548390811062000ec55762000ec5620011a5565b600091825260208083206008830401546001600160a01b038916845260018a019091526040909220805460079092166004026101000a90920460e01b92508291908590811062000f195762000f19620011a5565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790556001600160e01b03199290921682528690526040902080546001600160a01b0316600160a01b6001600160601b038516021790555b6001600160a01b0384166000908152600186016020526040902080548062000fb15762000fb1620013ec565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b03198516825286905260408120819055819003620006bb5760028501546000906200101790600190620013d2565b6001600160a01b0386166000908152600180890160205260409091200154909150808214620010cd5760008760020183815481106200105a576200105a620011a5565b6000918252602090912001546002890180546001600160a01b0390921692508291849081106200108e576200108e620011a5565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055929091168152600189810190925260409020018190555b86600201805480620010e357620010e3620013ec565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0388168252600189810190915260408220015550505050505050565b813b818162000aba5760405162461bcd60e51b8152600401620003c79190620013b6565b80516001600160a01b03811681146200116857600080fd5b919050565b600080604083850312156200118157600080fd5b6200118c8362001150565b91506200119c6020840162001150565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620011fc57620011fc620011d1565b5060010190565b60005b838110156200122057818101518382015260200162001206565b8381111562000aba5750506000910152565b600081518084526200124c81602086016020860162001203565b601f01601f19169290920160200192915050565b60006060808301818452808751808352608092508286019150828160051b8701016020808b0160005b848110156200133557898403607f19018652815180516001600160a01b03168552838101518986019060038110620012d157634e487b7160e01b600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b808310156200131f5783516001600160e01b0319168252928601926001929092019190860190620012f3565b5097850197955050509082019060010162001289565b50506001600160a01b038a1690880152868103604088015262001359818962001232565b9a9950505050505050505050565b60006001600160601b038281166002600160601b031981016200138e576200138e620011d1565b6001019392505050565b60008251620013ac81846020870162001203565b9190910192915050565b602081526000620013cb602083018462001232565b9392505050565b600082821015620013e757620013e7620011d1565b500390565b634e487b7160e01b600052603160045260246000fd5b61186e80620014126000396000f3fe60806040523661000b57005b600080357fffffffff000000000000000000000000000000000000000000000000000000001681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819073ffffffffffffffffffffffffffffffffffffffff16806100c95760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f7420657869737460448201526064015b60405180910390fd5b3660008037600080366000845af43d6000803e8080156100e8573d6000f35b3d6000fd5b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c132080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff8481169182179093556040517fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b83518110156103835760008482815181106101c7576101c76114a2565b6020026020010151602001519050600060028111156101e8576101e86114d1565b8160028111156101fa576101fa6114d1565b0361024857610243858381518110610214576102146114a2565b602002602001015160000151868481518110610232576102326114a2565b6020026020010151604001516103ce565b610370565b600181600281111561025c5761025c6114d1565b036102a557610243858381518110610276576102766114a2565b602002602001015160000151868481518110610294576102946114a2565b602002602001015160400151610736565b60028160028111156102b9576102b96114d1565b03610302576102438583815181106102d3576102d36114a2565b6020026020010151600001518684815181106102f1576102f16114a2565b602002602001015160400151610aa7565b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560448201527f74416374696f6e0000000000000000000000000000000000000000000000000060648201526084016100c0565b508061037b8161152f565b9150506101aa565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516103b7939291906115dd565b60405180910390a16103c98282610c66565b505050565b60008151116104455760405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201527f6163657420746f2063757400000000000000000000000000000000000000000060648201526084016100c0565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff83166104ef5760405162461bcd60e51b815260206004820152602c60248201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260448201527f652061646472657373283029000000000000000000000000000000000000000060648201526084016100c0565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600182016020526040812054906bffffffffffffffffffffffff82169003610537576105378285610eb1565b60005b835181101561072f576000848281518110610557576105576114a2565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529186905260409091205490915073ffffffffffffffffffffffffffffffffffffffff1680156106225760405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c726561647920657869737473000000000000000000000060648201526084016100c0565b7fffffffff000000000000000000000000000000000000000000000000000000008216600081815260208781526040808320805473ffffffffffffffffffffffffffffffffffffffff908116740100000000000000000000000000000000000000006bffffffffffffffffffffffff8c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790558361071781611745565b945050505080806107279061152f565b91505061053a565b5050505050565b60008151116107ad5760405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201527f6163657420746f2063757400000000000000000000000000000000000000000060648201526084016100c0565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff83166108575760405162461bcd60e51b815260206004820152602c60248201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260448201527f652061646472657373283029000000000000000000000000000000000000000060648201526084016100c0565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600182016020526040812054906bffffffffffffffffffffffff8216900361089f5761089f8285610eb1565b60005b835181101561072f5760008482815181106108bf576108bf6114a2565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529186905260409091205490915073ffffffffffffffffffffffffffffffffffffffff908116908716810361098f5760405162461bcd60e51b815260206004820152603860248201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60448201527f6374696f6e20776974682073616d652066756e6374696f6e000000000000000060648201526084016100c0565b61099a858284610f40565b7fffffffff000000000000000000000000000000000000000000000000000000008216600081815260208781526040808320805473ffffffffffffffffffffffffffffffffffffffff908116740100000000000000000000000000000000000000006bffffffffffffffffffffffff8c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905583610a8f81611745565b94505050508080610a9f9061152f565b9150506108a2565b6000815111610b1e5760405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201527f6163657420746f2063757400000000000000000000000000000000000000000060648201526084016100c0565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff831615610bc95760405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260448201527f657373206d75737420626520616464726573732830290000000000000000000060648201526084016100c0565b60005b8251811015610c60576000838281518110610be957610be96114a2565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529185905260409091205490915073ffffffffffffffffffffffffffffffffffffffff16610c4b848284610f40565b50508080610c589061152f565b915050610bcc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216610cfa57805115610cf65760405162461bcd60e51b815260206004820152603c60248201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860448201527f3029206275745f63616c6c64617461206973206e6f7420656d7074790000000060648201526084016100c0565b5050565b6000815111610d715760405162461bcd60e51b815260206004820152603d60248201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460448201527f7920627574205f696e6974206973206e6f74206164647265737328302900000060648201526084016100c0565b73ffffffffffffffffffffffffffffffffffffffff82163014610db057610db0826040518060600160405280602881526020016117ed60289139611481565b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610dd89190611770565b600060405180830381855af49150503d8060008114610e13576040519150601f19603f3d011682016040523d82523d6000602084013e610e18565b606091505b509150915081610c6057805115610e43578060405162461bcd60e51b81526004016100c0919061178c565b60405162461bcd60e51b815260206004820152602660248201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560448201527f766572746564000000000000000000000000000000000000000000000000000060648201526084016100c0565b610ed38160405180606001604052806024815260200161181560249139611481565b60028201805473ffffffffffffffffffffffffffffffffffffffff90921660008181526001948501602090815260408220860185905594840183559182529290200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b73ffffffffffffffffffffffffffffffffffffffff8216610fc95760405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e277420657869737400000000000000000060648201526084016100c0565b3073ffffffffffffffffffffffffffffffffffffffff8316036110545760405162461bcd60e51b815260206004820152602e60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201527f7461626c652066756e6374696f6e00000000000000000000000000000000000060648201526084016100c0565b7fffffffff0000000000000000000000000000000000000000000000000000000081166000908152602084815260408083205473ffffffffffffffffffffffffffffffffffffffff86168452600180880190935290832054740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff1692916110de916117a6565b90508082146112255773ffffffffffffffffffffffffffffffffffffffff841660009081526001860160205260408120805483908110611120576111206114a2565b6000918252602080832060088304015473ffffffffffffffffffffffffffffffffffffffff8916845260018a019091526040909220805460079092166004026101000a90920460e01b92508291908590811061117e5761117e6114a2565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790557fffffffff0000000000000000000000000000000000000000000000000000000092909216825286905260409020805473ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000006bffffffffffffffffffffffff8516021790555b73ffffffffffffffffffffffffffffffffffffffff84166000908152600186016020526040902080548061125b5761125b6117bd565b6000828152602080822060087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193840401805463ffffffff600460078716026101000a0219169055919092557fffffffff00000000000000000000000000000000000000000000000000000000851682528690526040812081905581900361072f5760028501546000906112f4906001906117a6565b73ffffffffffffffffffffffffffffffffffffffff861660009081526001808901602052604090912001549091508082146113e2576000876002018381548110611340576113406114a2565b60009182526020909120015460028901805473ffffffffffffffffffffffffffffffffffffffff909216925082918490811061137e5761137e6114a2565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff948516179055929091168152600189810190925260409020018190555b866002018054806113f5576113f56117bd565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff88168252600189810190915260408220015550505050505050565b813b8181610c605760405162461bcd60e51b81526004016100c0919061178c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361156057611560611500565b5060010190565b60005b8381101561158257818101518382015260200161156a565b83811115610c605750506000910152565b600081518084526115ab816020860160208601611567565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006060808301818452808751808352608092508286019150828160051b8701016020808b0160005b84811015611708577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8503018652815188850173ffffffffffffffffffffffffffffffffffffffff8251168652848201516003811061168f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b808310156116f35783517fffffffff000000000000000000000000000000000000000000000000000000001682529286019260019290920191908601906116b1565b50978501979550505090820190600101611606565b505073ffffffffffffffffffffffffffffffffffffffff8a169088015286810360408801526117378189611593565b9a9950505050505050505050565b60006bffffffffffffffffffffffff80831681810361176657611766611500565b6001019392505050565b60008251611782818460208701611567565b9190910192915050565b60208152600061179f6020830184611593565b9392505050565b6000828210156117b8576117b8611500565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220c217b44a368c9e7f7edbcc4e5524eeb9fcd07e5768e6838d3901153fd014371b64736f6c634300080d0033c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204164642066616365742063616e277420624c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f64654c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e2066000000000000000000000000cb1e9fa11edd27098a6b2ff23cb6b79183ccf8ee000000000000000000000000ed7b69d4ffadecff9a14bb7c713ae2459cd6f7b9

Deployed Bytecode

0x60806040523661000b57005b600080357fffffffff000000000000000000000000000000000000000000000000000000001681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819073ffffffffffffffffffffffffffffffffffffffff16806100c95760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f7420657869737460448201526064015b60405180910390fd5b3660008037600080366000845af43d6000803e8080156100e8573d6000f35b3d6000fd5b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c132080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff8481169182179093556040517fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b83518110156103835760008482815181106101c7576101c76114a2565b6020026020010151602001519050600060028111156101e8576101e86114d1565b8160028111156101fa576101fa6114d1565b0361024857610243858381518110610214576102146114a2565b602002602001015160000151868481518110610232576102326114a2565b6020026020010151604001516103ce565b610370565b600181600281111561025c5761025c6114d1565b036102a557610243858381518110610276576102766114a2565b602002602001015160000151868481518110610294576102946114a2565b602002602001015160400151610736565b60028160028111156102b9576102b96114d1565b03610302576102438583815181106102d3576102d36114a2565b6020026020010151600001518684815181106102f1576102f16114a2565b602002602001015160400151610aa7565b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560448201527f74416374696f6e0000000000000000000000000000000000000000000000000060648201526084016100c0565b508061037b8161152f565b9150506101aa565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516103b7939291906115dd565b60405180910390a16103c98282610c66565b505050565b60008151116104455760405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201527f6163657420746f2063757400000000000000000000000000000000000000000060648201526084016100c0565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff83166104ef5760405162461bcd60e51b815260206004820152602c60248201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260448201527f652061646472657373283029000000000000000000000000000000000000000060648201526084016100c0565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600182016020526040812054906bffffffffffffffffffffffff82169003610537576105378285610eb1565b60005b835181101561072f576000848281518110610557576105576114a2565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529186905260409091205490915073ffffffffffffffffffffffffffffffffffffffff1680156106225760405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c726561647920657869737473000000000000000000000060648201526084016100c0565b7fffffffff000000000000000000000000000000000000000000000000000000008216600081815260208781526040808320805473ffffffffffffffffffffffffffffffffffffffff908116740100000000000000000000000000000000000000006bffffffffffffffffffffffff8c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790558361071781611745565b945050505080806107279061152f565b91505061053a565b5050505050565b60008151116107ad5760405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201527f6163657420746f2063757400000000000000000000000000000000000000000060648201526084016100c0565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff83166108575760405162461bcd60e51b815260206004820152602c60248201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260448201527f652061646472657373283029000000000000000000000000000000000000000060648201526084016100c0565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600182016020526040812054906bffffffffffffffffffffffff8216900361089f5761089f8285610eb1565b60005b835181101561072f5760008482815181106108bf576108bf6114a2565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529186905260409091205490915073ffffffffffffffffffffffffffffffffffffffff908116908716810361098f5760405162461bcd60e51b815260206004820152603860248201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60448201527f6374696f6e20776974682073616d652066756e6374696f6e000000000000000060648201526084016100c0565b61099a858284610f40565b7fffffffff000000000000000000000000000000000000000000000000000000008216600081815260208781526040808320805473ffffffffffffffffffffffffffffffffffffffff908116740100000000000000000000000000000000000000006bffffffffffffffffffffffff8c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905583610a8f81611745565b94505050508080610a9f9061152f565b9150506108a2565b6000815111610b1e5760405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201527f6163657420746f2063757400000000000000000000000000000000000000000060648201526084016100c0565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff831615610bc95760405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260448201527f657373206d75737420626520616464726573732830290000000000000000000060648201526084016100c0565b60005b8251811015610c60576000838281518110610be957610be96114a2565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529185905260409091205490915073ffffffffffffffffffffffffffffffffffffffff16610c4b848284610f40565b50508080610c589061152f565b915050610bcc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216610cfa57805115610cf65760405162461bcd60e51b815260206004820152603c60248201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860448201527f3029206275745f63616c6c64617461206973206e6f7420656d7074790000000060648201526084016100c0565b5050565b6000815111610d715760405162461bcd60e51b815260206004820152603d60248201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460448201527f7920627574205f696e6974206973206e6f74206164647265737328302900000060648201526084016100c0565b73ffffffffffffffffffffffffffffffffffffffff82163014610db057610db0826040518060600160405280602881526020016117ed60289139611481565b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610dd89190611770565b600060405180830381855af49150503d8060008114610e13576040519150601f19603f3d011682016040523d82523d6000602084013e610e18565b606091505b509150915081610c6057805115610e43578060405162461bcd60e51b81526004016100c0919061178c565b60405162461bcd60e51b815260206004820152602660248201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560448201527f766572746564000000000000000000000000000000000000000000000000000060648201526084016100c0565b610ed38160405180606001604052806024815260200161181560249139611481565b60028201805473ffffffffffffffffffffffffffffffffffffffff90921660008181526001948501602090815260408220860185905594840183559182529290200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b73ffffffffffffffffffffffffffffffffffffffff8216610fc95760405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e277420657869737400000000000000000060648201526084016100c0565b3073ffffffffffffffffffffffffffffffffffffffff8316036110545760405162461bcd60e51b815260206004820152602e60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201527f7461626c652066756e6374696f6e00000000000000000000000000000000000060648201526084016100c0565b7fffffffff0000000000000000000000000000000000000000000000000000000081166000908152602084815260408083205473ffffffffffffffffffffffffffffffffffffffff86168452600180880190935290832054740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff1692916110de916117a6565b90508082146112255773ffffffffffffffffffffffffffffffffffffffff841660009081526001860160205260408120805483908110611120576111206114a2565b6000918252602080832060088304015473ffffffffffffffffffffffffffffffffffffffff8916845260018a019091526040909220805460079092166004026101000a90920460e01b92508291908590811061117e5761117e6114a2565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790557fffffffff0000000000000000000000000000000000000000000000000000000092909216825286905260409020805473ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000006bffffffffffffffffffffffff8516021790555b73ffffffffffffffffffffffffffffffffffffffff84166000908152600186016020526040902080548061125b5761125b6117bd565b6000828152602080822060087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193840401805463ffffffff600460078716026101000a0219169055919092557fffffffff00000000000000000000000000000000000000000000000000000000851682528690526040812081905581900361072f5760028501546000906112f4906001906117a6565b73ffffffffffffffffffffffffffffffffffffffff861660009081526001808901602052604090912001549091508082146113e2576000876002018381548110611340576113406114a2565b60009182526020909120015460028901805473ffffffffffffffffffffffffffffffffffffffff909216925082918490811061137e5761137e6114a2565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff948516179055929091168152600189810190925260409020018190555b866002018054806113f5576113f56117bd565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff88168252600189810190915260408220015550505050505050565b813b8181610c605760405162461bcd60e51b81526004016100c0919061178c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361156057611560611500565b5060010190565b60005b8381101561158257818101518382015260200161156a565b83811115610c605750506000910152565b600081518084526115ab816020860160208601611567565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006060808301818452808751808352608092508286019150828160051b8701016020808b0160005b84811015611708577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8503018652815188850173ffffffffffffffffffffffffffffffffffffffff8251168652848201516003811061168f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b808310156116f35783517fffffffff000000000000000000000000000000000000000000000000000000001682529286019260019290920191908601906116b1565b50978501979550505090820190600101611606565b505073ffffffffffffffffffffffffffffffffffffffff8a169088015286810360408801526117378189611593565b9a9950505050505050505050565b60006bffffffffffffffffffffffff80831681810361176657611766611500565b6001019392505050565b60008251611782818460208701611567565b9190910192915050565b60208152600061179f6020830184611593565b9392505050565b6000828210156117b8576117b8611500565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220c217b44a368c9e7f7edbcc4e5524eeb9fcd07e5768e6838d3901153fd014371b64736f6c634300080d0033

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

000000000000000000000000cb1e9fa11edd27098a6b2ff23cb6b79183ccf8ee000000000000000000000000ed7b69d4ffadecff9a14bb7c713ae2459cd6f7b9

-----Decoded View---------------
Arg [0] : _contractOwner (address): 0xCB1e9fA11Edd27098A6B2Ff23cB6b79183ccf8Ee
Arg [1] : _diamondCutFacet (address): 0xEd7B69D4FFaDecff9A14bB7C713AE2459Cd6F7B9

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000cb1e9fa11edd27098a6b2ff23cb6b79183ccf8ee
Arg [1] : 000000000000000000000000ed7b69d4ffadecff9a14bb7c713ae2459cd6f7b9


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.