MNT Price: $0.91 (+1.92%)

Contract

0x9bc92bF848FaF2355c429c54d1edE3e767bDd790
 

Overview

MNT Balance

Mantle Mainnet Network LogoMantle Mainnet Network LogoMantle Mainnet Network Logo0.000634303952323042 MNT

MNT Value

Less Than $0.01 (@ $0.91/MNT)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Delta Compose814878702025-06-28 10:20:52214 days ago1751106052IN
0x9bc92bF8...767bDd790
0 MNT0.019853620.02
Delta Compose812937602025-06-23 22:30:32218 days ago1750717832IN
0x9bc92bF8...767bDd790
0 MNT0.143791070.02
Delta Compose812937222025-06-23 22:29:16218 days ago1750717756IN
0x9bc92bF8...767bDd790
0 MNT0.160938110.02
Delta Compose812937062025-06-23 22:28:44218 days ago1750717724IN
0x9bc92bF8...767bDd790
0 MNT0.159583990.02
Delta Compose812936792025-06-23 22:27:50218 days ago1750717670IN
0x9bc92bF8...767bDd790
0 MNT0.170247930.02
Delta Compose812936612025-06-23 22:27:14218 days ago1750717634IN
0x9bc92bF8...767bDd790
0 MNT0.174441880.02
Delta Compose812936452025-06-23 22:26:42218 days ago1750717602IN
0x9bc92bF8...767bDd790
0 MNT0.179452060.02
Delta Compose812936222025-06-23 22:25:56218 days ago1750717556IN
0x9bc92bF8...767bDd790
0 MNT0.168214830.02
Delta Compose806588622025-06-09 5:47:16233 days ago1749448036IN
0x9bc92bF8...767bDd790
0 MNT0.030064780.024
Delta Compose806319442025-06-08 14:50:00234 days ago1749394200IN
0x9bc92bF8...767bDd790
0 MNT0.045371710.0202
Delta Compose805924332025-06-07 16:52:58234 days ago1749315178IN
0x9bc92bF8...767bDd790
0 MNT0.112134490.03
Delta Compose805924002025-06-07 16:51:52234 days ago1749315112IN
0x9bc92bF8...767bDd790
3.40211203 MNT0.067345590.03
Delta Compose805923572025-06-07 16:50:26234 days ago1749315026IN
0x9bc92bF8...767bDd790
0 MNT0.138758740.03
Delta Compose805922172025-06-07 16:45:46234 days ago1749314746IN
0x9bc92bF8...767bDd790
0 MNT0.13939720.03
Delta Compose805544942025-06-06 19:48:20235 days ago1749239300IN
0x9bc92bF8...767bDd790
0 MNT0.084664670.02
Delta Compose805544522025-06-06 19:46:56235 days ago1749239216IN
0x9bc92bF8...767bDd790
0 MNT0.030035560.02
Delta Compose805542552025-06-06 19:40:22235 days ago1749238822IN
0x9bc92bF8...767bDd790
0 MNT0.042352040.02
Delta Compose805542052025-06-06 19:38:42235 days ago1749238722IN
0x9bc92bF8...767bDd790
0 MNT0.080370910.02
Delta Compose805540672025-06-06 19:34:06235 days ago1749238446IN
0x9bc92bF8...767bDd790
0 MNT0.079293590.02
Delta Compose805540092025-06-06 19:32:10235 days ago1749238330IN
0x9bc92bF8...767bDd790
0 MNT0.031343850.02
Delta Compose805539212025-06-06 19:29:14235 days ago1749238154IN
0x9bc92bF8...767bDd790
0 MNT0.037411550.02
Delta Compose805538382025-06-06 19:26:28235 days ago1749237988IN
0x9bc92bF8...767bDd790
0 MNT0.040154080.02
Delta Compose805537692025-06-06 19:24:10235 days ago1749237850IN
0x9bc92bF8...767bDd790
0 MNT0.067415370.02
Delta Compose804956602025-06-05 11:07:12237 days ago1749121632IN
0x9bc92bF8...767bDd790
1 MNT0.090381490.02
Delta Compose804446532025-06-04 6:46:58238 days ago1749019618IN
0x9bc92bF8...767bDd790
1 MNT0.010109260.02
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
805924002025-06-07 16:51:52234 days ago1749315112
0x9bc92bF8...767bDd790
3.40211203 MNT
804956602025-06-05 11:07:12237 days ago1749121632
0x9bc92bF8...767bDd790
1 MNT
804446532025-06-04 6:46:58238 days ago1749019618
0x9bc92bF8...767bDd790
1 MNT
801654452025-05-28 19:40:02244 days ago1748461202
0x9bc92bF8...767bDd790
0.84897942 MNT
801653792025-05-28 19:37:50244 days ago1748461070
0x9bc92bF8...767bDd790
140 MNT
787346112025-04-25 16:45:34277 days ago1745599534
0x9bc92bF8...767bDd790
1.35785443 MNT
787194242025-04-25 8:19:20278 days ago1745569160
0x9bc92bF8...767bDd790
1.40072166 MNT
787194242025-04-25 8:19:20278 days ago1745569160
0x9bc92bF8...767bDd790
1.40072166 MNT
787193432025-04-25 8:16:38278 days ago1745568998
0x9bc92bF8...767bDd790
1 MNT
786521812025-04-23 18:57:54279 days ago1745434674
0x9bc92bF8...767bDd790
2.40268361 MNT
786521812025-04-23 18:57:54279 days ago1745434674
0x9bc92bF8...767bDd790
2.40268361 MNT
786134872025-04-22 21:28:06280 days ago1745357286
0x9bc92bF8...767bDd790
90 MNT
779652092025-04-07 21:18:50295 days ago1744060730
0x9bc92bF8...767bDd790
1.0946634 MNT
779652092025-04-07 21:18:50295 days ago1744060730
0x9bc92bF8...767bDd790
1.0946634 MNT
777862192025-04-03 17:52:30299 days ago1743702750
0x9bc92bF8...767bDd790
5,412.82701114 MNT
777399592025-04-02 16:10:30300 days ago1743610230
0x9bc92bF8...767bDd790
37,330.21806969 MNT
777399592025-04-02 16:10:30300 days ago1743610230
0x9bc92bF8...767bDd790
37,330.21806969 MNT
776850282025-04-01 9:39:28302 days ago1743500368
0x9bc92bF8...767bDd790
2.00614362 MNT
776850282025-04-01 9:39:28302 days ago1743500368
0x9bc92bF8...767bDd790
2.00614362 MNT
773798412025-03-25 8:06:34309 days ago1742889994
0x9bc92bF8...767bDd790
0.00000005 MNT
773798412025-03-25 8:06:34309 days ago1742889994
0x9bc92bF8...767bDd790
0.00000005 MNT
773798412025-03-25 8:06:34309 days ago1742889994
0x9bc92bF8...767bDd790
0.00001806 MNT
773798392025-03-25 8:06:30309 days ago1742889990
0x9bc92bF8...767bDd790
0.00000005 MNT
773798392025-03-25 8:06:30309 days ago1742889990
0x9bc92bF8...767bDd790
0.00000005 MNT
773798392025-03-25 8:06:30309 days ago1742889990
0x9bc92bF8...767bDd790
0.00001806 MNT
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DeltaBrokerProxyGen2

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/******************************************************************************\
* Author: Achthar <[email protected]>
/******************************************************************************/

