ETH Price: $2,310.24 (+3.32%)

Contract

0xB378C842521698720b45239D3F7317a46191A2F1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve243189662026-01-26 12:20:3549 days ago1769430035IN
0xB378C842...46191A2F1
0 ETH0.000004620.15877679
Approve220741712025-03-18 13:50:47363 days ago1742305847IN
0xB378C842...46191A2F1
0 ETH0.00007021.36483767
Approve210071762024-10-20 13:45:35512 days ago1729431935IN
0xB378C842...46191A2F1
0 ETH0.0003644512.50177923
Approve200274042024-06-05 18:25:23649 days ago1717611923IN
0xB378C842...46191A2F1
0 ETH0.0011355222.07654017
Approve198364062024-05-10 1:36:59676 days ago1715305019IN
0xB378C842...46191A2F1
0 ETH0.000208254.0725129
Approve196726602024-04-17 3:58:59698 days ago1713326339IN
0xB378C842...46191A2F1
0 ETH0.000359146.98230951
Approve194667892024-03-19 5:43:23727 days ago1710827003IN
0xB378C842...46191A2F1
0 ETH0.0012611624.65723381
Approve192972462024-02-24 11:47:59751 days ago1708775279IN
0xB378C842...46191A2F1
0 ETH0.0010850821.21470253
Claim_rewards192972352024-02-24 11:45:47751 days ago1708775147IN
0xB378C842...46191A2F1
0 ETH0.0026884722.68854949
Approve192544252024-02-18 11:34:35757 days ago1708256075IN
0xB378C842...46191A2F1
0 ETH0.0010551620.51411873
Approve189140842024-01-01 17:31:47805 days ago1704130307IN
0xB378C842...46191A2F1
0 ETH0.0008163515.87121266
Approve189092232024-01-01 1:06:59806 days ago1704071219IN
0xB378C842...46191A2F1
0 ETH0.000654612.72666292
Approve189086942023-12-31 23:19:59806 days ago1704064799IN
0xB378C842...46191A2F1
0 ETH0.0006042611.81407292
Claim_rewards185799682023-11-15 21:28:11852 days ago1700083691IN
0xB378C842...46191A2F1
0 ETH0.0028643237.03166181
Approve185799612023-11-15 21:26:47852 days ago1700083607IN
0xB378C842...46191A2F1
0 ETH0.0018295835.57017263
Claim_rewards185760612023-11-15 8:19:47852 days ago1700036387IN
0xB378C842...46191A2F1
0 ETH0.0019249524.88699336
Approve185760482023-11-15 8:17:11852 days ago1700036231IN
0xB378C842...46191A2F1
0 ETH0.001309225.45300879
Approve185434262023-11-10 18:47:23857 days ago1699642043IN
0xB378C842...46191A2F1
0 ETH0.002571850
Approve185389492023-11-10 3:46:23858 days ago1699587983IN
0xB378C842...46191A2F1
0 ETH0.00200639
Approve185289882023-11-08 18:20:35859 days ago1699467635IN
0xB378C842...46191A2F1
0 ETH0.0028508655.42539531
Claim_rewards185289812023-11-08 18:19:11859 days ago1699467551IN
0xB378C842...46191A2F1
0 ETH0.0067522356.98329107
Approve185230942023-11-07 22:34:11860 days ago1699396451IN
0xB378C842...46191A2F1
0 ETH0.0013373926.00118794
Claim_rewards185186272023-11-07 7:36:35860 days ago1699342595IN
0xB378C842...46191A2F1
0 ETH0.0031186823
Approve185123172023-11-06 10:22:11861 days ago1699266131IN
0xB378C842...46191A2F1
0 ETH0.0011830223
Approve185076882023-11-05 18:48:23862 days ago1699210103IN
0xB378C842...46191A2F1
0 ETH0.0011146621.79295381
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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

Contract Name:
EIP173Proxy

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.7;

import "./Proxy.sol";

interface ERC165 {
    function supportsInterface(bytes4 id) external view returns (bool);
}

