ETH Price: $3,445.76 (-1.77%)
Gas: 30 Gwei

Contract

0xba1ac896F3b7cB273daE94bF9A6291A432e826c7
 

Overview

ETH Balance

33.2143867412 ETH

Eth Value

$114,448.65 (@ $3,445.76/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Prove Withdrawal...196246202024-04-10 10:25:232 days ago1712744723IN
0xba1ac896...432e826c7
0 ETH0.0040622920.31230759
Prove Withdrawal...196246192024-04-10 10:25:112 days ago1712744711IN
0xba1ac896...432e826c7
0 ETH0.0039139319.49114261
Prove Withdrawal...196150272024-04-09 2:11:113 days ago1712628671IN
0xba1ac896...432e826c7
0 ETH0.0039365419.70468928
Prove Withdrawal...196081142024-04-08 2:55:474 days ago1712544947IN
0xba1ac896...432e826c7
0 ETH0.0021161310.48263275
Prove Withdrawal...196081122024-04-08 2:55:234 days ago1712544923IN
0xba1ac896...432e826c7
0 ETH0.0021695610.8476096
Finalize Withdra...196061132024-04-07 20:12:354 days ago1712520755IN
0xba1ac896...432e826c7
0 ETH0.0025291113.89745214
Prove Withdrawal...195996232024-04-06 22:20:595 days ago1712442059IN
0xba1ac896...432e826c7
0 ETH0.0025639112.78752683
Prove Withdrawal...195996082024-04-06 22:17:595 days ago1712441879IN
0xba1ac896...432e826c7
0 ETH0.0021295810.61939675
Finalize Withdra...195866262024-04-05 2:40:357 days ago1712284835IN
0xba1ac896...432e826c7
0 ETH0.0028826715.84338701
Prove Withdrawal...195825532024-04-04 12:59:118 days ago1712235551IN
0xba1ac896...432e826c7
0 ETH0.0052188122.83545105
Finalize Withdra...195711992024-04-02 22:52:599 days ago1712098379IN
0xba1ac896...432e826c7
0 ETH0.0052589928.89811943
Finalize Withdra...195642872024-04-01 23:35:4710 days ago1712014547IN
0xba1ac896...432e826c7
0 ETH0.0040799822.42388466
Finalize Withdra...195628802024-04-01 18:51:5910 days ago1711997519IN
0xba1ac896...432e826c7
0 ETH0.0067713229.07459436
Prove Withdrawal...195561312024-03-31 20:06:3511 days ago1711915595IN
0xba1ac896...432e826c7
0 ETH0.0049270524.56343188
Prove Withdrawal...195483372024-03-30 17:46:4712 days ago1711820807IN
0xba1ac896...432e826c7
0 ETH0.00507725.14826698
Finalize Withdra...195394022024-03-29 11:36:2314 days ago1711712183IN
0xba1ac896...432e826c7
0 ETH0.05395175250
Prove Withdrawal...195342422024-03-28 18:09:5914 days ago1711649399IN
0xba1ac896...432e826c7
0 ETH0.009040545.19617761
Finalize Withdra...195281352024-03-27 21:13:1115 days ago1711573991IN
0xba1ac896...432e826c7
0 ETH0.009255842.88925551
Finalize Withdra...195255562024-03-27 12:07:4716 days ago1711541267IN
0xba1ac896...432e826c7
0 ETH0.006521930.22102065
Prove Withdrawal...195202802024-03-26 18:07:5916 days ago1711476479IN
0xba1ac896...432e826c7
0 ETH0.0083209341.81648586
Prove Withdrawal...195201712024-03-26 17:45:5916 days ago1711475159IN
0xba1ac896...432e826c7
0 ETH0.0088113144.16277904
Finalize Withdra...195143832024-03-25 22:15:1117 days ago1711404911IN
0xba1ac896...432e826c7
0 ETH0.0062394428.9121684
Finalize Withdra...195053472024-03-24 15:40:2318 days ago1711294823IN
0xba1ac896...432e826c7
0 ETH0.0034159918.77454604
Finalize Withdra...195049142024-03-24 14:11:5919 days ago1711289519IN
0xba1ac896...432e826c7
0 ETH0.0048369720.76785944
Finalize Withdra...194977582024-03-23 14:01:1120 days ago1711202471IN
0xba1ac896...432e826c7
0 ETH0.0038824821.33845117
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
196134502024-04-08 20:53:353 days ago1712609615
0xba1ac896...432e826c7
0.015 ETH
196061132024-04-07 20:12:354 days ago1712520755
0xba1ac896...432e826c7
1.151 ETH
196050122024-04-07 16:30:114 days ago1712507411
0xba1ac896...432e826c7
0.05 ETH
195986542024-04-06 19:04:595 days ago1712430299
0xba1ac896...432e826c7
0.005 ETH
195968232024-04-06 12:55:476 days ago1712408147
0xba1ac896...432e826c7
0.005 ETH
195866262024-04-05 2:40:357 days ago1712284835
0xba1ac896...432e826c7
0.49 ETH
195794592024-04-04 2:35:598 days ago1712198159
0xba1ac896...432e826c7
0.1 ETH
195711992024-04-02 22:52:599 days ago1712098379
0xba1ac896...432e826c7
1.211 ETH
195642872024-04-01 23:35:4710 days ago1712014547
0xba1ac896...432e826c7
0.146 ETH
195557922024-03-31 18:57:3511 days ago1711911455
0xba1ac896...432e826c7
0.005 ETH
195355052024-03-28 22:30:2314 days ago1711665023
0xba1ac896...432e826c7
0.15 ETH
195304432024-03-28 5:11:3515 days ago1711602695
0xba1ac896...432e826c7
0.02 ETH
195230052024-03-27 3:24:2316 days ago1711509863
0xba1ac896...432e826c7
0.015 ETH
195053472024-03-24 15:40:2318 days ago1711294823
0xba1ac896...432e826c7
0.736 ETH
194977582024-03-23 14:01:1120 days ago1711202471
0xba1ac896...432e826c7
0.324 ETH
194939502024-03-23 1:12:2320 days ago1711156343
0xba1ac896...432e826c7
0.321 ETH
194895622024-03-22 10:26:3521 days ago1711103195
0xba1ac896...432e826c7
0.999 ETH
194857842024-03-21 21:44:4721 days ago1711057487
0xba1ac896...432e826c7
0.399 ETH
194784922024-03-20 21:09:2322 days ago1710968963
0xba1ac896...432e826c7
12.7 ETH
194669352024-03-19 6:12:5924 days ago1710828779
0xba1ac896...432e826c7
0.000011 ETH
194550632024-03-17 14:09:5926 days ago1710684599
0xba1ac896...432e826c7
0.003 ETH
194387712024-03-15 7:10:3528 days ago1710486635
0xba1ac896...432e826c7
0.2 ETH
194363572024-03-14 23:01:4728 days ago1710457307
0xba1ac896...432e826c7
0.012 ETH
194327762024-03-14 10:52:4729 days ago1710413567
0xba1ac896...432e826c7
3.17 ETH
194296652024-03-14 0:22:1129 days ago1710375731
0xba1ac896...432e826c7
0.5 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

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.