ETH Price: $1,593.44 (+0.02%)
Gas: 8 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Value
0x1a9793a8ce87c80c29dd6a71e4acb6f0bda14f3d02a026cc91092ff68e670a09Deposit ETH(pending)2023-09-24 17:23:141 hr 11 mins ago1695576194IN
Optimism: Gateway
0.065 ETH(Pending)(Pending)
0x053ebe39dca19f2bb7650b117faf123cdd4c59932bac6f53a76c3bb918dfbc7cDeposit ETH(pending)2023-09-24 15:26:103 hrs 8 mins ago1695569170IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0x6bacf69604d3518e4c6d2bc2bfa5ed73f3b09e3211f944f81e6b7306fa124b72Deposit ETH(pending)2023-09-24 15:01:013 hrs 33 mins ago1695567661IN
Optimism: Gateway
0.0005 ETH(Pending)(Pending)
0xbf9c0945808a6f69823b20b178f1bc31f2b97ce2f2f74ee4154b57a1cd29d203Deposit ETH(pending)2023-09-24 15:00:373 hrs 34 mins ago1695567637IN
Optimism: Gateway
0.000001 ETH(Pending)(Pending)
0xea3f3f75a4240680d14a951f3f85a6201206a6d3558bc1aa25c59ed170ed9f88Deposit ETH(pending)2023-09-24 14:50:563 hrs 44 mins ago1695567056IN
Optimism: Gateway
0.008 ETH(Pending)(Pending)
0xbb9bc5c15179ff4a30d10fa277a0f973e4bd17fbacafc5a54f7d4fe3b7067960Deposit ETH(pending)2023-09-24 14:50:563 hrs 44 mins ago1695567056IN
Optimism: Gateway
0.008 ETH(Pending)(Pending)
0xde201c224e3298e9a19a35d4d7f91fc37e3d77846c6b37f5fda9796aaae5ea30Deposit ETH(pending)2023-09-24 14:50:563 hrs 44 mins ago1695567056IN
Optimism: Gateway
0.008 ETH(Pending)(Pending)
0x2e0d29de4ea33a8d67eaa07bf636a74cf5152a8770d16c6a80aef80bd9df1510Deposit ETH(pending)2023-09-24 14:50:563 hrs 44 mins ago1695567056IN
Optimism: Gateway
0.008 ETH(Pending)(Pending)
0x77836e5f19f013e4ce637b870ae9f1cdb3e6dfae8a34ccfe83d33f7eba7faec6Deposit ETH(pending)2023-09-24 14:50:563 hrs 44 mins ago1695567056IN
Optimism: Gateway
0.008 ETH(Pending)(Pending)
0x82cb608ecca450c97c325a91ace212430b75040e5ec397f03f6f31120ad02663Deposit ETH(pending)2023-09-24 14:49:543 hrs 45 mins ago1695566994IN
Optimism: Gateway
0.0000061365 ETH(Pending)(Pending)
0x581199e384cec90849ff6e65bd4befafc96f48159bc695c10f0878d7a76eb115Deposit ETH(pending)2023-09-24 14:49:503 hrs 45 mins ago1695566990IN
Optimism: Gateway
0.0000061365 ETH(Pending)(Pending)
0x9ef40e0efb8c0ee056077bbd2fc1cea4beeba82536e931d16bc731de65c7e0c9Deposit ETH(pending)2023-09-24 12:48:205 hrs 46 mins ago1695559700IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0x5a5b56864e5665472fbc01fad2ac9a92c43960196815a45141a26f20c97c4071Deposit ETH(pending)2023-09-24 12:35:515 hrs 59 mins ago1695558951IN
Optimism: Gateway
0.001 ETH(Pending)(Pending)
0xe18ae1829cf9095575fb8721c67a6e818a12eed2c31bb2f91a2206cf22c1e95bDeposit ETH(pending)2023-09-24 12:32:576 hrs 2 mins ago1695558777IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0x226559446322e188a9593d9d76bb57caf71ffced1e362660a2fd03a7f34639f4Deposit ETH(pending)2023-09-24 12:32:416 hrs 2 mins ago1695558761IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0x9ca8c4c1f7431b0c9db3a1948a9029d5c9e7c061fc8c8ac85030c33621e940aeDeposit ETH(pending)2023-09-24 12:26:296 hrs 8 mins ago1695558389IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0xd8eed93650593770288277b747d8dbfdd453d782f02e4e7548e13083792819feDeposit ETH(pending)2023-09-24 11:42:156 hrs 52 mins ago1695555735IN
Optimism: Gateway
0.000001 ETH(Pending)(Pending)
0x30afa4d8b078e8a631811fdd29f8b35cba7e9941c24edebc9460cd0119089cc9Deposit ETH(pending)2023-09-24 11:14:267 hrs 20 mins ago1695554066IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0x1cc9c086abfca5b2118ec4c83d2db126c7d2d08bb080321c04a718a91e6c1e05Deposit ETH(pending)2023-09-24 11:07:537 hrs 27 mins ago1695553673IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0xfbb876eac2af80db9d08ba86d298d5f9b7d5e9bba2c4b0486ca5460ae42c031fDeposit ETH(pending)2023-09-24 10:52:067 hrs 42 mins ago1695552726IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0xe5c3253f933a4057647b325c034a7df6a17f0dbe8fa1ad5ffc6acde3b3807a91Deposit ETH(pending)2023-09-24 10:43:417 hrs 51 mins ago1695552221IN
Optimism: Gateway
0.0000001 ETH(Pending)(Pending)
0xbdcd610da3363f5377c616b9e325a47ebd53ca56d3cfceaa996136d1fc9374f9Deposit ETH(pending)2023-09-24 10:36:347 hrs 58 mins ago1695551794IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0xfa6fdfb9904877b5e64c44c197ffd9ddb756d1b2257d7bb8ae3953d8872521a4Deposit ETH(pending)2023-09-24 10:23:158 hrs 11 mins ago1695550995IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0x7ef3aae77006c561599e942a96323cacdc43685b537f3f11e7b87d38eed85e93Deposit ETH(pending)2023-09-24 10:07:488 hrs 27 mins ago1695550068IN
Optimism: Gateway
0.00001 ETH(Pending)(Pending)
0x0e1b1b960347a4527a25fa90d016665eab5f35870080f455a6f89ad8f0d43ee5Deposit ETH(pending)2023-09-24 9:59:198 hrs 35 mins ago1695549559IN
Optimism: Gateway
0.000001 ETH(Pending)(Pending)
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Advanced Filter
Parent Txn Hash Block From To Value
182074682023-09-24 18:33:231 min ago1695580403
Optimism: Gateway
0.081 ETH
182074272023-09-24 18:25:119 mins ago1695579911
Optimism: Gateway
0.001 ETH
182073982023-09-24 18:19:2315 mins ago1695579563
Optimism: Gateway
0.073 ETH
182073762023-09-24 18:14:5919 mins ago1695579299
Optimism: Gateway
0.11 ETH
182073712023-09-24 18:13:5920 mins ago1695579239
Optimism: Gateway
19.33457567 ETH
182073712023-09-24 18:13:5920 mins ago1695579239
Optimism: Gateway
19.33457567 ETH
182072902023-09-24 17:57:3537 mins ago1695578255
Optimism: Gateway
0.02865 ETH
182072722023-09-24 17:53:5940 mins ago1695578039
Optimism: Gateway
0.0031 ETH
182072182023-09-24 17:43:1151 mins ago1695577391
Optimism: Gateway
0.005 ETH
182072132023-09-24 17:42:1152 mins ago1695577331
Optimism: Gateway
0.01 ETH
182071892023-09-24 17:37:2357 mins ago1695577043
Optimism: Gateway
0.1245 ETH
182070972023-09-24 17:18:591 hr 15 mins ago1695575939
Optimism: Gateway
0.01 ETH
182070732023-09-24 17:14:111 hr 20 mins ago1695575651
Optimism: Gateway
0.125 ETH
182070392023-09-24 17:07:231 hr 27 mins ago1695575243
Optimism: Gateway
0.0503 ETH
182069472023-09-24 16:48:591 hr 45 mins ago1695574139
Optimism: Gateway
0.14 ETH
182069382023-09-24 16:47:111 hr 47 mins ago1695574031
Optimism: Gateway
0.01000067 ETH
182068992023-09-24 16:39:111 hr 55 mins ago1695573551
Optimism: Gateway
0.0001 ETH
182068642023-09-24 16:31:592 hrs 2 mins ago1695573119
Optimism: Gateway
0.013 ETH
182068392023-09-24 16:26:592 hrs 7 mins ago1695572819
Optimism: Gateway
0.013 ETH
182068042023-09-24 16:19:472 hrs 15 mins ago1695572387
Optimism: Gateway
0.0005 ETH
182067842023-09-24 16:15:472 hrs 19 mins ago1695572147
Optimism: Gateway
0.008 ETH
182067792023-09-24 16:14:472 hrs 20 mins ago1695572087
Optimism: Gateway
0.001 ETH
182067762023-09-24 16:14:112 hrs 20 mins ago1695572051
Optimism: Gateway
31.25723018 ETH
182067762023-09-24 16:14:112 hrs 20 mins ago1695572051
Optimism: Gateway
31.25723018 ETH
182067632023-09-24 16:11:352 hrs 23 mins ago1695571895
Optimism: Gateway
0.002 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
L1ChugSplashProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 2 : L1ChugSplashProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity >0.5.0 <0.8.0;

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

