Contract 0x362fA9D0bCa5D19f743Db50738345ce2b40eC99f 17

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7503c6de028b1752e75a137a05058522ad0e27fc250e11e557e63d219c2554b40x2a7a7042169617322022-07-06 6:33:2025 mins ago0x6dd4fdf5f15a579d060dbdea7eadb6266ce79840 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.014158557 27
0x2fa9e33c18eb20701c1c178a253c6ce6a79bdd8acb17e947903c453e9f8acef90x2a7a7042169607832022-07-06 6:01:4257 mins ago0xf42fc0ab50b06d6d85e988a567ad99fd9afc9aae IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.014157909 27
0x324700479f3241afe94dd5f04610f6f377f6c64361e54638ddeddf0b89952d080x290a4e06169606242022-07-06 5:56:241 hr 2 mins ago0xd332f90e9eedaee3af94e8f3f71c3e4f2fdbee36 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.4 AVAX0.00913655 25
0x13bb3cdcb26999e4c08c8af79b4b13d24483783b2e573908d1211602aca0c8d80x7d7aecd3169604812022-07-06 5:51:291 hr 7 mins ago0x7d994b4aa00ae968105f91068b53a6619ccd54df IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.006030828 27
0x966cb77fe93e3dca4d4f678e8ed80135006cec1106db3811b3804104d15932740x7d7aecd3169588772022-07-06 4:57:392 hrs 1 min ago0xe3f1ea13f608e42c10650c4a217964c4331fc454 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.006013089 27
0x1211023561a9dca52b67c73848caac5b0c6b10a9ad3ba8e8977a3d40de9bff900x290a4e06169577372022-07-06 4:19:242 hrs 39 mins ago0xf62999efd3ba33340044df1fd4747ea2d9d4be8c IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.012366189 27
0x514835d623dce1ac883021376219b35599a5afb1b12a30ae97248740cb6defda0x8b6b2909169556552022-07-06 3:09:513 hrs 49 mins ago0x8061357a2a5da41901d12eb67fca3127eaac1aa4 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.006097221 27
0x31e2461e8fa14974b8b51e746a529e2143f2c99921c3eac96eac5b3a9e5e686b0xa4baa10c169529042022-07-06 1:37:595 hrs 21 mins ago0xf85a4ffac936880bafbca40c5016a02511d2c2f0 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.002687175 27
0xf89ddf74af3e3c94b39c7597ff3a564f5710490b031e1e1380030870297286fb0x8b6b2909169483762022-07-05 23:06:237 hrs 52 mins ago0x55d554bfde1e61c72fa3c9059cdf3f739d92679a IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.006097221 27
0xc53fe291a4bba4f913751a06898aaea1ba0ea913ee80e704a1ad46e9cfb14f0c0xe18a8fdb169446122022-07-05 21:01:119 hrs 57 mins ago0x6d84264a7bd2cffa4a117ba2350403b3a9866949 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.00479943927
0x31e65cb82358953910f4d828ce2d4281fce8c3c91a45e359d1ec37f7017c7c5b0x8b6b2909169439322022-07-05 20:38:2410 hrs 20 mins ago0x5a9482eae4ef083cb6aec6ccae7732ae1710c2d0 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.006097221 27
0x0eedd1ce05005947bd2e57077f2a0e31534aec20dad9ade9e4162aaa5f7ef5130xa4baa10c169427182022-07-05 19:57:5711 hrs 1 min ago0x2457c54c2b31625ef6b80175d06b07bd7caafa38 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.013427505 27
0xaa376ec7061af2b7f27caa9000b170830d0d5cb85b6c5c8c92f91043cc384c180x8b6b2909169405192022-07-05 18:44:3612 hrs 14 mins ago0xa2a246af86d743a4c47d343e1cb1d52c6d284047 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.006097221 27
0x4e1c300584acb9cf765fe9caeb15089f64655454744ec9c431ef46cb48a46bb80xa4baa10c169353862022-07-05 15:52:4115 hrs 6 mins ago0x8e6327a2513c4e9ceaf1080d5cb35442b737bf40 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.013426425 27
0x836e2cde12058272fe56bb36b48ad64d25de53d69f05bdacf3e6abf4e6cc4e4b0x2a7a7042169349572022-07-05 15:38:1015 hrs 20 mins ago0xe7ef67878eca70726a608eb37156e2d4b72e01ff IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.294 AVAX0.010474542 27
0xc78120b7227edbe60e8a05b319dad9fa87744d3cc235a5ec4902a07b3f67f1ce0xa4baa10c169341142022-07-05 15:09:3915 hrs 49 mins ago0x0e5610b7e42e134d9d57224db6b47ce75afa87c9 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.014090139 27
0x7fd922520d3107985ff68eb5145972363c107b5a44880da3ddd194d6b0b0242c0xa4baa10c169326272022-07-05 14:20:0016 hrs 39 mins ago0x5ba1031bb03110d4443f5df83002338428c4c8eb IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.013426425 27
0xbeeffe6a7f90f505e59c1e291a76afeffacd95d9ae5a07e9ab0a4383d822cbc10xa4baa10c169320092022-07-05 13:59:1716 hrs 59 mins ago0xdf1c13b1fffa2ac5984516719cbdbfa22240efbb IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.0088746 25.000000001
0x7e6d3e2ac4deeea4c68eb4c9463da943c0d574abaa9faa4769034eb0734c61b20x7d7aecd3169313312022-07-05 13:36:4317 hrs 22 mins ago0xebd209df078575c999155258f0ac754e42421633 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.00660517525
0x9c2073a86a793ccece03a8344266797b84588e30f5b959ce3be59d909d5c268f0xa4baa10c169312162022-07-05 13:32:5017 hrs 26 mins ago0x0c85891c036ecd0dd902ebb722a4ecb71e8e0d12 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.010046268 27
0xb26ce3d5da3ca647c6ddec7048db90fd047fbf59e1d8f9cb46889df7d3f4791f0xa4baa10c169304682022-07-05 13:07:4717 hrs 51 mins ago0xcbdbac2f68dc35398981cf76d4f0da76fadba8ea IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.014090139 27
0x37f3134d416ccd91802ccca75ba35238c677111efb276ddaada0fc4314e32f000x40e939bb169300172022-07-05 12:52:3918 hrs 6 mins ago0xc1e7626bbd01befa94e53bd239d1518ec55bf293 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.00499066829
0x8941c6ef8d24edcbc9acd9108fb2771ea855e45ebe7d1dd538862250653011550x7d7aecd3169298112022-07-05 12:45:4718 hrs 13 mins ago0xc850be64f338e4c50de8a8158d15e673823b01c4 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.00647825229
0x663a193f7e5dc17563c31c90ea059c7a62dcd7e92a8accd3efc88c290d0c474f0xa4baa10c169293512022-07-05 12:30:2918 hrs 28 mins ago0xa63859b66f63a36fd114b3faede1e117ce5351da IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.013628763 27
0x8a253faa6bdf56c0e32b896a8649a1eccef44c37399632f4a49bdc7e5033a5f80x2a7a7042169249032022-07-05 10:01:2420 hrs 57 mins ago0x63d70f899ecdfce0bd07fb6bba0adae0338a8954 IN  0x362fa9d0bca5d19f743db50738345ce2b40ec99f0 AVAX0.017178831 27
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x324700479f3241afe94dd5f04610f6f377f6c64361e54638ddeddf0b89952d08169606242022-07-06 5:56:241 hr 2 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f1inch v4: Router0.4 AVAX
0xfdf6cee02626751d6c5b85bcc9807df927cd506e93f2d0581241501074534e6d169595762022-07-06 5:21:111 hr 37 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x10b9f7a1435f2486324dcf6a930cfc64332a43bc0.564692012195101587 AVAX
0xfdf6cee02626751d6c5b85bcc9807df927cd506e93f2d0581241501074534e6d169595762022-07-06 5:21:111 hr 37 mins ago ParaSwap: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.564692012195101587 AVAX
0x5e577da6cc68582585fdf097e5a4772a512947e1b8f8f8527a4f3faa07bdeb33169537682022-07-06 2:06:444 hrs 52 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x98745402b4299cca67028f546dff52f62a15f3c40.261774400590973855 AVAX
0x5e577da6cc68582585fdf097e5a4772a512947e1b8f8f8527a4f3faa07bdeb33169537682022-07-06 2:06:444 hrs 52 mins ago 1inch v4: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.261774400590973855 AVAX
0x6e47ce07eb455dc0439026cbfcf00456e9d98785d84d1fd848c7865f64994d70169454322022-07-05 21:28:389 hrs 30 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x0493b6988add9a904926937abd80891c6f0d42ff0.095395781799690819 AVAX
0x6e47ce07eb455dc0439026cbfcf00456e9d98785d84d1fd848c7865f64994d70169454322022-07-05 21:28:389 hrs 30 mins ago 1inch v4: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.095395781799690819 AVAX
0x795bebbd16b4f8b04104c5273ea0a125af8bf59fa51f396d59b519569dfe89b9169433952022-07-05 20:20:3310 hrs 38 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0xdb21b58c882b08ef367d2336aed9e234a9fb9b201.612049359999562418 AVAX
0x795bebbd16b4f8b04104c5273ea0a125af8bf59fa51f396d59b519569dfe89b9169433952022-07-05 20:20:3310 hrs 38 mins ago 1inch v4: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f1.612049359999562418 AVAX
0x0a92e3dc34110e839a5f6e119ca3e46cf17826da73040bf1453260bd0e918e3e169430372022-07-05 20:08:3410 hrs 50 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x9d55e3babeebf4e24eb857082586ac7d21da0e4a0.551374611531178398 AVAX
0x0a92e3dc34110e839a5f6e119ca3e46cf17826da73040bf1453260bd0e918e3e169430372022-07-05 20:08:3410 hrs 50 mins ago ParaSwap: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.551374611531178398 AVAX
0x0eedd1ce05005947bd2e57077f2a0e31534aec20dad9ade9e4162aaa5f7ef513169427182022-07-05 19:57:5711 hrs 1 min ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x2457c54c2b31625ef6b80175d06b07bd7caafa381.373910208155786324 AVAX
0x0eedd1ce05005947bd2e57077f2a0e31534aec20dad9ade9e4162aaa5f7ef513169427182022-07-05 19:57:5711 hrs 1 min ago ParaSwap: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f1.373910208155786324 AVAX
0x708da3dad606f2ebde2cac622750709845c6985fc98e2c299250af69a9d40957169421412022-07-05 19:38:4211 hrs 20 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x0419a7f969aaddacd52a3188d6837d7a750125660.511896610658259281 AVAX
0x708da3dad606f2ebde2cac622750709845c6985fc98e2c299250af69a9d40957169421412022-07-05 19:38:4211 hrs 20 mins ago 1inch v4: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.511896610658259281 AVAX
0xd4626e6daddb07a671563f14eccf12c018c276efc7276275eb6e8b293c437501169410882022-07-05 19:03:3711 hrs 55 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x93c1b79461510e71b6bb4c874ff217a235848d2d0.013699864782180129 AVAX
0xd4626e6daddb07a671563f14eccf12c018c276efc7276275eb6e8b293c437501169410882022-07-05 19:03:3711 hrs 55 mins ago ParaSwap: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.013699864782180129 AVAX
0x7b48dea00fdcd9720a3f84d17a88c135df4763d72b398391e44e193bf9587625169410752022-07-05 19:03:1311 hrs 55 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x6a406e9ef938e2fd01fc0f4973f06576eea27e2f0.014015434619276943 AVAX
0x7b48dea00fdcd9720a3f84d17a88c135df4763d72b398391e44e193bf9587625169410752022-07-05 19:03:1311 hrs 55 mins ago ParaSwap: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.014015434619276943 AVAX
0x11fcb932889e5e0c19432272343dfb9a60c1294886618577bd9422394deae764169410732022-07-05 19:03:0811 hrs 55 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0xdabd4b299920dbfdd924dded4d78a7addb67dcc20.014056176917357441 AVAX
0x11fcb932889e5e0c19432272343dfb9a60c1294886618577bd9422394deae764169410732022-07-05 19:03:0811 hrs 55 mins ago ParaSwap: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.014056176917357441 AVAX
0x2056c13e99a2e80d3cfe45f03573767cb31d4dd46afe333e3dc61a2504277568169396382022-07-05 18:15:0812 hrs 43 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0xe65a9c9602199248e4b551dc52bf9c3e82537eed0.125844649438621589 AVAX
0x2056c13e99a2e80d3cfe45f03573767cb31d4dd46afe333e3dc61a2504277568169396382022-07-05 18:15:0812 hrs 43 mins ago 1inch v4: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.125844649438621589 AVAX
0xa721621e439d554ad34e3dbc63c3b717e132a69d9721586d3f8cd87baae0f1db169387732022-07-05 17:46:1313 hrs 12 mins ago 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0x7e2db64cc05d05d1e4c37737c078ba84b67bb3620.279796303776119538 AVAX
0xa721621e439d554ad34e3dbc63c3b717e132a69d9721586d3f8cd87baae0f1db169387732022-07-05 17:46:1313 hrs 12 mins ago ParaSwap: Router 0x362fa9d0bca5d19f743db50738345ce2b40ec99f0.279796303776119538 AVAX
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

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

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.