import {LibModules} from "./libraries/LibModules.sol";
import {IModuleConfig} from "./interfaces/IModuleConfig.sol";

contract DeltaBrokerProxyGen2 {
    error NoImplementation();

    // [LibModules.moduleStorage().selectorToModule].slot
    bytes32 private constant IMPLS_SLOT = 0x76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc402;

    constructor(address _contractOwner, address _moduleConfig) {
        LibModules.setContractOwner(_contractOwner);

        // Add the moduleConfig external function from the moduleConfigModule
        IModuleConfig.ModuleConfig[] memory cut = new IModuleConfig.ModuleConfig[](1);
        bytes4[] memory functionSelectors = new bytes4[](1);
        functionSelectors[0] = IModuleConfig.configureModules.selector;
        cut[0] = IModuleConfig.ModuleConfig({
            moduleAddress: _moduleConfig,
            action: IModuleConfig.ModuleConfigAction.Add,
            functionSelectors: functionSelectors
        });
        LibModules.configureModules(cut);
    }

    // Find module for function that is called and execute the
    // function if a module is found and return any value.
    fallback() external payable {
        assembly {
            let cdlen := calldatasize()
            // Store at 0x40, to leave 0x00-0x3F for slot calculation below.
            calldatacopy(0x40, 0x00, cdlen)
            let target := and(mload(0x40), 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)

            // Slot for impls[target] is keccak256(target . IMPLS_SLOT).
            mstore(0x00, target)
            mstore(0x20, IMPLS_SLOT)
            let slot := keccak256(0x00, 0x40)
            target := sload(slot) // overwrite target to delegate address
            if iszero(target) {
                // Revert with:
                // abi.encodeWithSelector(
                //   bytes4(keccak256("NoImplementation()")))
                mstore(0x00, 0xc6745ca800000000000000000000000000000000000000000000000000000000)
                revert(0x00, 4)
            }

            let success := delegatecall(gas(), target, 0x40, cdlen, 0x00, 0x00)
            let rdlen := returndatasize()
            returndatacopy(0x00, 0x00, rdlen)
            if success {
                return(0x00, rdlen)
            }
            revert(0x00, rdlen)
        }
    }

    receive() external payable {}
}

