ETH Price: $3,443.40 (+1.53%)
Gas: 4 Gwei

Contract

0x8B34b14c7c7123459Cf3076b8Cb929BE097d0C07
 

Overview

ETH Balance

20,106.730831774645024211 ETH

Eth Value

$69,235,547.19 (@ $3,443.40/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
0x5bcafc500f8b25ee181c73d2fc0f0ef2f237ac188ceb6ef9e2b9abe6e217f03e Prove Withdrawal...(pending)2024-06-28 9:33:501 hr ago1719567230IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x26f954e2919816e39b1cf9cf5fc3306eddb40a2def0eb6051b239dd692301db3 Prove Withdrawal...(pending)2024-06-27 16:53:0718 hrs ago1719507187IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xc13ce05650502aae732929da992a52fcfd5ad26e502cd0e9c7a9d0f485956955 Finalize Withdra...(pending)2024-06-26 20:38:0538 hrs ago1719434285IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x0712ddd5e44b1dc68251ab8e02be178cf10f9665409c532415096810aefa90f0 Finalize Withdra...(pending)2024-06-26 20:35:0538 hrs ago1719434105IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x836d8ab51a708f4938b566bdc6897db0cda43f529607b7d1ff5f7573420505a9 Finalize Withdra...(pending)2024-06-26 12:00:4146 hrs ago1719403241IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xa1bf5e3666b8ccd279a925b81fe2f1ec9e93f54565a5849e18153dc7917c7d2b Prove Withdrawal...(pending)2024-06-26 8:30:302 days ago1719390630IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xd2670db5a32ea223996ef06b48b3630522dc6484cd813f061fb693a73bb34ff3 Prove Withdrawal...(pending)2024-06-26 5:02:082 days ago1719378128IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x6119b3f3df1d012fef49a0946c3bdd61bc25125512699ceb7d8e8405f919c3c4 Prove Withdrawal...(pending)2024-06-26 4:44:422 days ago1719377082IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xa93013bd92039f7f5237840fea79f6c0804190a7080582a1d73384c416523d48 Finalize Withdra...(pending)2024-06-26 1:09:562 days ago1719364196IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xba9efd23f60e0fa12e8809a30b988c26f2c59d31f0135551e61ff10ca01f83ec Prove Withdrawal...(pending)2024-06-25 21:28:422 days ago1719350922IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xc3e7bacc6191d74390bf3a25f86b44d3ec45d5b6b284886a50566f726357ce2e Finalize Withdra...(pending)2024-06-25 11:23:312 days ago1719314611IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xfb6f19ba2594a82623429f235583132757022b9d65f2f7778485d150c918cd8e Prove Withdrawal...(pending)2024-06-23 9:20:515 days ago1719134451IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x4f5386d7745d74778c772e5c963011b8c4ff1a91b91b577ce747b0de00830b44 Prove Withdrawal...(pending)2024-06-23 9:20:515 days ago1719134451IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xa5cf499be8f5620e1efa66f752fb6734a9130c9d0437b8fae526bde697659d26 Finalize Withdra...(pending)2024-06-23 9:08:435 days ago1719133723IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x6b77b203e60593bf88ca62116f52f9e241d11be7e39532b125fc12e28ddc33c2 Finalize Withdra...(pending)2024-06-23 6:06:495 days ago1719122809IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xd30b0b49c5e306ef2f0166d864193a02cbf5a8e86b2df4cb89e5cf26379283c8 Finalize Withdra...(pending)2024-06-23 4:26:295 days ago1719116789IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xee3cffb1b8f4184997b26af32ccf475fe3b21ce230a01c26718035d16cc1aeb5 Prove Withdrawal...(pending)2024-06-23 4:19:425 days ago1719116382IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x6ca4d465e205b2f415d6b930cfd669a962cf3cd8e577b4380cb2364b0bc62e00 Prove Withdrawal...(pending)2024-06-23 3:13:525 days ago1719112432IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x531a904da134d4311d1794f1b28337d755fe74b733b532c8b14c11a7908c45a2 Finalize Withdra...(pending)2024-06-23 2:19:285 days ago1719109168IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x204aac8e0f18c8a84d3b9e94816ac2c005d8b444114c8b77ecd83b4cd09f2a67 Finalize Withdra...(pending)2024-06-23 2:19:285 days ago1719109168IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x8a5777fa847d7f238cead156f79c0ac2e03bf3f89f6f74cce08c016c89f72704 Finalize Withdra...(pending)2024-06-23 2:19:245 days ago1719109164IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0xcef857b008cbb8111f78865702e2770ba0913590f35ced08b522f5c3764536ae Finalize Withdra...(pending)2024-06-23 2:19:245 days ago1719109164IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x7e04768941c2f6466506f950e12eaf0aa8c96df68432bfe274b4575ffa04ddee Finalize Withdra...(pending)2024-06-23 2:17:155 days ago1719109035IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x773251046f0a73f1fdfb45ef582c08ed304d78c4e31c0fa7c8632de8160de469 Finalize Withdra...(pending)2024-06-23 1:44:005 days ago1719107040IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
0x912531e7fa3a2981c09282dcb4ff14090d4a6e93c4debcffc5d38f91b01a7fe3 Prove Withdrawal...(pending)2024-06-23 1:39:515 days ago1719106791IN
Mode: Optimism Portal Proxy
0 ETH(Pending)(Pending)
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
201897112024-06-28 10:52:594 mins ago1719571979
Mode: Optimism Portal Proxy
0.005 ETH
201895352024-06-28 10:17:4740 mins ago1719569867
Mode: Optimism Portal Proxy
20 ETH
201895162024-06-28 10:13:5943 mins ago1719569639
Mode: Optimism Portal Proxy
0.34385 ETH
201893912024-06-28 9:48:471 hr ago1719568127
Mode: Optimism Portal Proxy
0.028215 ETH
201892842024-06-28 9:27:231 hr ago1719566843
Mode: Optimism Portal Proxy
0.863645 ETH
201890482024-06-28 8:40:112 hrs ago1719564011
Mode: Optimism Portal Proxy
0.039615 ETH
201890412024-06-28 8:38:472 hrs ago1719563927
Mode: Optimism Portal Proxy
0.29 ETH
201887352024-06-28 7:37:113 hrs ago1719560231
Mode: Optimism Portal Proxy
1 ETH
201886032024-06-28 7:10:353 hrs ago1719558635
Mode: Optimism Portal Proxy
20 ETH
201882602024-06-28 6:01:354 hrs ago1719554495
Mode: Optimism Portal Proxy
202.16077017 ETH
201882332024-06-28 5:56:115 hrs ago1719554171
Mode: Optimism Portal Proxy
0.005 ETH
201882162024-06-28 5:52:475 hrs ago1719553967
Mode: Optimism Portal Proxy
0.01824 ETH
201881652024-06-28 5:42:355 hrs ago1719553355
Mode: Optimism Portal Proxy
20 ETH
201881612024-06-28 5:41:475 hrs ago1719553307
Mode: Optimism Portal Proxy
0.20804999 ETH
201881522024-06-28 5:39:595 hrs ago1719553199
Mode: Optimism Portal Proxy
0.176415 ETH
201881432024-06-28 5:38:115 hrs ago1719553091
Mode: Optimism Portal Proxy
0.005 ETH
201881222024-06-28 5:33:595 hrs ago1719552839
Mode: Optimism Portal Proxy
0.00503 ETH
201881012024-06-28 5:29:475 hrs ago1719552587
Mode: Optimism Portal Proxy
0.184 ETH
201879932024-06-28 5:07:595 hrs ago1719551279
Mode: Optimism Portal Proxy
0.05 ETH
201878112024-06-28 4:31:236 hrs ago1719549083
Mode: Optimism Portal Proxy
0.02 ETH
201876652024-06-28 4:01:596 hrs ago1719547319
Mode: Optimism Portal Proxy
0.093195 ETH
201870402024-06-28 1:56:239 hrs ago1719539783
Mode: Optimism Portal Proxy
5.31 ETH
201865642024-06-28 0:20:3510 hrs ago1719534035
Mode: Optimism Portal Proxy
20 ETH
201864902024-06-28 0:05:3510 hrs ago1719533135
Mode: Optimism Portal Proxy
20 ETH
201861232024-06-27 22:51:2312 hrs ago1719528683
Mode: Optimism Portal Proxy
0.001 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xeFDd8B58...A5871e0d7
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Proxy

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 1 : Proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

/**
 * @title Proxy
 * @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or
 *         if the caller is address(0), meaning that the call originated from an off-chain
 *         simulation.
 */
contract Proxy {
    /**
     * @notice The storage slot that holds the address of the implementation.
     *         bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
     */
    bytes32 internal constant IMPLEMENTATION_KEY =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @notice The storage slot that holds the address of the owner.
     *         bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)
     */
    bytes32 internal constant OWNER_KEY =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @notice An event that is emitted each time the implementation is changed. This event is part
     *         of the EIP-1967 specification.
     *
     * @param implementation The address of the implementation contract
     */
    event Upgraded(address indexed implementation);

    /**
     * @notice An event that is emitted each time the owner is upgraded. This event is part of the
     *         EIP-1967 specification.
     *
     * @param previousAdmin The previous owner of the contract
     * @param newAdmin      The new owner of the contract
     */
    event AdminChanged(address previousAdmin, address newAdmin);

    /**
     * @notice A modifier that reverts if not called by the owner or by address(0) to allow
     *         eth_call to interact with this proxy without needing to use low-level storage
     *         inspection. We assume that nobody is able to trigger calls from address(0) during
     *         normal EVM execution.
     */
    modifier proxyCallIfNotAdmin() {
        if (msg.sender == _getAdmin() || msg.sender == address(0)) {
            _;
        } else {
            // This WILL halt the call frame on completion.
            _doProxyCall();
        }
    }

    /**
     * @notice Sets the initial admin during contract deployment. Admin address is stored at the
     *         EIP-1967 admin storage slot so that accidental storage collision with the
     *         implementation is not possible.
     *
     * @param _admin Address of the initial contract admin. Admin as the ability to access the
     *               transparent proxy interface.
     */
    constructor(address _admin) {
        _changeAdmin(_admin);
    }

    // slither-disable-next-line locked-ether
    receive() external payable {
        // Proxy call by default.
        _doProxyCall();
    }

    // slither-disable-next-line locked-ether
    fallback() external payable {
        // Proxy call by default.
        _doProxyCall();
    }

    /**
     * @notice Set the implementation contract address. The code at the given address will execute
     *         when this contract is called.
     *
     * @param _implementation Address of the implementation contract.
     */
    function upgradeTo(address _implementation) public virtual proxyCallIfNotAdmin {
        _setImplementation(_implementation);
    }

    /**
     * @notice Set the implementation and call a function in a single transaction. Useful to ensure
     *         atomic execution of initialization-based upgrades.
     *
     * @param _implementation Address of the implementation contract.
     * @param _data           Calldata to delegatecall the new implementation with.
     */
    function upgradeToAndCall(address _implementation, bytes calldata _data)
        public
        payable
        virtual
        proxyCallIfNotAdmin
        returns (bytes memory)
    {
        _setImplementation(_implementation);
        (bool success, bytes memory returndata) = _implementation.delegatecall(_data);
        require(success, "Proxy: delegatecall to new implementation contract failed");
        return returndata;
    }

    /**
     * @notice Changes the owner of the proxy contract. Only callable by the owner.
     *
     * @param _admin New owner of the proxy contract.
     */
    function changeAdmin(address _admin) public virtual proxyCallIfNotAdmin {
        _changeAdmin(_admin);
    }

    /**
     * @notice Gets the owner of the proxy contract.
     *
     * @return Owner address.
     */
    function admin() public virtual proxyCallIfNotAdmin returns (address) {
        return _getAdmin();
    }

    /**
     * @notice Queries the implementation address.
     *
     * @return Implementation address.
     */
    function implementation() public virtual proxyCallIfNotAdmin returns (address) {
        return _getImplementation();
    }

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

    /**
     * @notice Changes the owner of the proxy contract.
     *
     * @param _admin New owner of the proxy contract.
     */
    function _changeAdmin(address _admin) internal {
        address previous = _getAdmin();
        assembly {
            sstore(OWNER_KEY, _admin)
        }
        emit AdminChanged(previous, _admin);
    }

    /**
     * @notice Performs the proxy call via a delegatecall.
     */
    function _doProxyCall() internal {
        address impl = _getImplementation();
        require(impl != address(0), "Proxy: implementation not initialized");

        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(), impl, 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())
        }
    }

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

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

