ETH Price: $3,244.29 (+1.93%)

Contract

0x02Bd4A3b1b95b01F2Aa61655415A5d3EAAcaafdD
 

Overview

ETH Balance

0.0249378766 ETH

Eth Value

$80.91 (@ $3,244.29/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw213075392024-12-01 12:04:2344 days ago1733054663IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000886119
Withdraw212988352024-11-30 6:54:4746 days ago1732949687IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000659568.10470041
Withdraw212904482024-11-29 2:43:1147 days ago1732848191IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000590746
Change Delegatio...211468712024-11-09 1:40:5967 days ago1731116459IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.001037289.03118077
Withdraw211458662024-11-08 22:19:3567 days ago1731104375IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.0010640910.80509651
Withdraw209037672024-10-06 3:17:11101 days ago1728184631IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000399844.06008668
Withdraw209036622024-10-06 2:56:11101 days ago1728183371IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000487525.99070034
Withdraw208368602024-09-26 19:23:35110 days ago1727378615IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.0060257361.18673533
Withdraw206297802024-08-28 21:29:47139 days ago1724880587IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000116191.17984537
Withdraw206269392024-08-28 11:58:35139 days ago1724846315IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.00011791.19726828
Change Delegatio...204675012024-08-06 5:40:59162 days ago1722922859IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000623296.37607025
Deposit204674972024-08-06 5:40:11162 days ago1722922811IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000536716.7236955
Deposit204216282024-07-30 20:02:59168 days ago1722369779IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000651628.16331754
Change Delegatio...204215912024-07-30 19:55:35168 days ago1722369335IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.001069048.25507546
Change Delegatio...204174732024-07-30 6:04:23169 days ago1722319463IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000210732.15569889
Withdraw203883632024-07-26 4:34:35173 days ago1721968475IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000229732.33281081
Withdraw203743292024-07-24 5:31:47175 days ago1721799107IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000252392.56323949
Withdraw203717572024-07-23 20:55:11175 days ago1721768111IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000501455.09184775
Withdraw203717292024-07-23 20:49:35175 days ago1721767775IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000533995.42229275
Withdraw203717162024-07-23 20:46:59175 days ago1721767619IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000458364.65432779
Withdraw203716882024-07-23 20:41:23175 days ago1721767283IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000438224.44980096
Withdraw203716752024-07-23 20:38:47175 days ago1721767127IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000473324.8062438
Withdraw203716632024-07-23 20:36:23175 days ago1721766983IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000481914.89349849
Withdraw203716412024-07-23 20:31:59175 days ago1721766719IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000484054.91584337
Withdraw203716012024-07-23 20:23:59175 days ago1721766239IN
0x02Bd4A3b...EAAcaafdD
0 ETH0.000524795.32886543
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
213075392024-12-01 12:04:2344 days ago1733054663
0x02Bd4A3b...EAAcaafdD
0 ETH
213075392024-12-01 12:04:2344 days ago1733054663
0x02Bd4A3b...EAAcaafdD
0 ETH
212988352024-11-30 6:54:4746 days ago1732949687
0x02Bd4A3b...EAAcaafdD
0 ETH
212988352024-11-30 6:54:4746 days ago1732949687
0x02Bd4A3b...EAAcaafdD
0 ETH
212904482024-11-29 2:43:1147 days ago1732848191
0x02Bd4A3b...EAAcaafdD
0 ETH
212904482024-11-29 2:43:1147 days ago1732848191
0x02Bd4A3b...EAAcaafdD
0 ETH
211468712024-11-09 1:40:5967 days ago1731116459
0x02Bd4A3b...EAAcaafdD
0 ETH
211458662024-11-08 22:19:3567 days ago1731104375
0x02Bd4A3b...EAAcaafdD
0 ETH
211458662024-11-08 22:19:3567 days ago1731104375
0x02Bd4A3b...EAAcaafdD
0 ETH
210849282024-10-31 10:10:1175 days ago1730369411
0x02Bd4A3b...EAAcaafdD
0 ETH
210849282024-10-31 10:10:1175 days ago1730369411
0x02Bd4A3b...EAAcaafdD
0 ETH
210849252024-10-31 10:09:3575 days ago1730369375
0x02Bd4A3b...EAAcaafdD
0 ETH
210849252024-10-31 10:09:3575 days ago1730369375
0x02Bd4A3b...EAAcaafdD
0 ETH
210794032024-10-30 15:40:1176 days ago1730302811
0x02Bd4A3b...EAAcaafdD
0 ETH
210794032024-10-30 15:40:1176 days ago1730302811
0x02Bd4A3b...EAAcaafdD
0 ETH
210793992024-10-30 15:39:2376 days ago1730302763
0x02Bd4A3b...EAAcaafdD
0 ETH
210793992024-10-30 15:39:2376 days ago1730302763
0x02Bd4A3b...EAAcaafdD
0 ETH
210647722024-10-28 14:37:2378 days ago1730126243
0x02Bd4A3b...EAAcaafdD
0 ETH
210647722024-10-28 14:37:2378 days ago1730126243
0x02Bd4A3b...EAAcaafdD
0 ETH
210647662024-10-28 14:36:1178 days ago1730126171
0x02Bd4A3b...EAAcaafdD
0 ETH
210647662024-10-28 14:36:1178 days ago1730126171
0x02Bd4A3b...EAAcaafdD
0 ETH
210642132024-10-28 12:44:3578 days ago1730119475
0x02Bd4A3b...EAAcaafdD
0 ETH
210642132024-10-28 12:44:3578 days ago1730119475
0x02Bd4A3b...EAAcaafdD
0 ETH
210642102024-10-28 12:43:5978 days ago1730119439
0x02Bd4A3b...EAAcaafdD
0 ETH
210642102024-10-28 12:43:5978 days ago1730119439
0x02Bd4A3b...EAAcaafdD
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SimpleProxy

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 1 : simpleProxy.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.3;

contract SimpleProxy {
    // This contract splits the storage of a contract from its logic, it will
    // call an implementation contract via delegatecall. That implementation
    // changes what is stored in this contract, by changing the implementation
    // address this contract effectively has different logic.

    // NOTE - Functions 'upgradeProxy', 'resetProxyOwner', 'proxyImplementation' and 'proxyGovernance'
    // are occupied namespace and cannot be used in implementation contracts. In a very unlikely
    // edge case a 4 bit hash collision between function selectors could block other function names.

    // The implementation contains the logic for this proxy, it for security reasons
    // should not assume only this contract can call it.
    // NOTE - It's insecure in implementation proxies to use the default storage layout since
    //        it is possible to overwrite this address. Use Storage.sol for storage.
    address public proxyImplementation;
    // The address which can upgrade this contract
    address public proxyGovernance;

    /// @notice Sets up the authorizable library for the proxy
    /// @param _governance An address which will be authorized to change the implementation
    ///                    it will also be set at the owner of this contract.
    /// @param _firstImplementation The first implementation address
    constructor(address _governance, address _firstImplementation) {
        // Set governance
        proxyGovernance = _governance;
        // Set the first implementation
        proxyImplementation = _firstImplementation;
    }

    /// @notice Allows authorized addresses to change the implementation
    /// @param _newImplementation The new implementation address
    function upgradeProxy(address _newImplementation) external {
        require(msg.sender == proxyGovernance, "unauthorized");
        proxyImplementation = _newImplementation;
    }

    /// @notice Sets the address which can upgrade this proxy, only callable
    ///         by the current address which can upgrade this proxy.
    /// @param _newGovernance The new governance address
    function resetProxyOwner(address _newGovernance) external {
        require(msg.sender == proxyGovernance, "unauthorized");
        proxyGovernance = _newGovernance;
    }

    /// @notice The fallback is the routing function for the proxy and uses delegatecall
    ///         to forward any calls which are made to this address to be executed by the
    ///         logic contract.
    /// @dev WARNING - We don't do extcode size checks like high level solidity if the
    ///                implementation has 0 bytecode this will succeed but do nothing.
    fallback() external payable {
        assembly {
            let calldataLength := calldatasize()

            // equivalent to receive() external payable {}
            if iszero(calldataLength) {
                return(0, 0)
            }

            // We load the free memory pointer
            // Note - We technically don't need to do this because the whole call is
            // in assembly but it's good practice to match solidity's memory management
            let ptr := mload(0x40)
            // Copy the calldata into memory
            calldatacopy(
                // The position in memory this copies to
                ptr,
                // The calldata index this copies from
                0,
                // The number of bytes to copy
                calldataLength
            )
            // Move the free memory pointer
            mstore(0x40, add(ptr, calldataLength))
            // Load the implementation address
            let implementation := sload(proxyImplementation.slot)
            // It's very unlikely any extra data got loaded but we clean anyway
            implementation := and(
                implementation,
                0x000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
            )
            // Now we make the delegatecall
            let success := delegatecall(
                // The gas param
                gas(),
                // The address
                implementation,
                // The memory location of the input data
                ptr,
                // The input size
                calldataLength,
                // The output memory pointer and size, we use the return data instead
                0,
                0
            )
            // Load our new free memory pointer
            ptr := mload(0x40)
            // Load the return data size
            let returndataLength := returndatasize()
            // Copy the return data
            returndatacopy(
                // Memory location of the output
                ptr,
                // Memory location of the input
                0,
                // Length of the input
                returndataLength
            )
            // If the call was not successful we revert
            if iszero(success) {
                revert(ptr, returndataLength)
            }

            // If the call was successful we return
            return(ptr, returndataLength)
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_governance","type":"address"},{"internalType":"address","name":"_firstImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"proxyGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newGovernance","type":"address"}],"name":"resetProxyOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"name":"upgradeProxy","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161041938038061041983398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100ae565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008e578182fd5b61009783610060565b91506100a560208401610060565b90509250929050565b61035c806100bd6000396000f3fe60806040526004361061003f5760003560e01c80630c870f911461009157806374474d28146100e75780638c1e1df014610109578063c01cc4d114610136575b368061004757005b60405181600082378082016040526000805473ffffffffffffffffffffffffffffffffffffffff1690808484845af492505060405190503d806000833e8261008d578082fd5b8082f35b34801561009d57600080fd5b506000546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f357600080fd5b506101076101023660046102eb565b610156565b005b34801561011557600080fd5b506001546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561014257600080fd5b506101076101513660046102eb565b610223565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064016101d3565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000602082840312156102fc578081fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461031f578182fd5b939250505056fea264697066735822122085c8a937beb2e974e16b76a0f97938c627506f8725bfbb4cf2f5fa35963f5e1e64736f6c63430008030033000000000000000000000000422494292e7a9dda8778bb4ea05c2779a3d60f5d0000000000000000000000006f51da68446e568fe24be166917a99d4da7ee1d0

Deployed Bytecode

0x60806040526004361061003f5760003560e01c80630c870f911461009157806374474d28146100e75780638c1e1df014610109578063c01cc4d114610136575b368061004757005b60405181600082378082016040526000805473ffffffffffffffffffffffffffffffffffffffff1690808484845af492505060405190503d806000833e8261008d578082fd5b8082f35b34801561009d57600080fd5b506000546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f357600080fd5b506101076101023660046102eb565b610156565b005b34801561011557600080fd5b506001546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561014257600080fd5b506101076101513660046102eb565b610223565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064016101d3565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000602082840312156102fc578081fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461031f578182fd5b939250505056fea264697066735822122085c8a937beb2e974e16b76a0f97938c627506f8725bfbb4cf2f5fa35963f5e1e64736f6c63430008030033

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

000000000000000000000000422494292e7a9dda8778bb4ea05c2779a3d60f5d0000000000000000000000006f51da68446e568fe24be166917a99d4da7ee1d0

-----Decoded View---------------
Arg [0] : _governance (address): 0x422494292e7a9Dda8778Bb4EA05C2779a3d60f5D
Arg [1] : _firstImplementation (address): 0x6f51dA68446E568fe24bE166917a99d4dA7ee1D0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000422494292e7a9dda8778bb4ea05c2779a3d60f5d
Arg [1] : 0000000000000000000000006f51da68446e568fe24be166917a99d4da7ee1d0


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  ]

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.