/**
 * @title L1ChugSplashProxy
 * @dev Basic ChugSplash proxy contract for L1. Very close to being a normal proxy but has added
 * functions `setCode` and `setStorage` for changing the code or storage of the contract. Nifty!
 *
 * Note for future developers: do NOT make anything in this contract 'public' unless you know what
 * you're doing. Anything public can potentially have a function signature that conflicts with a
 * signature attached to the implementation contract. Public functions SHOULD always have the
 * 'proxyCallIfNotOwner' modifier unless there's some *really* good reason not to have that
 * modifier. And there almost certainly is not a good reason to not have that modifier. Beware!
 */
contract L1ChugSplashProxy {

    /*************
     * Constants *
     *************/

    // "Magic" prefix. When prepended to some arbitrary bytecode and used to create a contract, the
    // appended bytecode will be deployed as given.
    bytes13 constant internal DEPLOY_CODE_PREFIX = 0x600D380380600D6000396000f3;

    // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
    bytes32 constant internal IMPLEMENTATION_KEY = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    // bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)
    bytes32 constant internal OWNER_KEY = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;


    /***************
     * Constructor *
     ***************/
    
    /**
     * @param _owner Address of the initial contract owner.
     */
    constructor(
        address _owner
    ) {
        _setOwner(_owner);
    }


    /**********************
     * Function Modifiers *
     **********************/

    /**
     * Blocks a function from being called when the parent signals that the system should be paused
     * via an isUpgrading function.
     */
    modifier onlyWhenNotPaused() {
        address owner = _getOwner();

        // We do a low-level call because there's no guarantee that the owner actually *is* an
        // L1ChugSplashDeployer contract and Solidity will throw errors if we do a normal call and
        // it turns out that it isn't the right type of contract.
        (bool success, bytes memory returndata) = owner.staticcall(
            abi.encodeWithSelector(
                iL1ChugSplashDeployer.isUpgrading.selector
            )
        );

        // If the call was unsuccessful then we assume that there's no "isUpgrading" method and we
        // can just continue as normal. We also expect that the return value is exactly 32 bytes
        // long. If this isn't the case then we can safely ignore the result.
        if (success && returndata.length == 32) {
            // Although the expected value is a *boolean*, it's safer to decode as a uint256 in the
            // case that the isUpgrading function returned something other than 0 or 1. But we only
            // really care about the case where this value is 0 (= false).
            uint256 ret = abi.decode(returndata, (uint256));
            require(
                ret == 0,
                "L1ChugSplashProxy: system is currently being upgraded"
            );
        }

        _;
    }

    /**
     * Makes a proxy call instead of triggering the given function when the caller is either the
     * owner or the zero address. Caller can only ever be the zero address if this function is
     * being called off-chain via eth_call, which is totally fine and can be convenient for
     * client-side tooling. Avoids situations where the proxy and implementation share a sighash
     * and the proxy function ends up being called instead of the implementation one.
     *
     * Note: msg.sender == address(0) can ONLY be triggered off-chain via eth_call. If there's a
     * way for someone to send a transaction with msg.sender == address(0) in any real context then
     * we have much bigger problems. Primary reason to include this additional allowed sender is
     * because the owner address can be changed dynamically and we do not want clients to have to
     * keep track of the current owner in order to make an eth_call that doesn't trigger the
     * proxied contract.
     */
    modifier proxyCallIfNotOwner() {
        if (msg.sender == _getOwner() || msg.sender == address(0)) {
            _;
        } else {
            // This WILL halt the call frame on completion.
            _doProxyCall();
        }
    }


    /*********************
     * Fallback Function *
     *********************/

    fallback()
        external
        payable
    {
        // Proxy call by default.
        _doProxyCall();
    }


    /********************
     * Public Functions *
     ********************/

    /**
     * Sets the code that should be running behind this proxy. Note that this scheme is a bit
     * different from the standard proxy scheme where one would typically deploy the code
     * separately and then set the implementation address. We're doing it this way because it gives
     * us a lot more freedom on the client side. Can only be triggered by the contract owner.
     * @param _code New contract code to run inside this contract.
     */
    function setCode(
        bytes memory _code
    )
        proxyCallIfNotOwner
        public
    {
        // Get the code hash of the current implementation.
        address implementation = _getImplementation();

        // If the code hash matches the new implementation then we return early.
        if (keccak256(_code) == _getAccountCodeHash(implementation)) {
            return;
        }

        // Create the deploycode by appending the magic prefix.
        bytes memory deploycode = abi.encodePacked(
            DEPLOY_CODE_PREFIX,
            _code
        );

        // Deploy the code and set the new implementation address.
        address newImplementation;
        assembly {
            newImplementation := create(0x0, add(deploycode, 0x20), mload(deploycode))
        }

        // Check that the code was actually deployed correctly. I'm not sure if you can ever
        // actually fail this check. Should only happen if the contract creation from above runs
        // out of gas but this parent execution thread does NOT run out of gas. Seems like we
        // should be doing this check anyway though.
        require(
            _getAccountCodeHash(newImplementation) == keccak256(_code),
            "L1ChugSplashProxy: code was not correctly deployed."
        );

        _setImplementation(newImplementation);
    }

    /**
     * Modifies some storage slot within the proxy contract. Gives us a lot of power to perform
     * upgrades in a more transparent way. Only callable by the owner.
     * @param _key Storage key to modify.
     * @param _value New value for the storage key.
     */
    function setStorage(
        bytes32 _key,
        bytes32 _value
    )
        proxyCallIfNotOwner
        public
    {
        assembly {
            sstore(_key, _value)
        }
    }

    /**
     * Changes the owner of the proxy contract. Only callable by the owner.
     * @param _owner New owner of the proxy contract.
     */
    function setOwner(
        address _owner
    )
        proxyCallIfNotOwner
        public
    {
        _setOwner(_owner);
    }

    /**
     * Queries the owner of the proxy contract. Can only be called by the owner OR by making an
     * eth_call and setting the "from" address to address(0).
     * @return Owner address.
     */
    function getOwner()
        proxyCallIfNotOwner
        public
        returns (
            address
        )
    {
        return _getOwner();
    }

    /**
     * Queries the implementation address. Can only be called by the owner OR by making an
     * eth_call and setting the "from" address to address(0).
     * @return Implementation address.
     */
    function getImplementation()
        proxyCallIfNotOwner
        public
        returns (
            address
        )
    {
        return _getImplementation();
    }


    /**********************
     * Internal Functions *
     **********************/

    /**
     * Sets the implementation address.
     * @param _implementation New implementation address.
     */
    function _setImplementation(
        address _implementation
    )
        internal
    {
        assembly {
            sstore(IMPLEMENTATION_KEY, _implementation)
        }
    }

    /**
     * Queries the implementation address.
     * @return Implementation address.
     */
    function _getImplementation()
        internal
        view
        returns (
            address
        )
    {
        address implementation;
        assembly {
            implementation := sload(IMPLEMENTATION_KEY)
        }
        return implementation;
    }

    /**
     * Changes the owner of the proxy contract.
     * @param _owner New owner of the proxy contract.
     */
    function _setOwner(
        address _owner
    )
        internal
    {
        assembly {
            sstore(OWNER_KEY, _owner)
        }
    }

    /**
     * Queries the owner of the proxy contract.
     * @return Owner address.
     */
    function _getOwner()
        internal
        view 
        returns (
            address
        )
    {
        address owner;
        assembly {
            owner := sload(OWNER_KEY)
        }
        return owner;
    }

    /**
     * Gets the code hash for a given account.
     * @param _account Address of the account to get a code hash for.
     * @return Code hash for the account.
     */
    function _getAccountCodeHash(
        address _account
    )
        internal
        view
        returns (
            bytes32
        )
    {
        bytes32 codeHash;
        assembly {
            codeHash := extcodehash(_account)
        }
        return codeHash;
    }

    /**
     * Performs the proxy call via a delegatecall.
     */
    function _doProxyCall()
        onlyWhenNotPaused
        internal
    {
        address implementation = _getImplementation();

        require(
            implementation != address(0),
            "L1ChugSplashProxy: implementation is not set yet"
        );

        assembly {
            // Copy calldata into memory at 0x0....calldatasize.
            calldatacopy(0x0, 0x0, calldatasize())

            // Perform the delegatecall, make sure to pass all available gas.
            let success := delegatecall(gas(), implementation, 0x0, calldatasize(), 0x0, 0x0)

            // Copy returndata into memory at 0x0....returndatasize. Note that this *will*
            // overwrite the calldata that we just copied into memory but that doesn't really
            // matter because we'll be returning in a second anyway.
            returndatacopy(0x0, 0x0, returndatasize())
            
            // Success == 0 means a revert. We'll revert too and pass the data up.
            if iszero(success) {
                revert(0x0, returndatasize())
            }

            // Otherwise we'll just return and pass the data up.
            return(0x0, returndatasize())
        }
    }
}

