ETH Price: $2,416.62 (-0.04%)

Contract

0xeFe0471EE21D1Bea1166938fb5F00b8df8263B25
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...126545202021-06-17 22:01:081206 days ago1623967268IN
0xeFe0471E...df8263B25
0 ETH0.0013787140.1
Update Admin Par...126544972021-06-17 21:56:271206 days ago1623966987IN
0xeFe0471E...df8263B25
0 ETH0.0020145750.1
Executive Rebala...126544702021-06-17 21:51:111206 days ago1623966671IN
0xeFe0471E...df8263B25
0 ETH0.0069778720.1
Executive Rebala...126544472021-06-17 21:47:011206 days ago1623966421IN
0xeFe0471E...df8263B25
0 ETH0.0128885840.1
Update Admin Par...126544132021-06-17 21:40:011206 days ago1623966001IN
0xeFe0471E...df8263B25
0 ETH0.0016124640.1
Update Admin Par...126544042021-06-17 21:36:481206 days ago1623965808IN
0xeFe0471E...df8263B25
0 ETH0.0016124640.1
Executive Rebala...126543622021-06-17 21:28:321206 days ago1623965312IN
0xeFe0471E...df8263B25
0 ETH0.0125647740.1
Update Admin Par...126543572021-06-17 21:27:181206 days ago1623965238IN
0xeFe0471E...df8263B25
0 ETH0.0012103530.1
Transfer Proxy A...126460002021-06-16 14:22:291207 days ago1623853349IN
0xeFe0471E...df8263B25
0 ETH0.0005706620
Transfer Ownersh...126459902021-06-16 14:19:111207 days ago1623853151IN
0xeFe0471E...df8263B25
0 ETH0.0006188718
Update Admin Par...126459602021-06-16 14:12:151207 days ago1623852735IN
0xeFe0471E...df8263B25
0 ETH0.0007315917
Initialize126422912021-06-16 0:23:401208 days ago1623803020IN
0xeFe0471E...df8263B25
0 ETH0.0003990413
Initialize126421142021-06-15 23:42:321208 days ago1623800552IN
0xeFe0471E...df8263B25
0 ETH0.0010536611
0x60806040126420792021-06-15 23:34:161208 days ago1623800056IN
 Contract Creation
0 ETH0.0057093112

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Contract Name:
EIP173ProxyWithReceive

Compiler Version
v0.7.3+commit.9bfce1f6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 3 : EIP173ProxyWithReceive.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.7.0;

import "./EIP173Proxy.sol";

///@notice Proxy implementing EIP173 for ownership management that accept ETH via receive
contract EIP173ProxyWithReceive is EIP173Proxy {
    constructor(
        address implementationAddress,
        address ownerAddress,
        bytes memory data
    ) payable EIP173Proxy(implementationAddress, ownerAddress, data) {}

    receive() external payable override {}
}

File 2 of 3 : EIP173Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.7.0;

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);
    }
}

File 3 of 3 : Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.7.0;

// 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": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"ownerAddress","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"}]

Deployed Bytecode

0x60806040526004361061004e5760003560e01c806301ffc9a71461005f5780633659cfe6146100a75780633e47158c146100da5780634f1ef2861461010b5780638356ca4f1461018b57610055565b3661005557005b61005d6101be565b005b34801561006b57600080fd5b506100936004803603602081101561008257600080fd5b50356001600160e01b031916610209565b604080519115158252519081900360200190f35b3480156100b357600080fd5b5061005d600480360360208110156100ca57600080fd5b50356001600160a01b0316610314565b3480156100e657600080fd5b506100ef61038e565b604080516001600160a01b039092168252519081900360200190f35b61005d6004803603604081101561012157600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561014c57600080fd5b82018360208201111561015e57600080fd5b8035906020019184600183028401116401000000008311171561018057600080fd5b50909250905061039d565b34801561019757600080fd5b5061005d600480360360208110156101ae57600080fd5b50356001600160a01b0316610440565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e8280156101ff578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b03198316148061023a57506307f5828d60e41b6001600160e01b03198316145b156102475750600161030f565b6001600160e01b031980831614156102615750600061030f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54604080516301ffc9a760e01b81526001600160e01b03198516600482015290516001600160a01b038316916301ffc9a7916024808301926020929190829003018186803b1580156102d357600080fd5b505afa9250505080156102f857506040513d60208110156102f357600080fd5b505160015b61030657600091505061030f565b915061030f9050565b919050565b61031c6104a7565b6001600160a01b0316336001600160a01b031614610372576040805162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015290519081900360640190fd5b61038b81604051806020016040528060008152506104cc565b50565b60006103986104a7565b905090565b6103a56104a7565b6001600160a01b0316336001600160a01b0316146103fb576040805162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015290519081900360640190fd5b61043b8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104cc92505050565b505050565b6104486104a7565b6001600160a01b0316336001600160a01b03161461049e576040805162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015290519081900360640190fd5b61038b816105e8565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511561043b576000836001600160a01b0316836040518082805190602001908083835b6020831061056f5780518252601f199092019160209182019101610550565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146105cf576040519150601f19603f3d011682016040523d82523d6000602084013e6105d4565b606091505b5050905080610203573d806000803e806000fd5b60006105f26104a7565b9050817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a3505056fea2646970667358221220d7c915af52b08af2fc0e24ecf4c8bfd2c2c07f7167ad2d8ec8c0774779e3097e64736f6c63430007030033

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.