Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x78364cFd8E7081672A7380Ed8a6c2491d5ef1204
Balance 0 ETH
Nonce 1
Code Size 852 bytes
Indexed Transactions 11 (24,456,35324,456,414)
Gas Used (indexed) 744,210
External Etherscan · Sourcify

Contract Bytecode

852 bytes
0x60806040526004361061003f5760003560e01c8063025313a2146100835780633659cfe6146100b45780635c60da1b146100e9578063f1739cae146100fe575b6000610049610131565b90506001600160a01b03811661005e57600080fd5b60405136600082376000803683855af43d806000843e81801561007f578184f35b8184fd5b34801561008f57600080fd5b50610098610167565b604080516001600160a01b039092168252519081900360200190f35b3480156100c057600080fd5b506100e7600480360360208110156100d757600080fd5b50356001600160a01b0316610193565b005b3480156100f557600080fd5b50610098610131565b34801561010a57600080fd5b506100e76004803603602081101561012157600080fd5b50356001600160a01b03166101c4565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190205490565b604080517232b4b8189c9b1b97383937bc3c9730b236b4b760691b815290519081900360130190205490565b61019b610167565b6001600160a01b0316336001600160a01b0316146101b857600080fd5b6101c181610253565b50565b6101cc610167565b6001600160a01b0316336001600160a01b0316146101e957600080fd5b6001600160a01b0381166101fc57600080fd5b610205816102bf565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd961022e610167565b604080516001600160a01b03928316815291841660208301528051918290030190a150565b600061025d610131565b9050816001600160a01b0316816001600160a01b0316141561027e57600080fd5b610287826102ea565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b604080517232b4b8189c9b1b97383937bc3c9730b236b4b760691b8152905190819003601301902055565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190205556fea265627a7a7231582005538b77eed9c34249c95293604e62bb05cc8dde9b80f124f434e96f2c129e4264736f6c63430005100032

Verified Source Code Partial Match

Compiler: v0.5.16+commit.9c3226ce EVM: istanbul Optimization: Yes (200 runs)
OwnedUpgradeabilityProxy.sol 159 lines
pragma solidity ^0.5.0;


/**
 * @title Proxy
 * @dev Gives the possibility to delegate any call to a foreign implementation.
 */
contract Proxy {
    /**
    * @dev Fallback function allowing to perform a delegatecall to the given implementation.
    * This function will return whatever the implementation call returns
    */
    function () external payable {
        address _impl = implementation();
        require(_impl != address(0));

        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize)
            let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0)
            let size := returndatasize
            returndatacopy(ptr, 0, size)

            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }

    /**
    * @dev Tells the address of the implementation where every call will be delegated.
    * @return address of the implementation to which it will be delegated
    */
    function implementation() public view returns (address);
}

/**
 * @title UpgradeabilityProxy
 * @dev This contract represents a proxy where the implementation address to which it will delegate can be upgraded
 */
contract UpgradeabilityProxy is Proxy {
    /**
    * @dev This event will be emitted every time the implementation gets upgraded
    * @param implementation representing the address of the upgraded implementation
    */
    event Upgraded(address indexed implementation);

    // Storage position of the address of the current implementation
    bytes32 private constant IMPLEMENTATION_POSITION = keccak256("eip1967.proxy.implementation");

    /**
    * @dev Constructor function
    */
    constructor() public {}

    /**
    * @dev Tells the address of the current implementation
    * @return address of the current implementation
    */
    function implementation() public view returns (address impl) {
        bytes32 position = IMPLEMENTATION_POSITION;
        assembly {
            impl := sload(position)
        }
    }

    /**
    * @dev Sets the address of the current implementation
    * @param _newImplementation address representing the new implementation to be set
    */
    function _setImplementation(address _newImplementation) internal {
        bytes32 position = IMPLEMENTATION_POSITION;
        assembly {
            sstore(position, _newImplementation)
        }
    }

    /**
    * @dev Upgrades the implementation address
    * @param _newImplementation representing the address of the new implementation to be set
    */
    function _upgradeTo(address _newImplementation) internal {
        address currentImplementation = implementation();
        require(currentImplementation != _newImplementation);
        _setImplementation(_newImplementation);
        emit Upgraded(_newImplementation);
    }
}

/**
 * @title OwnedUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with basic authorization control functionalities
 */
contract OwnedUpgradeabilityProxy is UpgradeabilityProxy {
    /**
    * @dev Event to show ownership has been transferred
    * @param previousOwner representing the address of the previous owner
    * @param newOwner representing the address of the new owner
    */
    event ProxyOwnershipTransferred(address previousOwner, address newOwner);

    // Storage position of the owner of the contract
    bytes32 private constant PROXY_OWNER_POSITION = keccak256("eip1967.proxy.admin");

    /**
    * @dev the constructor sets the original owner of the contract to the sender account.
    */
    constructor(address _implementation) public {
        _setUpgradeabilityOwner(msg.sender);
        _upgradeTo(_implementation);
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyProxyOwner() {
        require(msg.sender == proxyOwner());
        _;
    }

    /**
    * @dev Tells the address of the owner
    * @return the address of the owner
    */
    function proxyOwner() public view returns (address owner) {
        bytes32 position = PROXY_OWNER_POSITION;
        assembly {
            owner := sload(position)
        }
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param _newOwner The address to transfer ownership to.
    */
    function transferProxyOwnership(address _newOwner) public onlyProxyOwner {
        require(_newOwner != address(0));
        _setUpgradeabilityOwner(_newOwner);
        emit ProxyOwnershipTransferred(proxyOwner(), _newOwner);
    }

    /**
    * @dev Allows the proxy owner to upgrade the current version of the proxy.
    * @param _implementation representing the address of the new implementation to be set.
    */
    function upgradeTo(address _implementation) public onlyProxyOwner {
        _upgradeTo(_implementation);
    }

    /**
     * @dev Sets the address of the owner
    */
    function _setUpgradeabilityOwner(address _newProxyOwner) internal {
        bytes32 position = PROXY_OWNER_POSITION;
        assembly {
            sstore(position, _newProxyOwner)
        }
    }
}

Read Contract

implementation 0x5c60da1b → address
proxyOwner 0x025313a2 → address

Write Contract 2 functions

These functions modify contract state and require a wallet transaction to execute.

transferProxyOwnership 0xf1739cae
address _newOwner
upgradeTo 0x3659cfe6
address _implementation

Top Interactions

AddressTxnsSentReceived
0xa4959e7b...3FE0 10 10

Recent Transactions

CSV View All 11 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0xb1c6055f...94bac7 safeTransferFrom 24,456,414 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0x83184547...cb9d45 safeTransferFrom 24,456,397 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0x83baa958...70999a safeTransferFrom 24,456,392 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0x3edca23e...460436 safeTransferFrom 24,456,388 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0xd842b034...add794 safeTransferFrom 24,456,386 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0xfce83c4b...eddbd5 safeTransferFrom 24,456,386 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0x17104a4c...02fc43 safeTransferFrom 24,456,373 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0x3ab68a05...e243e9 safeTransferFrom 24,456,362 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0x41a4bfcf...e3c6f5 safeTransferFrom 24,456,362 IN 0xa4959e7b...3FE0 0 ETH EIP-1559
0xda3a66c5...b709dd safeTransferFrom 24,456,353 IN 0xa4959e7b...3FE0 0 ETH EIP-1559