File 2 of 2 : iL1ChugSplashDeployer.sol
// SPDX-License-Identifier: MIT
pragma solidity >0.5.0 <0.8.0;

/**
 * @title iL1ChugSplashDeployer
 */
interface iL1ChugSplashDeployer {
    function isUpgrading()
        external
        view
        returns (
            bool
        );
}

Settings
{
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_code","type":"bytes"}],"name":"setCode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516107983803806107988339818101604052602081101561003357600080fd5b505161003e81610044565b50610068565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b610721806100776000396000f3fe60806040526004361061004a5760003560e01c806313af4035146100545780636c5d4ad014610087578063893d20e81461013a5780639b0b0fda1461016b578063aaf10f421461019b575b6100526101b0565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661036c565b34801561009357600080fd5b50610052600480360360208110156100aa57600080fd5b8101906020810181356401000000008111156100c557600080fd5b8201836020820111156100d757600080fd5b803590602001918460018302840111640100000000831117156100f957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103af945050505050565b34801561014657600080fd5b5061014f610505565b604080516001600160a01b039092168252519081900360200190f35b34801561017757600080fd5b506100526004803603604081101561018e57600080fd5b508035906020013561054b565b3480156101a757600080fd5b5061014f610589565b60006101ba6105bd565b60408051600481526024810182526020810180516001600160e01b0316635bca393160e11b1781529151815193945060009384936001600160a01b0387169392918291908083835b602083106102215780518252601f199092019160209182019101610202565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610281576040519150601f19603f3d011682016040523d82523d6000602084013e610286565b606091505b5091509150818015610299575080516020145b156102f85760008180602001905160208110156102b557600080fd5b5051905080156102f65760405162461bcd60e51b81526004018080602001828103825260358152602001806106b76035913960400191505060405180910390fd5b505b60006103026105e2565b90506001600160a01b0381166103495760405162461bcd60e51b81526004018080602001828103825260308152602001806106546030913960400191505060405180910390fd5b3660008037600080366000845af43d6000803e80610366573d6000fd5b503d6000f35b6103746105bd565b6001600160a01b0316336001600160a01b03161480610391575033155b156103a45761039f81610607565b6103ac565b6103ac6101b0565b50565b6103b76105bd565b6001600160a01b0316336001600160a01b031614806103d4575033155b156103a45760006103e36105e2565b90506103ee8161062b565b825160208401201415610401575061039f565b60006c600d380380600d6000396000f360981b83604051602001808372ffffffffffffffffffffffffffffffffffffff19168152600d0182805190602001908083835b602083106104635780518252601f199092019160209182019101610444565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905060008151602083016000f0905083805190602001206104b88261062b565b146104f45760405162461bcd60e51b81526004018080602001828103825260338152602001806106846033913960400191505060405180910390fd5b6104fd8161062f565b5050506103ac565b600061050f6105bd565b6001600160a01b0316336001600160a01b0316148061052c575033155b15610540576105396105bd565b9050610548565b6105486101b0565b90565b6105536105bd565b6001600160a01b0316336001600160a01b03161480610570575033155b1561057d57808255610585565b6105856101b0565b5050565b60006105936105bd565b6001600160a01b0316336001600160a01b031614806105b0575033155b15610540576105396105e2565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3f90565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe4c314368756753706c61736850726f78793a20696d706c656d656e746174696f6e206973206e6f7420736574207965744c314368756753706c61736850726f78793a20636f646520776173206e6f7420636f72726563746c79206465706c6f7965642e4c314368756753706c61736850726f78793a2073797374656d2069732063757272656e746c79206265696e67207570677261646564a26469706673582212202e20c1d0062b5a698d49624edce72a713b117e88f4cd70877869b53519c1d1f964736f6c634300070600330000000000000000000000009996571372066a1545d3435c6935e3f9593a7ef5

Deployed Bytecode

0x60806040526004361061004a5760003560e01c806313af4035146100545780636c5d4ad014610087578063893d20e81461013a5780639b0b0fda1461016b578063aaf10f421461019b575b6100526101b0565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661036c565b34801561009357600080fd5b50610052600480360360208110156100aa57600080fd5b8101906020810181356401000000008111156100c557600080fd5b8201836020820111156100d757600080fd5b803590602001918460018302840111640100000000831117156100f957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103af945050505050565b34801561014657600080fd5b5061014f610505565b604080516001600160a01b039092168252519081900360200190f35b34801561017757600080fd5b506100526004803603604081101561018e57600080fd5b508035906020013561054b565b3480156101a757600080fd5b5061014f610589565b60006101ba6105bd565b60408051600481526024810182526020810180516001600160e01b0316635bca393160e11b1781529151815193945060009384936001600160a01b0387169392918291908083835b602083106102215780518252601f199092019160209182019101610202565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610281576040519150601f19603f3d011682016040523d82523d6000602084013e610286565b606091505b5091509150818015610299575080516020145b156102f85760008180602001905160208110156102b557600080fd5b5051905080156102f65760405162461bcd60e51b81526004018080602001828103825260358152602001806106b76035913960400191505060405180910390fd5b505b60006103026105e2565b90506001600160a01b0381166103495760405162461bcd60e51b81526004018080602001828103825260308152602001806106546030913960400191505060405180910390fd5b3660008037600080366000845af43d6000803e80610366573d6000fd5b503d6000f35b6103746105bd565b6001600160a01b0316336001600160a01b03161480610391575033155b156103a45761039f81610607565b6103ac565b6103ac6101b0565b50565b6103b76105bd565b6001600160a01b0316336001600160a01b031614806103d4575033155b156103a45760006103e36105e2565b90506103ee8161062b565b825160208401201415610401575061039f565b60006c600d380380600d6000396000f360981b83604051602001808372ffffffffffffffffffffffffffffffffffffff19168152600d0182805190602001908083835b602083106104635780518252601f199092019160209182019101610444565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905060008151602083016000f0905083805190602001206104b88261062b565b146104f45760405162461bcd60e51b81526004018080602001828103825260338152602001806106846033913960400191505060405180910390fd5b6104fd8161062f565b5050506103ac565b600061050f6105bd565b6001600160a01b0316336001600160a01b0316148061052c575033155b15610540576105396105bd565b9050610548565b6105486101b0565b90565b6105536105bd565b6001600160a01b0316336001600160a01b03161480610570575033155b1561057d57808255610585565b6105856101b0565b5050565b60006105936105bd565b6001600160a01b0316336001600160a01b031614806105b0575033155b15610540576105396105e2565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3f90565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe4c314368756753706c61736850726f78793a20696d706c656d656e746174696f6e206973206e6f7420736574207965744c314368756753706c61736850726f78793a20636f646520776173206e6f7420636f72726563746c79206465706c6f7965642e4c314368756753706c61736850726f78793a2073797374656d2069732063757272656e746c79206265696e67207570677261646564a26469706673582212202e20c1d0062b5a698d49624edce72a713b117e88f4cd70877869b53519c1d1f964736f6c63430007060033

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

0000000000000000000000009996571372066a1545d3435c6935e3f9593a7ef5

-----Decoded View---------------
Arg [0] : _owner (address): 0x9996571372066A1545D3435C6935e3F9593A7eF5

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009996571372066a1545d3435c6935e3f9593a7ef5


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

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