Settings
{
  "remappings": [
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/",
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "@rari-capital/=node_modules/@rari-capital/",
    "@rari-capital/solmate/=node_modules/@rari-capital/solmate/",
    "ds-test/=node_modules/ds-test/src/",
    "forge-std/=node_modules/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "metadata": {
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100be5780638f283970146100f8578063f851a440146101185761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61012d565b005b61006b61012d565b34801561008157600080fd5b5061006b6100903660046106d9565b610224565b6100a86100a33660046106f4565b610296565b6040516100b59190610777565b60405180910390f35b3480156100ca57600080fd5b506100d3610419565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b34801561010457600080fd5b5061006b6101133660046106d9565b6104b0565b34801561012457600080fd5b506100d3610517565b60006101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061021e573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061027d575033155b1561028e5761028b816105a3565b50565b61028b61012d565b60606102c07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102f7575033155b1561040a57610305846105a3565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161032f9291906107ea565b600060405180830381855af49150503d806000811461036a576040519150601f19603f3d011682016040523d82523d6000602084013e61036f565b606091505b509150915081610401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101f8565b91506104129050565b61041261012d565b9392505050565b60006104437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061047a575033155b156104a557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6104ad61012d565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610509575033155b1561028e5761028b8161060b565b60006105417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610578575033155b156104a557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106357fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d457600080fd5b919050565b6000602082840312156106eb57600080fd5b610412826106b0565b60008060006040848603121561070957600080fd5b610712846106b0565b9250602084013567ffffffffffffffff8082111561072f57600080fd5b818601915086601f83011261074357600080fd5b81358181111561075257600080fd5b87602082850101111561076457600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b818110156107a457858101830151858201604001528201610788565b818111156107b6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080f000a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.