///@notice Proxy implementing EIP173 for ownership management
contract EIP173Proxy is Proxy {
    // ////////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////

    event ProxyAdminTransferred(
        address indexed previousAdmin,
        address indexed newAdmin
    );

    // /////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////////////

    constructor(
        address implementationAddress,
        address adminAddress,
        bytes memory data
    ) payable {
        _setImplementation(implementationAddress, data);
        _setProxyAdmin(adminAddress);
    }

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

    function proxyAdmin() external view returns (address) {
        return _proxyAdmin();
    }

    function supportsInterface(bytes4 id) external view returns (bool) {
        if (id == 0x01ffc9a7 || id == 0x7f5828d0) {
            return true;
        }
        if (id == 0xFFFFFFFF) {
            return false;
        }

        ERC165 implementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            implementation := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
        }

        // Technically this is not standard compliant as ERC-165 require 30,000 gas which that call cannot ensure
        // because it is itself inside `supportsInterface` that might only get 30,000 gas.
        // In practise this is unlikely to be an issue.
        try implementation.supportsInterface(id) returns (bool support) {
            return support;
        } catch {
            return false;
        }
    }

    function transferProxyAdmin(address newAdmin) external onlyProxyAdmin {
        _setProxyAdmin(newAdmin);
    }

    function upgradeTo(address newImplementation) external onlyProxyAdmin {
        _setImplementation(newImplementation, "");
    }

    function upgradeToAndCall(address newImplementation, bytes calldata data)
        external
        payable
        onlyProxyAdmin
    {
        _setImplementation(newImplementation, data);
    }

    // /////////////////////// MODIFIERS ////////////////////////////////////////////////////////////////////////

    modifier onlyProxyAdmin() {
        require(msg.sender == _proxyAdmin(), "NOT_AUTHORIZED");
        _;
    }

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

    function _proxyAdmin() internal view returns (address adminAddress) {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            adminAddress := sload(
                0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
            )
        }
    }

    function _setProxyAdmin(address newAdmin) internal {
        address previousAdmin = _proxyAdmin();
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(
                0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103,
                newAdmin
            )
        }
        emit ProxyAdminTransferred(previousAdmin, newAdmin);
    }
}

// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.7;

// EIP-1967
abstract contract Proxy {
    // /////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////////

    event ProxyImplementationUpdated(
        address indexed previousImplementation,
        address indexed newImplementation
    );

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

    // prettier-ignore
    receive() external payable virtual {
        revert("ETHER_REJECTED"); // explicit reject by default
    }

    fallback() external payable {
        _fallback();
    }

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

    function _fallback() internal {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            let implementationAddress := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                gas(),
                implementationAddress,
                0x0,
                calldatasize(),
                0,
                0
            )
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
            case 0 {
                revert(0, retSz)
            }
            default {
                return(0, retSz)
            }
        }
    }

    function _setImplementation(address newImplementation, bytes memory data)
        internal
    {
        address previousImplementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            previousImplementation := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
        }

        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc,
                newImplementation
            )
        }

        emit ProxyImplementationUpdated(
            previousImplementation,
            newImplementation
        );

        if (data.length > 0) {
            (bool success, ) = newImplementation.delegatecall(data);
            if (!success) {
                assembly {
                    // This assembly ensure the revert contains the exact string data
                    let returnDataSize := returndatasize()
                    returndatacopy(0, 0, returnDataSize)
                    revert(0, returnDataSize)
                }
            }
        }
    }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"ProxyAdminTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ProxyImplementationUpdated","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"proxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