// SPDX-License-Identifier: MIT
/**
 * Vendored on December 23, 2021 from:
 * https://github.com/mudgen/diamond-3-hardhat/blob/7feb995/contracts/interfaces/IModuleConfig.sol
 */
pragma solidity ^0.8.0;

interface IModuleConfig {
    enum ModuleConfigAction {
        Add,
        Replace,
        Remove
    }
    // Add=0, Replace=1, Remove=2

    struct ModuleConfig {
        address moduleAddress;
        ModuleConfigAction action;
        bytes4[] functionSelectors;
    }

    /// @notice Add/replace/remove any number of functions and optionally execute
    ///         a function with delegatecall
    /// @param _moduleConfig Contains the module addresses and function selectors
    function configureModules(ModuleConfig[] calldata _moduleConfig) external;
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/******************************************************************************\
* Author: Achthar - 1delta.io
* Modified diamond module handling library
/******************************************************************************/

import {IModuleConfig} from "../interfaces/IModuleConfig.sol";

// solhint-disable max-line-length

error InitializationFunctionReverted(address _initializationContractAddress, bytes _calldata);

library LibModules {
    bytes32 constant MODULE_STORAGE_POSITION = keccak256("diamond.standard.module.storage");

    struct ModuleAddressAndPosition {
        address moduleAddress;
        uint96 functionSelectorPosition; // position in moduleFunctionSelectors.functionSelectors array
    }

    struct ModuleFunctionSelectors {
        bytes4[] functionSelectors;
        uint256 moduleAddressPosition; // position of moduleAddress in moduleAddresses array
    }

    struct ModuleStorage {
        // maps function selector to the module address and
        // the position of the selector in the moduleFunctionSelectors.selectors array
        mapping(bytes4 => ModuleAddressAndPosition) selectorToModuleAndPosition;
        // maps selector to module
        mapping(bytes4 => address) selectorToModule;
        // maps module addresses to function selectors
        mapping(address => ModuleFunctionSelectors) moduleFunctionSelectors;
        // module addresses
        address[] moduleAddresses;
        // Used to query if a contract implements an interface.
        // Used to implement ERC-165.
        mapping(bytes4 => bool) supportedInterfaces;
        // Used to query if a module exits
        mapping(address => bool) moduleExists;
        // owner of the contract
        address contractOwner;
    }

    function moduleStorage() internal pure returns (ModuleStorage storage ds) {
        bytes32 position = MODULE_STORAGE_POSITION;
        assembly {
            ds.slot := position
        }
    }

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

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

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

    function enforceIsContractOwner() internal view {
        require(msg.sender == moduleStorage().contractOwner, "LibModuleConfig: Must be contract owner");
    }

    event Upgrade(IModuleConfig.ModuleConfig[] _moduleChange);

    // Internal function version of diamondCut
    function configureModules(IModuleConfig.ModuleConfig[] memory _moduleChange) internal {
        for (uint256 moduleIndex; moduleIndex < _moduleChange.length; moduleIndex++) {
            IModuleConfig.ModuleConfigAction action = _moduleChange[moduleIndex].action;
            if (action == IModuleConfig.ModuleConfigAction.Add) {
                addFunctions(_moduleChange[moduleIndex].moduleAddress, _moduleChange[moduleIndex].functionSelectors);
            } else if (action == IModuleConfig.ModuleConfigAction.Replace) {
                replaceFunctions(_moduleChange[moduleIndex].moduleAddress, _moduleChange[moduleIndex].functionSelectors);
            } else if (action == IModuleConfig.ModuleConfigAction.Remove) {
                removeFunctions(_moduleChange[moduleIndex].moduleAddress, _moduleChange[moduleIndex].functionSelectors);
            } else {
                revert("LibModuleConfig: Incorrect ModuleConfigAction");
            }
        }
        emit Upgrade(_moduleChange);
    }

    function addFunctions(address _moduleAddress, bytes4[] memory _functionSelectors) internal {
        require(_functionSelectors.length > 0, "LibModuleConfig: No selectors in module to cut");
        ModuleStorage storage ds = moduleStorage();
        require(_moduleAddress != address(0), "LibModuleConfig: Add module can't be address(0)");
        uint96 selectorPosition = uint96(ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.length);
        // add new module address if it does not exist
        if (selectorPosition == 0) {
            addModule(ds, _moduleAddress);
        }
        for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldModuleAddress = ds.selectorToModuleAndPosition[selector].moduleAddress;
            require(oldModuleAddress == address(0), "LibModuleConfig: Can't add function that already exists");
            addFunction(ds, selector, selectorPosition, _moduleAddress);
            selectorPosition++;
        }
    }

