Sepolia Testnet

Contract

0xeffE2C6cA9Ab797D418f0D91eA60807713f3536f

Overview

ETH Balance

17,855.301795743186879742 ETH

Token Holdings

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Prove Withdrawal...75050862025-01-16 16:02:0038 mins ago1737043320IN
0xeffE2C6c...713f3536f
0 ETH0.000681232.69683156
Finalize Withdra...75050092025-01-16 15:46:3654 mins ago1737042396IN
0xeffE2C6c...713f3536f
0 ETH0.000952644.44751338
Finalize Withdra...75050032025-01-16 15:45:2455 mins ago1737042324IN
0xeffE2C6c...713f3536f
0 ETH0.001022164.77205599
Prove Withdrawal...75033902025-01-16 10:22:126 hrs ago1737022932IN
0xeffE2C6c...713f3536f
0 ETH0.0027992811.15333394
Prove Withdrawal...75026082025-01-16 7:45:248 hrs ago1737013524IN
0xeffE2C6c...713f3536f
0 ETH0.0028527310.21904769
Prove Withdrawal...75026042025-01-16 7:44:368 hrs ago1737013476IN
0xeffE2C6c...713f3536f
0 ETH0.002788529.98729581
Finalize Withdra...75024762025-01-16 7:19:009 hrs ago1737011940IN
0xeffE2C6c...713f3536f
0 ETH0.001626717.59444087
Finalize Withdra...75000742025-01-15 23:16:4817 hrs ago1736983008IN
0xeffE2C6c...713f3536f
0 ETH0.000664723.10333563
Finalize Withdra...74996012025-01-15 21:41:3618 hrs ago1736977296IN
0xeffE2C6c...713f3536f
0 ETH0.000060020.28029617
Finalize Withdra...74994852025-01-15 21:18:2419 hrs ago1736975904IN
0xeffE2C6c...713f3536f
0 ETH0.000152390.71156491
Finalize Withdra...74968522025-01-15 12:27:0028 hrs ago1736944020IN
0xeffE2C6c...713f3536f
0 ETH0.0024822311.65253144
Finalize Withdra...74968522025-01-15 12:27:0028 hrs ago1736944020IN
0xeffE2C6c...713f3536f
0 ETH0.0024172311.34547423
Prove Withdrawal...74967842025-01-15 12:13:2428 hrs ago1736943204IN
0xeffE2C6c...713f3536f
0 ETH0.0034510513.8384211
Prove Withdrawal...74960532025-01-15 9:46:3630 hrs ago1736934396IN
0xeffE2C6c...713f3536f
0 ETH0.0030349812.11991612
Prove Withdrawal...74960472025-01-15 9:45:2430 hrs ago1736934324IN
0xeffE2C6c...713f3536f
0 ETH0.0035200212.55919956
Prove Withdrawal...74960422025-01-15 9:44:2430 hrs ago1736934264IN
0xeffE2C6c...713f3536f
0 ETH0.0029948711.90673518
Prove Withdrawal...74960342025-01-15 9:42:4830 hrs ago1736934168IN
0xeffE2C6c...713f3536f
0 ETH0.0033116413.16610715
Prove Withdrawal...74960272025-01-15 9:41:2430 hrs ago1736934084IN
0xeffE2C6c...713f3536f
0 ETH0.003249111.59255251
Finalize Withdra...74958862025-01-15 9:13:1231 hrs ago1736932392IN
0xeffE2C6c...713f3536f
0 ETH0.0024692411.52982071
Finalize Withdra...74956452025-01-15 8:25:0032 hrs ago1736929500IN
0xeffE2C6c...713f3536f
0 ETH0.0042065819.63875406
Prove Withdrawal...74947132025-01-15 5:18:0035 hrs ago1736918280IN
0xeffE2C6c...713f3536f
0 ETH0.001318364.7212073
Prove Withdrawal...74933272025-01-15 0:39:2440 hrs ago1736901564IN
0xeffE2C6c...713f3536f
0 ETH0.000248220.89068734
Prove Withdrawal...74922152025-01-14 20:56:3643 hrs ago1736888196IN
0xeffE2C6c...713f3536f
0 ETH0.0055677119.82650294
Prove Withdrawal...74917862025-01-14 19:30:1245 hrs ago1736883012IN
0xeffE2C6c...713f3536f
0 ETH0.002683249.66484666
Prove Withdrawal...74902052025-01-14 14:13:242 days ago1736864004IN
0xeffE2C6c...713f3536f
0 ETH0.0015805316.43255597
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
75052602025-01-16 16:37:003 mins ago1737045420
0xeffE2C6c...713f3536f
0.025 ETH
75051852025-01-16 16:22:0018 mins ago1737044520
0xeffE2C6c...713f3536f
0.01 ETH
75050092025-01-16 15:46:3654 mins ago1737042396
0xeffE2C6c...713f3536f
1 ETH
75050032025-01-16 15:45:2455 mins ago1737042324
0xeffE2C6c...713f3536f
1 ETH
75046942025-01-16 14:43:361 hr ago1737038616
0xeffE2C6c...713f3536f
0.2 ETH
75045502025-01-16 14:14:362 hrs ago1737036876
0xeffE2C6c...713f3536f
0.01 ETH
75042652025-01-16 13:17:243 hrs ago1737033444
0xeffE2C6c...713f3536f
0.02 ETH
75039302025-01-16 12:10:124 hrs ago1737029412
0xeffE2C6c...713f3536f
0.05 ETH
75038352025-01-16 11:51:124 hrs ago1737028272
0xeffE2C6c...713f3536f
0.033 ETH
75034932025-01-16 10:42:485 hrs ago1737024168
0xeffE2C6c...713f3536f
0.0001 ETH
75028322025-01-16 8:30:248 hrs ago1737016224
0xeffE2C6c...713f3536f
0.00777 ETH
75027852025-01-16 8:20:488 hrs ago1737015648
0xeffE2C6c...713f3536f
0.02 ETH
75026402025-01-16 7:51:488 hrs ago1737013908
0xeffE2C6c...713f3536f
0.0001 ETH
75025942025-01-16 7:42:368 hrs ago1737013356
0xeffE2C6c...713f3536f
0.0001 ETH
75025522025-01-16 7:34:129 hrs ago1737012852
0xeffE2C6c...713f3536f
0.1 ETH
75024762025-01-16 7:19:009 hrs ago1737011940
0xeffE2C6c...713f3536f
0.95 ETH
75022302025-01-16 6:29:4810 hrs ago1737008988
0xeffE2C6c...713f3536f
0.001 ETH
75015512025-01-16 4:13:1212 hrs ago1737000792
0xeffE2C6c...713f3536f
0.2 ETH
75011882025-01-16 3:00:3613 hrs ago1736996436
0xeffE2C6c...713f3536f
1 ETH
75007732025-01-16 1:37:3615 hrs ago1736991456
0xeffE2C6c...713f3536f
0.001 ETH
75007082025-01-16 1:24:3615 hrs ago1736990676
0xeffE2C6c...713f3536f
0.001 ETH
75007072025-01-16 1:24:2415 hrs ago1736990664
0xeffE2C6c...713f3536f
0.001 ETH
75007062025-01-16 1:24:1215 hrs ago1736990652
0xeffE2C6c...713f3536f
0.001 ETH
75007062025-01-16 1:24:1215 hrs ago1736990652
0xeffE2C6c...713f3536f
0.001 ETH
75007052025-01-16 1:24:0015 hrs ago1736990640
0xeffE2C6c...713f3536f
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 0xa27bAF0c...029F81b91
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 10000 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) external 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)
        external
        payable
        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) external proxyCallIfNotAdmin {
        _changeAdmin(_admin);
    }

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

    /**
     * @notice Queries the implementation address.
     *
     * @return Implementation address.
     */
    function implementation() external 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": 10000
  },
  "metadata": {
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

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

Validator Index Block Amount
View All Withdrawals

Transaction 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.