ETH Price: $2,252.43 (+6.36%)

Contract

0xb300000b72DEAEb607a12d5f54773D1C19c7028d
 

Overview

ETH Balance

0.034202123716661242 ETH

Eth Value

$77.04 (@ $2,252.43/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To
0x786dfe74dc9aa1f1fc43c8f424655217dddca8f0229d263c2a227f99678b24d8 0x810c705b(pending)2026-03-15 5:02:2428 hrs ago1773550944IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x1fb36a28c18a7fbcc6ede0381c9aca548683a505912fe420c842fdb71271ee7d 0x810c705b(pending)2026-03-15 5:02:2428 hrs ago1773550944IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x55f68471964bdb593ef9dd5d5ca37e4e2c7efd2863fa81a93d36503732497e4b 0x810c705b(pending)2026-03-15 5:02:2428 hrs ago1773550944IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x3ff0f66106c3a81a95ffa53c4ff4ede0bac57a68583acf5eb1e1bb57ce1228bf 0x810c705b(pending)2026-03-15 4:56:5428 hrs ago1773550614IN
Binance: DEX Router
0.000114 ETH(Pending)(Pending)
0xf951da96e07d90369ac08b5e6e860a957ce4c852f4b13e2cabb523f853c26832 0x810c705b(pending)2026-03-15 4:54:0428 hrs ago1773550444IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x301170ac3f1516f09872a31f5dbe45a05fa1651f129ee7033dd959466e75727b 0x810c705b(pending)2026-03-15 4:54:0428 hrs ago1773550444IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0xe04cb7c47392af791f6c0681e7c62b764391017d44ad0b9d4bcc1a8ea4d8480c 0x810c705b(pending)2026-03-15 3:59:1729 hrs ago1773547157IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x83a9fbd18b77eca14ff47a9c6fdf89e7b60b29cd6594ffe5fe252373a14ee1a1 0x810c705b(pending)2026-03-15 3:05:1330 hrs ago1773543913IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x96d15da088b1045e1f22f3aeb3e452289bbeddac3fa134bdcffd2b66c65060f4 0x810c705b(pending)2026-03-15 2:37:1930 hrs ago1773542239IN
Binance: DEX Router
0.00001 ETH(Pending)(Pending)
0x8a177a92c656bb37e3f4f68e893d78934b6b11259053783621f2cb67e2b3cac5 0x810c705b(pending)2026-03-15 2:32:5130 hrs ago1773541971IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0xcf48d25dee84eb4c059c6cf67239f96066e000f1c8a8cb58685e44526da37e55 0x810c705b(pending)2026-03-15 2:31:0330 hrs ago1773541863IN
Binance: DEX Router
0.00002 ETH(Pending)(Pending)
0x6adf77fd59746615b62a594eaf43276128eb4c2d6b9f92fccebeab3619f8df99 0x810c705b(pending)2026-03-15 2:30:0230 hrs ago1773541802IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x2ba924ce5fe3fe2313a76477ecf67eb2a01af86cb884cc2e3a9ad45153ccbc88 Call Li Fi(pending)2026-03-15 2:28:4130 hrs ago1773541721IN
Binance: DEX Router
0.0000112956 ETH(Pending)(Pending)
0x803b85a8a430b5355ee4a7aeb9f5e6a02ccf526b6dc6a993ef0dc1836fec96db 0x810c705b(pending)2026-03-15 2:28:2630 hrs ago1773541706IN
Binance: DEX Router
0.000021 ETH(Pending)(Pending)
0xc67ded6b22f1d0e9a416257b04a1075f2f8484f3b0654b1e5cb8f5e879f24ca4 0x810c705b(pending)2026-03-15 2:25:5031 hrs ago1773541550IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0xbad6beedfd5b7d2d49e10daa612579630b002010cf07493324b1d00b7d890286 0x810c705b(pending)2026-03-15 2:20:2931 hrs ago1773541229IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0xb5251ac6439809d895241d069df174b2a6b5398afc28ad4299ad098f1e034a1a Call Rango(pending)2026-03-15 2:18:3931 hrs ago1773541119IN
Binance: DEX Router
0.0001361768 ETH(Pending)(Pending)
0x03a9efcd04413bb9642f6cbecf584b3cca65935545884e746f8ff7cf50a73605 0x810c705b(pending)2026-03-15 2:18:2831 hrs ago1773541108IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x06e14bf5636ff91fe1787da08bc5e1918698f7c910f425629e4102632e983cd0 0x810c705b(pending)2026-03-15 2:16:0331 hrs ago1773540963IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x0ce8cb3c5479e136bfd8d05fe2df508586e0b661cc0c94e8a624137197cc6138 0x810c705b(pending)2026-03-15 2:15:1531 hrs ago1773540915IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0xce2c8db1b4c110189254cfd342eb8dd5a201a1aa912107400fd2d0443ee0c6e8 0x810c705b(pending)2026-03-15 2:10:0331 hrs ago1773540603IN
Binance: DEX Router
0.00014 ETH(Pending)(Pending)
0x544bdc9237321a3e72490384b6e44caa893124d430efc8085e8e2910f14045ca 0x810c705b(pending)2026-03-15 2:07:0131 hrs ago1773540421IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0x5912dc44c90c7c6d6767cb25afa9ddb6701410835242f47f9cb4a0b5577a7d2f 0x810c705b(pending)2026-03-15 2:06:2631 hrs ago1773540386IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0xf2cda711920a42f1d2b6595ffb1faf1fbc349c358ca48d3d45553716e3715aba 0x810c705b(pending)2026-03-15 2:02:3731 hrs ago1773540157IN
Binance: DEX Router
0 ETH(Pending)(Pending)
0xdbca9835ee3b8ab82f7fa75cf38698de8bd64620d5a6714bc620a1c5add9f7e5 Call One Inch(pending)2026-03-15 2:00:3831 hrs ago1773540038IN
Binance: DEX Router
0.00022 ETH(Pending)(Pending)
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer246691552026-03-16 9:25:591 min ago1773653159
Binance: DEX Router
0.19603285 ETH
Transfer246691552026-03-16 9:25:591 min ago1773653159
Binance: DEX Router
0.00098508 ETH
Transfer246691552026-03-16 9:25:591 min ago1773653159
Binance: DEX Router
0.19701794 ETH
0x47ee97ff246691532026-03-16 9:25:351 min ago1773653135
Binance: DEX Router
0.084575 ETH
Transfer246691532026-03-16 9:25:351 min ago1773653135
Binance: DEX Router
0.000425 ETH
0x47ee97ff246691372026-03-16 9:22:234 mins ago1773652943
Binance: DEX Router
0.00302641 ETH
Transfer246691372026-03-16 9:22:234 mins ago1773652943
Binance: DEX Router
0.0000152 ETH
0x47ee97ff246691222026-03-16 9:19:237 mins ago1773652763
Binance: DEX Router
0.00995 ETH
Transfer246691222026-03-16 9:19:237 mins ago1773652763
Binance: DEX Router
0.00005 ETH
Swap Tokens Sing...246691212026-03-16 9:19:118 mins ago1773652751
Binance: DEX Router
0.48310907 ETH
Stargate V2Swap ...246691192026-03-16 9:18:478 mins ago1773652727
Binance: DEX Router
0.01008749 ETH
On Chain Swaps246691072026-03-16 9:16:2310 mins ago1773652583
Binance: DEX Router
0.0005 ETH
0x47ee97ff246690992026-03-16 9:14:4712 mins ago1773652487
Binance: DEX Router
0.01592 ETH
Transfer246690992026-03-16 9:14:4712 mins ago1773652487
Binance: DEX Router
0.00008 ETH
0x47ee97ff246690952026-03-16 9:13:5913 mins ago1773652439
Binance: DEX Router
0.26268 ETH
Transfer246690952026-03-16 9:13:5913 mins ago1773652439
Binance: DEX Router
0.00132 ETH
0x47ee97ff246690932026-03-16 9:13:3513 mins ago1773652415
Binance: DEX Router
4.189 ETH
0x47ee97ff246690882026-03-16 9:12:3514 mins ago1773652355
Binance: DEX Router
0.5 ETH
0x47ee97ff246690802026-03-16 9:10:5916 mins ago1773652259
Binance: DEX Router
0.00174923 ETH
Start Bridge Tok...246690762026-03-16 9:10:1117 mins ago1773652211
Binance: DEX Router
0.00004956 ETH
0x47ee97ff246690742026-03-16 9:09:4717 mins ago1773652187
Binance: DEX Router
0.07103058 ETH
Transfer246690582026-03-16 9:06:3520 mins ago1773651995
Binance: DEX Router
0.00273468 ETH
Transfer246690582026-03-16 9:06:3520 mins ago1773651995
Binance: DEX Router
0.00001374 ETH
Transfer246690582026-03-16 9:06:3520 mins ago1773651995
Binance: DEX Router
0.00274842 ETH
0x47ee97ff246690512026-03-16 9:05:1122 mins ago1773651911
Binance: DEX Router
0.014925 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Diamond

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

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

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

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

    // Find facet for function that is called and execute the
    // function if a facet is found and return any value.
    // solhint-disable-next-line no-complex-fallback
    fallback() external payable {
        LibDiamond.DiamondStorage storage ds;
        bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION;

        // get diamond storage
        // solhint-disable-next-line no-inline-assembly
        assembly {
            ds.slot := position
        }

        // get facet from function selector
        address facet = ds.selectorToFacetAndPosition[msg.sig].facetAddress;

        if (facet == address(0)) {
            revert LibDiamond.FunctionDoesNotExist();
        }

        // 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 {}
}

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

import {IDiamondCut} from "../Interfaces/IDiamondCut.sol";
import {LibUtil} from "../Libraries/LibUtil.sol";
import {OnlyContractOwner} from "../Errors/GenericErrors.sol";

/// Implementation of EIP-2535 Diamond Standard
/// https://eips.ethereum.org/EIPS/eip-2535
library LibDiamond {
    bytes32 internal constant DIAMOND_STORAGE_POSITION = keccak256("com.binance.w3w.diamond.storage");

    // Diamond specific errors
    error IncorrectFacetCutAction();
    error NoSelectorsInFace();
    error FunctionAlreadyExists();
    error FacetAddressIsZero();
    error FacetAddressIsNotZero();
    error FacetContainsNoCode();
    error FunctionDoesNotExist();
    error FunctionIsImmutable();
    error InitZeroButCalldataNotEmpty();
    error CalldataEmptyButInitNotZero();
    error InitReverted();
    // ----------------

    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 {
        if (msg.sender != diamondStorage().contractOwner) {
            revert OnlyContractOwner();
        }
    }

    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;) {
            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 IncorrectFacetCutAction();
            }
            unchecked {
                ++facetIndex;
            }
        }
        emit DiamondCut(_diamondCut, _init, _calldata);
        initializeDiamondCut(_init, _calldata);
    }

    function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
        if (_functionSelectors.length == 0) {
            revert NoSelectorsInFace();
        }
        DiamondStorage storage ds = diamondStorage();
        if (LibUtil.isZeroAddress(_facetAddress)) {
            revert FacetAddressIsZero();
        }
        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;) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
            if (!LibUtil.isZeroAddress(oldFacetAddress)) {
                revert FunctionAlreadyExists();
            }
            addFunction(ds, selector, selectorPosition, _facetAddress);
            unchecked {
                ++selectorPosition;
                ++selectorIndex;
            }
        }
    }

    function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
        if (_functionSelectors.length == 0) {
            revert NoSelectorsInFace();
        }
        DiamondStorage storage ds = diamondStorage();
        if (LibUtil.isZeroAddress(_facetAddress)) {
            revert FacetAddressIsZero();
        }
        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;) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
            if (oldFacetAddress == _facetAddress) {
                revert FunctionAlreadyExists();
            }
            removeFunction(ds, oldFacetAddress, selector);
            addFunction(ds, selector, selectorPosition, _facetAddress);
            unchecked {
                ++selectorPosition;
                ++selectorIndex;
            }
        }
    }

    function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
        if (_functionSelectors.length == 0) {
            revert NoSelectorsInFace();
        }
        DiamondStorage storage ds = diamondStorage();
        // if function does not exist then do nothing and return
        if (!LibUtil.isZeroAddress(_facetAddress)) {
            revert FacetAddressIsNotZero();
        }
        for (uint256 selectorIndex; selectorIndex < _functionSelectors.length;) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
            removeFunction(ds, oldFacetAddress, selector);
            unchecked {
                ++selectorIndex;
            }
        }
    }

    function addFacet(DiamondStorage storage ds, address _facetAddress) internal {
        enforceHasContractCode(_facetAddress);
        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 {
        if (LibUtil.isZeroAddress(_facetAddress)) {
            revert FunctionDoesNotExist();
        }
        // an immutable function is a function defined directly in a diamond
        if (_facetAddress == address(this)) {
            revert FunctionIsImmutable();
        }
        // 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 (LibUtil.isZeroAddress(_init)) {
            if (_calldata.length != 0) {
                revert InitZeroButCalldataNotEmpty();
            }
        } else {
            if (_calldata.length == 0) {
                revert CalldataEmptyButInitNotZero();
            }
            if (_init != address(this)) {
                enforceHasContractCode(_init);
            }
            // 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 InitReverted();
                }
            }
        }
    }

    function enforceHasContractCode(address _contract) internal view {
        uint256 contractSize;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            contractSize := extcodesize(_contract)
        }
        if (contractSize == 0) {
            revert FacetContainsNoCode();
        }
    }
}

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

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

    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);
}

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