    function replaceFunctions(address _moduleAddress, bytes4[] memory _functionSelectors) internal {
        require(_functionSelectors.length > 0, "LibModuleConfig: No selectors in module to cut");
        ModuleStorage storage ds = moduleStorage();
        require(_moduleAddress != address(0), "LibModuleConfig: Add module can't be address(0)");
        uint96 selectorPosition = uint96(ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.length);
        // add new module address if it does not exist
        if (selectorPosition == 0) {
            addModule(ds, _moduleAddress);
        }
        for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldModuleAddress = ds.selectorToModuleAndPosition[selector].moduleAddress;
            require(oldModuleAddress != _moduleAddress, "LibModuleConfig: Can't replace function with same function");
            removeFunction(ds, oldModuleAddress, selector);
            addFunction(ds, selector, selectorPosition, _moduleAddress);
            selectorPosition++;
        }
    }

    function removeFunctions(address _moduleAddress, bytes4[] memory _functionSelectors) internal {
        require(_functionSelectors.length > 0, "LibModuleConfig: No selectors in module to cut");
        ModuleStorage storage ds = moduleStorage();
        // if function does not exist then do nothing and return
        require(_moduleAddress == address(0), "LibModuleConfig: Remove module address must be address(0)");
        for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldModuleAddress = ds.selectorToModuleAndPosition[selector].moduleAddress;
            removeFunction(ds, oldModuleAddress, selector);
        }
    }

    function addModule(ModuleStorage storage ds, address _moduleAddress) internal {
        enforceHasContractCode(_moduleAddress, "LibModuleConfig: New module has no code");
        ds.moduleFunctionSelectors[_moduleAddress].moduleAddressPosition = ds.moduleAddresses.length;
        ds.moduleAddresses.push(_moduleAddress);
        ds.moduleExists[_moduleAddress] = true;
    }

    function addFunction(
        ModuleStorage storage ds,
        bytes4 _selector,
        uint96 _selectorPosition,
        address _moduleAddress
    ) internal {
        ds.selectorToModuleAndPosition[_selector].functionSelectorPosition = _selectorPosition;
        ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.push(_selector);
        ds.selectorToModuleAndPosition[_selector].moduleAddress = _moduleAddress;
        ds.selectorToModule[_selector] = _moduleAddress;
    }

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

        // if no more selectors for module address then delete the module address
        if (lastSelectorPosition == 0) {
            // replace module address with last module address and delete last module address
            uint256 lastModuleAddressPosition = ds.moduleAddresses.length - 1;
            uint256 moduleAddressPosition = ds.moduleFunctionSelectors[_moduleAddress].moduleAddressPosition;
            if (moduleAddressPosition != lastModuleAddressPosition) {
                address lastModuleAddress = ds.moduleAddresses[lastModuleAddressPosition];
                ds.moduleAddresses[moduleAddressPosition] = lastModuleAddress;
                ds.moduleFunctionSelectors[lastModuleAddress].moduleAddressPosition = moduleAddressPosition;
            }
            ds.moduleAddresses.pop();
            delete ds.moduleFunctionSelectors[_moduleAddress].moduleAddressPosition;
            ds.moduleExists[_moduleAddress] = false;
        }
    }

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

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

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"internalType":"address","name":"_moduleConfig","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NoImplementation","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"moduleAddress","type":"address"},{"internalType":"enum IModuleConfig.ModuleConfigAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IModuleConfig.ModuleConfig[]","name":"_moduleChange","type":"tuple[]"}],"name":"Upgrade","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161126b38038061126b83398101604081905261002f91610ee5565b6100388261012b565b604080516001808252818301909252600091816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161004f57505060408051600180825281830190925291925060009190602080830190803683370190505090506369fc9a8060e01b816000815181106100be576100be610f18565b6001600160e01b031990921660209283029190910182015260408051606081019091526001600160a01b038516815290810160008152602001828152508260008151811061010e5761010e610f18565b6020908102919091010152610122826101ae565b505050506110ef565b7f76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc40780546001600160a01b031981166001600160a01b03848116918217909355604051600080516020611204833981519152939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b81518110156103875760008282815181106101ce576101ce610f18565b6020026020010151602001519050600060028111156101ef576101ef610f2e565b81600281111561020157610201610f2e565b036102555761025083838151811061021b5761021b610f18565b60200260200101516000015184848151811061023957610239610f18565b6020026020010151604001516103c260201b60201c565b61037e565b600181600281111561026957610269610f2e565b036102b85761025083838151811061028357610283610f18565b6020026020010151600001518484815181106102a1576102a1610f18565b60200260200101516040015161064d60201b60201c565b60028160028111156102cc576102cc610f2e565b0361031b576102508383815181106102e6576102e6610f18565b60200260200101516000015184848151811061030457610304610f18565b6020026020010151604001516108e160201b60201c565b60405162461bcd60e51b815260206004820152602d60248201527f4c69624d6f64756c65436f6e6669673a20496e636f7272656374204d6f64756c60448201526c32a1b7b73334b3a0b1ba34b7b760991b60648201526084015b60405180910390fd5b506001016101b1565b507f5baa3478e7f762f071cc4e10c54ae2573362a38e93c8ba3f39d9acf6e49ca528816040516103b79190610f44565b60405180910390a150565b60008151116104185760405162461bcd60e51b815260206004820152602e602482015260008051602061122483398151915260448201526d081b5bd91d5b19481d1bc818dd5d60921b6064820152608401610375565b6000805160206112048339815191526001600160a01b0383166104835760405162461bcd60e51b815260206004820152602f60248201526000805160206111e483398151915260448201526e74206265206164647265737328302960881b6064820152608401610375565b6001600160a01b0383166000908152600282016020526040812054906001600160601b03821690036104b9576104b98285610a30565b60005b83518110156106465760008482815181106104d9576104d9610f18565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b0316801561057f5760405162461bcd60e51b815260206004820152603760248201527f4c69624d6f64756c65436f6e6669673a2043616e2774206164642066756e637460448201527f696f6e207468617420616c7265616479206578697374730000000000000000006064820152608401610375565b6001600160e01b0319821660008181526020878152604080832080546001600160a01b03908116600160a01b6001600160601b038c16021782558c1680855260028b0184528285208054600181810183559187528587206008820401805463ffffffff60079093166004026101000a928302191660e08c901c9290920291909117905595855281546001600160a01b03199081168217909255948a01909252909120805490911690911790558361063581611046565b945050600190920191506104bc9050565b5050505050565b60008151116106a35760405162461bcd60e51b815260206004820152602e602482015260008051602061122483398151915260448201526d081b5bd91d5b19481d1bc818dd5d60921b6064820152608401610375565b6000805160206112048339815191526001600160a01b03831661070e5760405162461bcd60e51b815260206004820152602f60248201526000805160206111e483398151915260448201526e74206265206164647265737328302960881b6064820152608401610375565b6001600160a01b0383166000908152600282016020526040812054906001600160601b0382169003610744576107448285610a30565b60005b835181101561064657600084828151811061076457610764610f18565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b03908116908716810361080f5760405162461bcd60e51b815260206004820152603a60248201527f4c69624d6f64756c65436f6e6669673a2043616e2774207265706c616365206660448201527f756e6374696f6e20776974682073616d652066756e6374696f6e0000000000006064820152608401610375565b61081a858284610ab5565b6001600160e01b0319821660008181526020878152604080832080546001600160a01b03908116600160a01b6001600160601b038c16021782558c1680855260028b0184528285208054600181810183559187528587206008820401805463ffffffff60079093166004026101000a928302191660e08c901c9290920291909117905595855281546001600160a01b03199081168217909255948a0190925290912080549091169091179055836108d081611046565b945050600190920191506107479050565b60008151116109375760405162461bcd60e51b815260206004820152602e602482015260008051602061122483398151915260448201526d081b5bd91d5b19481d1bc818dd5d60921b6064820152608401610375565b6000805160206112048339815191526001600160a01b038316156109c35760405162461bcd60e51b815260206004820152603960248201527f4c69624d6f64756c65436f6e6669673a2052656d6f7665206d6f64756c65206160448201527f646472657373206d7573742062652061646472657373283029000000000000006064820152608401610375565b60005b8251811015610a2a5760008382815181106109e3576109e3610f18565b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b0316610a20848284610ab5565b50506001016109c6565b50505050565b610a528160405180606001604052806027815260200161124460279139610ea8565b6003820180546001600160a01b03909216600081815260028501602090815260408083206001908101879055808701865594835281832090950180546001600160a01b03191684179055918152600590940190529120805460ff19169091179055565b6001600160a01b038216610b315760405162461bcd60e51b815260206004820152603960248201527f4c69624d6f64756c65436f6e6669673a2043616e27742072656d6f766520667560448201527f6e6374696f6e207468617420646f65736e2774206578697374000000000000006064820152608401610375565b306001600160a01b03831603610ba25760405162461bcd60e51b815260206004820152603060248201527f4c69624d6f64756c65436f6e6669673a2043616e27742072656d6f766520696d60448201526f36baba30b1363290333ab731ba34b7b760811b6064820152608401610375565b6001600160e01b03198116600090815260208481526040808320546001600160a01b038616845260028701909252822054600160a01b9091046001600160601b03169190610bf290600190611072565b9050808214610ce4576001600160a01b03841660009081526002860160205260408120805483908110610c2757610c27610f18565b600091825260208083206008830401546001600160a01b038916845260028a019091526040909220805460079092166004026101000a90920460e01b925082919085908110610c7857610c78610f18565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790556001600160e01b03199290921682528690526040902080546001600160a01b0316600160a01b6001600160601b038516021790555b6001600160a01b03841660009081526002860160205260409020805480610d0d57610d0d61108b565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b031985168252868152604080832083905560018801909152812080546001600160a01b0319169055819003610646576003850154600090610d8890600190611072565b6001600160a01b0386166000908152600288016020526040902060010154909150808214610e38576000876003018381548110610dc757610dc7610f18565b6000918252602090912001546003890180546001600160a01b039092169250829184908110610df857610df8610f18565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260028901909152604090206001018190555b86600301805480610e4b57610e4b61108b565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0388168252600289018152604080832060010183905560058a019091529020805460ff1916905550505050505050565b813b8181610a2a5760405162461bcd60e51b815260040161037591906110a1565b80516001600160a01b0381168114610ee057600080fd5b919050565b60008060408385031215610ef857600080fd5b610f0183610ec9565b9150610f0f60208401610ec9565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561102457868503603f19018452815180516001600160a01b031686526020810151606087019060038110610fb457634e487b7160e01b600052602160045260246000fd5b806020890152506040820151915060606040880152808251808352608089019150602084019350600092505b8083101561100c5783516001600160e01b03191682526020938401936001939093019290910190610fe0565b50965050506020938401939190910190600101610f6c565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b0382166002600160601b0319810161106957611069611030565b60010192915050565b8181038181111561108557611085611030565b92915050565b634e487b7160e01b600052603160045260246000fd5b602081526000825180602084015260005b818110156110cf57602081860181015160408684010152016110b2565b506000604082850101526040601f19601f83011684010191505092915050565b60e7806110fd6000396000f3fe608060405236600a57005b36806000604037604080517fffffffff000000000000000000000000000000000000000000000000000000001660009081527f76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc4026020522054806090577fc6745ca80000000000000000000000000000000000000000000000000000000060005260046000fd5b600080836040845af49150503d806000803e811560ac57806000f35b806000fdfea2646970667358221220854113bb75cf2d75a6d11aab0743c68b349374acbc1c2086ad7bf66d530257c164736f6c634300081a00334c69624d6f64756c65436f6e6669673a20416464206d6f64756c652063616e2776a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc4014c69624d6f64756c65436f6e6669673a204e6f2073656c6563746f727320696e4c69624d6f64756c65436f6e6669673a204e6577206d6f64756c6520686173206e6f20636f6465000000000000000000000000999999833d965c275a2c102a4ebf222ca938546f00000000000000000000000023d135c9747c73f4217976e4ace261df7236bca2

Deployed Bytecode

0x608060405236600a57005b36806000604037604080517fffffffff000000000000000000000000000000000000000000000000000000001660009081527f76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc4026020522054806090577fc6745ca80000000000000000000000000000000000000000000000000000000060005260046000fd5b600080836040845af49150503d806000803e811560ac57806000f35b806000fdfea2646970667358221220854113bb75cf2d75a6d11aab0743c68b349374acbc1c2086ad7bf66d530257c164736f6c634300081a0033

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

000000000000000000000000999999833d965c275a2c102a4ebf222ca938546f00000000000000000000000023d135c9747c73f4217976e4ace261df7236bca2

-----Decoded View---------------
Arg [0] : _contractOwner (address): 0x999999833d965c275A2C102a4Ebf222ca938546f
Arg [1] : _moduleConfig (address): 0x23d135c9747C73F4217976e4AcE261Df7236bcA2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000999999833d965c275a2c102a4ebf222ca938546f
Arg [1] : 00000000000000000000000023d135c9747c73f4217976e4ace261df7236bca2


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.