ETH Price: $3,107.59 (+0.12%)
Gas: 4 Gwei

Contract

0x31F648572b67e60Ec6eb8E197E1848CC5F5558de
 
Transaction Hash
Method
Block
From
To
Value
0xfc0f6937ad71724524fcab00d27a7d0d0acad98e0592c0017179729b38af641aProve Withdrawal...(pending)2024-05-04 22:59:153 mins ago1714863555IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x6362f5a08d627c2af8b5c2f3bb42acb591fd7b7e479067511d37790b5a174f92Deposit Transact...(pending)2024-05-04 22:52:549 mins ago1714863174IN
Kroma: Portal
0.0001 ETH(Pending)(Pending)
0x7d1f1278c975a25e73a54f8ee2b5a5ca98c6afd3e550a71247c741059beeeca5Prove Withdrawal...(pending)2024-05-04 22:50:1612 mins ago1714863016IN
Kroma: Portal
0 ETH(Pending)(Pending)
0xd7070322aed62849cf10f857d36dd2de1181a2381857476fe8fbe684d38b117bProve Withdrawal...(pending)2024-05-04 22:28:1734 mins ago1714861697IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x5fb90c1ea9f1ee0ff023808a9058a6b8666e5b497cd7dc3289434db315dd032fProve Withdrawal...(pending)2024-05-04 22:00:161 hr ago1714860016IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x3615129ce70eb3f882c4529cc7383254663fce06b79a0b3c466f358db288eac3Prove Withdrawal...(pending)2024-05-04 21:56:191 hr ago1714859779IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x3dcfaccca3cb3b53230bb73741cb57a5e48ee434c85411fdb864096c3a870c63Deposit Transact...(pending)2024-05-04 21:48:161 hr ago1714859296IN
Kroma: Portal
0.00081931 ETH(Pending)(Pending)
0x4a213fd87c3781249d8b59cade6e893836e7bdf48fe1b009a76767e7f301560aProve Withdrawal...(pending)2024-05-04 21:41:151 hr ago1714858875IN
Kroma: Portal
0 ETH(Pending)(Pending)
0xf83db424c083cd58b9c497d792f81ff8a39e1d236f7c8bf74689ce4f9fc51501Finalize Withdra...(pending)2024-05-04 4:53:3218 hrs ago1714798412IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x3e11edc929fe3addffccda65555c370f24d9cf36140fd2bd2657450e529ea37aDeposit Transact...(pending)2024-05-02 3:35:072 days ago1714620907IN
Kroma: Portal
0.00021972 ETH(Pending)(Pending)
0x396334a98af3a3e64d004ae1c122ddd6eaeba84679d0338eae190fd002836939Deposit Transact...(pending)2024-05-02 3:35:072 days ago1714620907IN
Kroma: Portal
0.00021972 ETH(Pending)(Pending)
0xd17ecbaeacac3685c8fce374ce3d28e58481e993a7576eea3eaab1515c7106b4Prove Withdrawal...(pending)2024-04-29 7:25:275 days ago1714375527IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x2be8bc1105e3ae428c9418eac978120a760ddef4cd11bb5d2a9bdc390bd35b67Prove Withdrawal...(pending)2024-04-29 6:09:145 days ago1714370954IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x0b2b44a43329d9669f524ff6a6e82a79d4a657671dd168f1b2d3dd7dec462e8bDeposit Transact...(pending)2024-04-29 5:42:095 days ago1714369329IN
Kroma: Portal
0.00025 ETH(Pending)(Pending)
0x65e589b57485349a171f6bcc78cf3231ba180aca77be8f167511264525df5ab2Deposit Transact...(pending)2024-04-29 5:42:075 days ago1714369327IN
Kroma: Portal
0.002 ETH(Pending)(Pending)
0x8bd735f6e5f2ac44d0357fcaa41f465c5ebb5720c5706abf9d4719a75310b5a6Prove Withdrawal...(pending)2024-04-29 5:42:075 days ago1714369327IN
Kroma: Portal
0 ETH(Pending)(Pending)
0x3941723be705e23417c05e699d7896b30cdfbbceea6639eb6dcdeba6297600e8Finalize Withdra...(pending)2024-04-29 5:42:045 days ago1714369324IN
Kroma: Portal
0 ETH(Pending)(Pending)
0xe2bcd574a53dd31cac2e7ea90448b9583ae26641e0ac43147a1908300f803a1cDeposit Transact...(pending)2024-04-29 5:42:035 days ago1714369323IN
Kroma: Portal
0.00025 ETH(Pending)(Pending)
0x7cac01b0d769760cec77b07533eac5efdc5d4eed93bd3f934741e1e206e1a337Prove Withdrawal...(pending)2024-04-21 4:57:5013 days ago1713675470IN
Kroma: Portal
0 ETH(Pending)(Pending)
0xca2b4558acec4b45b216d83f203ab4f7eb78dc01925fb1fe448104ad834a9352Deposit Transact...(pending)2024-04-07 1:52:3027 days ago1712454750IN
Kroma: Portal
0.00021926 ETH(Pending)(Pending)
Finalize Withdra...197993702024-05-04 21:17:231 hr ago1714857443IN
Kroma: Portal
0 ETH0.000831725.10818719
Finalize Withdra...197992892024-05-04 21:00:592 hrs ago1714856459IN
Kroma: Portal
0 ETH0.000777184.773225
Deposit Transact...197992872024-05-04 21:00:352 hrs ago1714856435IN
Kroma: Portal
0.01003747 ETH0.000402055.70997594
Deposit Transact...197992872024-05-04 21:00:352 hrs ago1714856435IN
Kroma: Portal
0.01003747 ETH0.000401515.70997594
Deposit Transact...197992672024-05-04 20:56:352 hrs ago1714856195IN
Kroma: Portal
0.01320342 ETH0.000403045.81301445
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
197993702024-05-04 21:17:231 hr ago1714857443
Kroma: Portal
0.0498 ETH
197992892024-05-04 21:00:592 hrs ago1714856459
Kroma: Portal
0.025 ETH
197964072024-05-04 11:20:5911 hrs ago1714821659
Kroma: Portal
0.0089 ETH
197961092024-05-04 10:20:4712 hrs ago1714818047
Kroma: Portal
0.019 ETH
197951202024-05-04 7:02:3516 hrs ago1714806155
Kroma: Portal
0.116 ETH
197948752024-05-04 6:12:5916 hrs ago1714803179
Kroma: Portal
0.038 ETH
197946772024-05-04 5:33:2317 hrs ago1714800803
Kroma: Portal
0.013 ETH
197930152024-05-03 23:58:3523 hrs ago1714780715
Kroma: Portal
0.036 ETH
197815772024-05-02 9:34:592 days ago1714642499
Kroma: Portal
0.02 ETH
197811362024-05-02 8:06:352 days ago1714637195
Kroma: Portal
40 ETH
197809852024-05-02 7:36:232 days ago1714635383
Kroma: Portal
0.0412 ETH
197791052024-05-02 1:17:112 days ago1714612631
Kroma: Portal
0.0276 ETH
197759412024-05-01 14:41:233 days ago1714574483
Kroma: Portal
0.47 ETH
197734522024-05-01 6:20:473 days ago1714544447
Kroma: Portal
0.0105 ETH
197734332024-05-01 6:16:593 days ago1714544219
Kroma: Portal
0.0105 ETH
197733482024-05-01 5:59:593 days ago1714543199
Kroma: Portal
0.01 ETH
197731922024-05-01 5:28:233 days ago1714541303
Kroma: Portal
0.011 ETH
197728982024-05-01 4:29:233 days ago1714537763
Kroma: Portal
0.006 ETH
197575702024-04-29 1:04:475 days ago1714352687
Kroma: Portal
0.01 ETH
197575682024-04-29 1:04:235 days ago1714352663
Kroma: Portal
0.01 ETH
197571162024-04-28 23:32:595 days ago1714347179
Kroma: Portal
0.029 ETH
197532052024-04-28 10:25:116 days ago1714299911
Kroma: Portal
0.0147 ETH
197521382024-04-28 6:50:236 days ago1714287023
Kroma: Portal
0.005 ETH
197520092024-04-28 6:24:356 days ago1714285475
Kroma: Portal
0.199 ETH
197500002024-04-27 23:39:356 days ago1714261175
Kroma: Portal
0.0159 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.