import "./LibBytes.sol";

library LibUtil {
    using LibBytes for bytes;

    function getRevertMsg(bytes memory _res) internal pure returns (string memory) {
        // If the _res length is less than 68, then the transaction failed silently (without a revert message)
        if (_res.length < 68) return "Transaction reverted silently";
        bytes memory revertData = _res.slice(4, _res.length - 4); // Remove the selector which is the first 4 bytes
        return abi.decode(revertData, (string)); // All that remains is the revert string
    }

    /// @notice Determines whether the given address is the zero address
    /// @param addr The address to verify
    /// @return Boolean indicating if the address is the zero address
    function isZeroAddress(address addr) internal pure returns (bool) {
        return addr == address(0);
    }
}

File 5 of 6 : GenericErrors.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

error OnlyContractOwner();

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

library LibBytes {
    // solhint-disable no-inline-assembly

    // LibBytes specific errors
    error SliceOverflow();
    error SliceOutOfBounds();
    error AddressOutOfBounds();

    bytes16 private constant _SYMBOLS = "0123456789abcdef";

    // -------------------------

    function slice(bytes memory _bytes, uint256 _start, uint256 _length) internal pure returns (bytes memory) {
        unchecked {
            if (_length + 31 < _length) revert SliceOverflow();
            if (_bytes.length < _start + _length) revert SliceOutOfBounds();
            if (_start + _length < _start) revert SliceOverflow();
        }

        bytes memory tempBytes;

        assembly {
            switch iszero(_length)
            case 0 {
                // Get a location of some free memory and store it in tempBytes as
                // Solidity does for memory variables.
                tempBytes := mload(0x40)

                // The first word of the slice result is potentially a partial
                // word read from the original array. To read it, we calculate
                // the length of that partial word and start copying that many
                // bytes into the array. The first word we copy will start with
                // data we don't care about, but the last `lengthmod` bytes will
                // land at the beginning of the contents of the new array. When
                // we're done copying, we overwrite the full first word with
                // the actual length of the slice.
                let lengthmod := and(_length, 31)

                // The multiplication in the next line is necessary
                // because when slicing multiples of 32 bytes (lengthmod == 0)
                // the following copy loop was copying the origin's length
                // and then ending prematurely not copying everything it should.
                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))
                let end := add(mc, _length)

                for {
                    // The multiplication in the next line has the same exact purpose
                    // as the one above.
                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)
                } lt(mc, end) {
                    mc := add(mc, 0x20)
                    cc := add(cc, 0x20)
                } { mstore(mc, mload(cc)) }

                mstore(tempBytes, _length)

                //update free-memory pointer
                //allocating the array padded to 32 bytes like the compiler does now
                mstore(0x40, and(add(mc, 31), not(31)))
            }
            //if we want a zero-length slice let's just return a zero-length array
            default {
                tempBytes := mload(0x40)
                //zero out the 32 bytes slice we are about to return
                //we need to do it because Solidity does not garbage collect
                mstore(tempBytes, 0)

                mstore(0x40, add(tempBytes, 0x20))
            }
        }

        return tempBytes;
    }

    function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {
        if (_bytes.length < _start + 20) {
            revert AddressOutOfBounds();
        }
        address tempAddress;

        assembly {
            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)
        }

        return tempAddress;
    }

    /// Copied from OpenZeppelin's `Strings.sol` utility library.
    /// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/8335676b0e99944eef6a742e16dcd9ff6e68e609/contracts/utils/Strings.sol
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