0x6080604052604051620009f2380380620009f2833981016040819052610024916101a8565b61002e838261003f565b6100378261011b565b5050506102d6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a3815115610116576000836001600160a01b0316836040516100c09190610278565b600060405180830381855af49150503d80600081146100fb576040519150601f19603f3d011682016040523d82523d6000602084013e610100565b606091505b5050905080610114573d806000803e806000fd5b505b505050565b6000610134600080516020620009d28339815191525490565b905081600080516020620009d283398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80516001600160a01b03811681146101a357600080fd5b919050565b6000806000606084860312156101bd57600080fd5b6101c68461018c565b92506101d46020850161018c565b60408501519092506001600160401b03808211156101f157600080fd5b818601915086601f83011261020557600080fd5b815181811115610217576102176102c0565b604051601f8201601f19908116603f0116810190838211818310171561023f5761023f6102c0565b8160405282815289602084870101111561025857600080fd5b610269836020830160208801610294565b80955050505050509250925092565b6000825161028a818460208701610294565b9190910192915050565b60005b838110156102af578181015183820152602001610297565b838111156101145750506000910152565b634e487b7160e01b600052604160045260246000fd5b6106ec80620002e66000396000f3fe60806040526004361061004e5760003560e01c806301ffc9a71461009b5780633659cfe6146100d05780633e47158c146100f05780634f1ef2861461011d5780638356ca4f1461013057610091565b366100915760405162461bcd60e51b815260206004820152600e60248201526d115512115497d491529150d5115160921b60448201526064015b60405180910390fd5b610099610150565b005b3480156100a757600080fd5b506100bb6100b6366004610609565b61019b565b60405190151581526020015b60405180910390f35b3480156100dc57600080fd5b506100996100eb366004610549565b6102a2565b3480156100fc57600080fd5b506101056102fe565b6040516001600160a01b0390911681526020016100c7565b61009961012b366004610564565b61031b565b34801561013c57600080fd5b5061009961014b366004610549565b6103a0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610191578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b0319831614806101cc57506307f5828d60e41b6001600160e01b03198316145b156101d957506001919050565b6001600160e01b031980831614156101f357506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b15801561025e57600080fd5b505afa92505050801561028e575060408051601f3d908101601f1916820190925261028b918101906105e7565b60015b61029b5750600092915050565b9392505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146102e25760405162461bcd60e51b81526004016100889061066e565b6102fb81604051806020016040528060008152506103e9565b50565b60006103166000805160206106978339815191525490565b905090565b600080516020610697833981519152546001600160a01b0316336001600160a01b03161461035b5760405162461bcd60e51b81526004016100889061066e565b61039b8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103e992505050565b505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146103e05760405162461bcd60e51b81526004016100889061066e565b6102fb816104be565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511561039b576000836001600160a01b03168360405161046a9190610633565b600060405180830381855af49150503d80600081146104a5576040519150601f19603f3d011682016040523d82523d6000602084013e6104aa565b606091505b5050905080610195573d806000803e806000fd5b60006104d66000805160206106978339815191525490565b90508160008051602061069783398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80356001600160a01b038116811461054457600080fd5b919050565b60006020828403121561055b57600080fd5b61029b8261052d565b60008060006040848603121561057957600080fd5b6105828461052d565b9250602084013567ffffffffffffffff8082111561059f57600080fd5b818601915086601f8301126105b357600080fd5b8135818111156105c257600080fd5b8760208285010111156105d457600080fd5b6020830194508093505050509250925092565b6000602082840312156105f957600080fd5b8151801515811461029b57600080fd5b60006020828403121561061b57600080fd5b81356001600160e01b03198116811461029b57600080fd5b6000825160005b81811015610654576020818601810151858301520161063a565b81811115610663576000828501525b509190910192915050565b6020808252600e908201526d1393d517d055551213d49256915160921b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a26469706673582212201cbd2f29930decd2c6b4995a7ebce696b9e6fcddc9b171f6268877f44f2595cf64736f6c63430008070033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000ddda52773510b3c8dc9fd70259fe9fcac54dfed00000000000000000000000005108ef86cf493905bcd35a3736e4b46decd7de58000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4cc2a9a5b000000000000000000000000da4ba24a371aee34f0677cd1635bb430340fd0550000000000000000000000005108ef86cf493905bcd35a3736e4b46decd7de58000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd520000000000000000000000005f3b5dfeb7b28cdbd7faba78963ee202a494e2a20000000000000000000000008e0c00ed546602fd9927df742bbabf726d5b0d160000000000000000000000005108ef86cf493905bcd35a3736e4b46decd7de5800000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061004e5760003560e01c806301ffc9a71461009b5780633659cfe6146100d05780633e47158c146100f05780634f1ef2861461011d5780638356ca4f1461013057610091565b366100915760405162461bcd60e51b815260206004820152600e60248201526d115512115497d491529150d5115160921b60448201526064015b60405180910390fd5b610099610150565b005b3480156100a757600080fd5b506100bb6100b6366004610609565b61019b565b60405190151581526020015b60405180910390f35b3480156100dc57600080fd5b506100996100eb366004610549565b6102a2565b3480156100fc57600080fd5b506101056102fe565b6040516001600160a01b0390911681526020016100c7565b61009961012b366004610564565b61031b565b34801561013c57600080fd5b5061009961014b366004610549565b6103a0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610191578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b0319831614806101cc57506307f5828d60e41b6001600160e01b03198316145b156101d957506001919050565b6001600160e01b031980831614156101f357506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b15801561025e57600080fd5b505afa92505050801561028e575060408051601f3d908101601f1916820190925261028b918101906105e7565b60015b61029b5750600092915050565b9392505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146102e25760405162461bcd60e51b81526004016100889061066e565b6102fb81604051806020016040528060008152506103e9565b50565b60006103166000805160206106978339815191525490565b905090565b600080516020610697833981519152546001600160a01b0316336001600160a01b03161461035b5760405162461bcd60e51b81526004016100889061066e565b61039b8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103e992505050565b505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146103e05760405162461bcd60e51b81526004016100889061066e565b6102fb816104be565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511561039b576000836001600160a01b03168360405161046a9190610633565b600060405180830381855af49150503d80600081146104a5576040519150601f19603f3d011682016040523d82523d6000602084013e6104aa565b606091505b5050905080610195573d806000803e806000fd5b60006104d66000805160206106978339815191525490565b90508160008051602061069783398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80356001600160a01b038116811461054457600080fd5b919050565b60006020828403121561055b57600080fd5b61029b8261052d565b60008060006040848603121561057957600080fd5b6105828461052d565b9250602084013567ffffffffffffffff8082111561059f57600080fd5b818601915086601f8301126105b357600080fd5b8135818111156105c257600080fd5b8760208285010111156105d457600080fd5b6020830194508093505050509250925092565b6000602082840312156105f957600080fd5b8151801515811461029b57600080fd5b60006020828403121561061b57600080fd5b81356001600160e01b03198116811461029b57600080fd5b6000825160005b81811015610654576020818601810151858301520161063a565b81811115610663576000828501525b509190910192915050565b6020808252600e908201526d1393d517d055551213d49256915160921b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a26469706673582212201cbd2f29930decd2c6b4995a7ebce696b9e6fcddc9b171f6268877f44f2595cf64736f6c63430008070033

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