Settings
{
  "remappings": [
    "forge-std/=lib/forge-std/src/",
    "@1inch/solidity-utils/contracts/=lib/solidity-utils/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@1inch/limit-order-protocol-contract/contracts/=lib/limit-order-protocol/contracts/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "limit-order-protocol/=lib/limit-order-protocol/contracts/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "solidity-utils/=lib/solidity-utils/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"internalType":"address","name":"_diamondCutFacet","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"name":"CalldataEmptyButInitNotZero","type":"error"},{"inputs":[],"name":"FacetAddressIsNotZero","type":"error"},{"inputs":[],"name":"FacetAddressIsZero","type":"error"},{"inputs":[],"name":"FacetContainsNoCode","type":"error"},{"inputs":[],"name":"FunctionAlreadyExists","type":"error"},{"inputs":[],"name":"FunctionDoesNotExist","type":"error"},{"inputs":[],"name":"FunctionIsImmutable","type":"error"},{"inputs":[],"name":"IncorrectFacetCutAction","type":"error"},{"inputs":[],"name":"InitReverted","type":"error"},{"inputs":[],"name":"InitZeroButCalldataNotEmpty","type":"error"},{"inputs":[],"name":"NoSelectorsInFace","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"indexed":false,"internalType":"address","name":"_init","type":"address"},{"indexed":false,"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"DiamondCut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

60806001600160401b03601f610b5938819003918201601f1916840191838311858410176105b75780859260409485528339810103126105f15761004e602061004784610633565b9301610633565b7f5e12654f390e4153c4f63b3dfcc122cf7876a5cdfb496dccf7284c10517a35c980546001600160a01b039485166001600160a01b03198216811790925591939091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36100bd610614565b91600183525f5b602081106105cb57506100d5610614565b60018152602036818301376307e4c70760e21b6100f182610647565b526100fa6105f5565b6001600160a01b0390921682525f6020830152604082015261011b83610647565b5261012582610647565b506040519060208201908111828210176105b7576040525f808252825b805182101561045c5760206101578383610668565b5101516003811015610448578061028f57506001600160a01b0361017b8383610668565b515116604061018a8484610668565b51015180511561027d57811561026b576001600160a01b0382165f9081525f80516020610b3983398151915260205260409020546001600160601b039390841690811561025d575b5f915b8351831015610249576001600160e01b03196101f18486610668565b51165f8181525f80516020610af983398151915260205260409020549091906001600160a01b03166102375760018161022d888a948496610994565b01169201916101d5565b60405163a023275d60e01b8152600490fd5b50959492505050600191505b019091610142565b6102668461091b565b6101d2565b604051636347641d60e11b8152600490fd5b6040516307bc559560e41b8152600490fd5b6001810361038f57506001600160a01b036102aa8383610668565b5151169260406102ba8484610668565b51015180511561027d57841561026b576001600160a01b0385165f9081525f80516020610b3983398151915260205260409020546001600160601b0393908416908115610381575b5f915b8351831015610372576001600160e01b03196103218486610668565b51165f8181525f80516020610af983398151915260205260409020546001600160a01b03169089821461023757826103688b6001958461036388968e986106c0565b610994565b0116920191610305565b50955050509160019150610255565b61038a8761091b565b610302565b600203610436576001600160a01b036103a88383610668565b5151169060406103b88483610668565b5101519182511561027d57610424575f5b8251811015610418576001906104126001600160e01b03196103eb8387610668565b5116805f525f80516020610af9833981519152602052838060a01b0360405f2054166106c0565b016103c9565b50929160019150610255565b604051633ce4ef9160e11b8152600490fd5b60405163e548e6b560e01b8152600490fd5b634e487b7160e01b5f52602160045260245ffd5b905060405190606082016060835281518091526080830190602060808260051b8601019301915f905b82821061052157505050505f6020830152818103604083015282518082525f5b81811061050c57508282825f602080957f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6739897010152601f801991011601030190a1516104fa5760405160b49081610a458239f35b6040516304c08b4360e51b8152600490fd5b806020809287010151828286010152016104a5565b858503607f19018152835180516001600160a01b03168652602081015194959394929391929060038210156104485760409160208401520151906060604082015260206080835192836060820152019201905f905b80821061059457505050602080600192960192019201909291610485565b82516001600160e01b031916845260209384019390920191600190910190610576565b634e487b7160e01b5f52604160045260245ffd5b6020906105d66105f5565b5f81525f8382015260606040820152828287010152016100c4565b5f80fd5b60405190606082016001600160401b038111838210176105b757604052565b60408051919082016001600160401b038111838210176105b757604052565b51906001600160a01b03821682036105f157565b8051156106545760200190565b634e487b7160e01b5f52603260045260245ffd5b80518210156106545760209160051b010190565b9190918054831015610654575f52601c60205f208360031c019260021b1690565b5f80516020610b198339815191528054821015610654575f5260205f2001905f90565b6001600160a01b03908116918215610909573083146108f75763ffffffff60e01b809116805f525f80516020610af983398151915293602090858252604093845f205460a01c96825f525f80516020610b3983398151915294858552865f2054925f19998a850194851161085857889187898888850361086c575b9450505050505f52858552865f20805480156107f4578a019061075e828261067c565b63ffffffff82549160031b1b19169055555f5283525f8581205515610786575b505050505050565b5f80516020610b1983398151915294855487810190811161085857825f52848452816001875f20015491808303610808575b50505085549586156107f4575f9760019701916107d48361069d565b909182549160031b1b1916905555855252822001555f808080808061077e565b634e487b7160e01b5f52603160045260245ffd5b6108119061069d565b90549060031b1c16610844816108268461069d565b90919060018060a01b038084549260031b9316831b921b1916179055565b5f528484526001865f2001555f81816107b8565b634e487b7160e01b5f52601160045260245ffd5b6108a1856108ec976108be94845f5280875261088a8d835f2061067c565b90549060031b1c60e01b9687955f52525f2061067c565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b165f90815284885289902080546001600160a01b031660a09290921b6001600160a01b031916919091179055565b865f8087898861073b565b60405163c3c5ec3760e01b8152600490fd5b604051631535ac5f60e31b8152600490fd5b803b15610983575f80516020610b1983398151915280546001600160a01b0383165f9081525f80516020610b39833981519152602052604090206001018190559190680100000000000000008310156105b757826108269160016109819501905561069d565b565b6040516271a80360e91b8152600490fd5b6001600160e01b031981165f8181525f80516020610af98339815191526020819052604090912080546001600160a01b031660a09590951b6001600160a01b0319169490941790935590926001600160a01b03165f8181525f80516020610b39833981519152602052604090208054919490680100000000000000008310156105b757826108a1916001610a2a9501815561067c565b5f5260205260405f209060018060a01b031982541617905556fe60806040523615607c575f80356001600160e01b03191681527f5e12654f390e4153c4f63b3dfcc122cf7876a5cdfb496dccf7284c10517a35c560205260409020546001600160a01b03168015606b575f8091368280378136915af43d5f803e156067573d5ff35b3d5ffd5b631535ac5f60e31b60805260046080fd5b00fea2646970667358221220930a620c99a7318ca205c3fd7de61f4589313a6f74e2a079ea59f03d58767f3464736f6c634300081700335e12654f390e4153c4f63b3dfcc122cf7876a5cdfb496dccf7284c10517a35c55e12654f390e4153c4f63b3dfcc122cf7876a5cdfb496dccf7284c10517a35c75e12654f390e4153c4f63b3dfcc122cf7876a5cdfb496dccf7284c10517a35c6000000000000000000000000ee7b429ea01f76102f053213463d4e95d5d24ae800000000000000000000000057fe1cbb349c2bf575ac201c36a61a9d821e5e95

Deployed Bytecode

0x60806040523615607c575f80356001600160e01b03191681527f5e12654f390e4153c4f63b3dfcc122cf7876a5cdfb496dccf7284c10517a35c560205260409020546001600160a01b03168015606b575f8091368280378136915af43d5f803e156067573d5ff35b3d5ffd5b631535ac5f60e31b60805260046080fd5b00fea2646970667358221220930a620c99a7318ca205c3fd7de61f4589313a6f74e2a079ea59f03d58767f3464736f6c63430008170033

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

000000000000000000000000ee7b429ea01f76102f053213463d4e95d5d24ae800000000000000000000000057fe1cbb349c2bf575ac201c36a61a9d821e5e95

-----Decoded View---------------
Arg [0] : _contractOwner (address): 0xEe7b429Ea01F76102f053213463D4e95D5D24AE8
Arg [1] : _diamondCutFacet (address): 0x57FE1CBB349C2bf575Ac201C36A61A9d821e5e95

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000ee7b429ea01f76102f053213463d4e95d5d24ae8
Arg [1] : 00000000000000000000000057fe1cbb349c2bf575ac201c36a61a9d821e5e95


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0xb300000b72DEAEb607a12d5f54773D1C19c7028d
Net Worth in USD
$128,971.63

Net Worth in ETH
57.258841

Token Allocations
BSC-USD 47.79%
USDC 36.13%
WBNB 7.72%
Others 8.36%
Chain Token Portfolio % Price Amount Value
BSC47.79%$0.99999861,639.7678$61,639.64
BSC33.32%$0.99990142,977.6209$42,973.37
BSC7.72%$675.8214.7357$9,958.61
BSC3.86%$0.9992494,978.9087$4,975.17
BSC1.16%$0.06197324,072.7898$1,491.85
BSC0.58%$676.341.0988$743.13
BSC0.22%$2,247.80.1263$283.83
BSC0.15%$0.0094,401,428,771.1588$0.00
BSC0.07%$73,132.520.00116822$85.44
BSC0.06%$0.725474103.9098$75.38
BSC0.04%$0.0021,888,233,021.054$0.00
BSC0.03%$0.0000341,226,958.5354$42.13
BSC0.02%$128.551$28.57
BSC0.02%$0.32889481.4721$26.8
BSC0.02%$125.683$25.68
BSC0.02%$1.1921$24.89
BSC0.02%$0.99979222.7491$22.74
BSC0.01%<$0.000001451,354,102,424.4052$15.99
BSC<0.01%$0.68869515.9896$11.01
BSC<0.01%$805.520.00861924$6.94
BSC<0.01%$0.6799736.5847$4.48
BSC<0.01%$0.012001305.4963$3.67
BSC<0.01%$0.007959445.4959$3.55
BSC<0.01%$0.1006430.6773$3.09
BSC<0.01%<$0.000001424,762,580.2402$2.58
BSC<0.01%$0.02410295.4012$2.3
BSC<0.01%$1.511.2526$1.89
BSC<0.01%$0.0003824,472.318$1.71
BSC<0.01%$76,2840.00001805$1.38
BSC<0.01%$4,955.560.00026197$1.3
BSC<0.01%<$0.00000122,097,503.4804$1.29
BSC<0.01%$0.0000011,018,393.5185$1.12
BSC<0.01%<$0.0000014,632,121.6434$1.08
BSC<0.01%$0.00213400$0.8518
BSC<0.01%<$0.0000011,813,789.832$0.8308
BSC<0.01%$0.000001692,035.8039$0.8288
BSC<0.01%$0.01482754.2746$0.8047
BSC<0.01%$0.000649968.6964$0.6286
BSC<0.01%$0.002013300$0.6037
BSC<0.01%$0.02569523.0051$0.5911
BSC<0.01%<$0.0000019,031,302.8054$0.5308
BSC<0.01%$0.00000672,790.2462$0.4559
BSC<0.01%$0.00801146.2421$0.3704
BSC<0.01%$0.00000485,872.8161$0.3443
BSC<0.01%$0.002645100$0.2644
BSC<0.01%<$0.000001220,054,813.8443$0.2636
BSC<0.01%$0.01776113.4072$0.2381
BSC<0.01%$0.00767830.0095$0.2304
BSC<0.01%<$0.0000012,800,107.4715$0.2271
BSC<0.01%$0.0000326,018.8309$0.1932
BSC<0.01%$0.1124841.6754$0.1884
BSC<0.01%$0.1210951.2268$0.1485
BSC<0.01%$0.2857790.4799$0.1371
BASE2.62%$13,372.6868$3,372.69
BASE1.58%$2,263.380.902$2,041.49
BASE<0.01%$0.019895640$12.73
BASE<0.01%$2,254.320.00128166$2.89
BASE<0.01%$1.140.0984$0.1121
ETH0.19%$1247.9428$247.94
ETH0.15%$2,252.430.0857$193
ETH0.09%$0.802419147.5969$118.43
ETH
Ether (ETH)
0.06%$2,252.430.0342$77.04
ETH0.03%$0.99932744.231$44.2
ETH<0.01%$0.00059219,539.9954$11.56
ETH<0.01%$0.9999999.7968$9.8
ETH<0.01%$0.70857312.804$9.07
ETH<0.01%$73,036.290.00004606$3.36
ETH<0.01%$12.8463$2.85
ETH<0.01%$93.050.0301$2.8
ETH<0.01%$1.220.5833$0.7115
ETH<0.01%$1.510.2579$0.3893
ETH<0.01%$0.999860.3798$0.3797
ETH<0.01%$0.03293410$0.3293
OP0.04%$0.99999746.7077$46.71
OP<0.01%$2,252.180.00000223$0.005022
SEI0.02%$0.999225$24.98
SEI<0.01%$0.09475594.8603$8.99
WORLD0.01%$0.38390438.4925$14.78
LINEA<0.01%$0.002,273.54$0.00
OPBNB<0.01%$676.420.0069578$4.71
SONIC<0.01%$0.9999981$0.9999
SONIC<0.01%$0.0491883$0.147565
POL<0.01%$0.1002454.69$0.470149
ARB<0.01%$0.009.1265$0.00
ARB<0.01%$10.1161$0.116
ARB<0.01%$2,252.340.000001$0.002252
MANTLE<0.01%$0.8015540.043$0.034435
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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