Goerli Testnet

Contract

0x4e1ED4ecCaf6a56E8dA95CBB3D2c5aa298d43913
Transaction Hash
Method
Block
From
To
Value
Sync Blocks93363742023-07-13 1:45:2474 days 19 hrs ago1689212724IN
0x4e1ED4...98d43913
0 ETH0.000143343.00555124
Receive Synchron...93363592023-07-13 1:41:3674 days 19 hrs ago1689212496IN
0x4e1ED4...98d43913
0 ETH0.000185343.00481696
0x108e709f93361042023-07-13 0:38:0074 days 20 hrs ago1689208680IN
0x4e1ED4...98d43913
0.1 ETH0.000049941.50853892
0x108e709f93360372023-07-13 0:22:1274 days 20 hrs ago1689207732IN
0x4e1ED4...98d43913
0.01 ETH0.000050031.51130235
0x108e709f93360342023-07-13 0:21:2474 days 20 hrs ago1689207684IN
0x4e1ED4...98d43913
0.01 ETH0.000066562.01041511
Accept ERC2093357572023-07-12 23:11:3674 days 21 hrs ago1689203496IN
0x4e1ED4...98d43913
0 ETH0.000353593.13493313
Sync Blocks93355882023-07-12 22:33:1274 days 22 hrs ago1689201192IN
0x4e1ED4...98d43913
0 ETH0.000161693.39042063
Receive Synchron...93355722023-07-12 22:29:3674 days 22 hrs ago1689200976IN
0x4e1ED4...98d43913
0 ETH0.000216993.51797113
0x108e709f93353022023-07-12 21:24:1274 days 23 hrs ago1689197052IN
0x4e1ED4...98d43913
0.01 ETH0.00006622.00036271
Deposit ERC2093351692023-07-12 20:50:3675 days 9 mins ago1689195036IN
0x4e1ED4...98d43913
0 ETH0.000182422.04983435
0x108e709f93348772023-07-12 19:36:4875 days 1 hr ago1689190608IN
0x4e1ED4...98d43913
0.001 ETH0.000069372.09550753
Sync Blocks93348212023-07-12 19:21:3675 days 1 hr ago1689189696IN
0x4e1ED4...98d43913
0 ETH0.000177293.71745804
Receive Synchron...93348072023-07-12 19:17:4875 days 1 hr ago1689189468IN
0x4e1ED4...98d43913
0 ETH0.000229443.71976565
0x108e709f93341572023-07-12 16:26:4875 days 4 hrs ago1689179208IN
0x4e1ED4...98d43913
0.0001 ETH0.000071422.15745918
Sync Blocks93341272023-07-12 16:18:1275 days 4 hrs ago1689178692IN
0x4e1ED4...98d43913
0 ETH0.000165553.4711886
Receive Synchron...93341132023-07-12 16:14:3675 days 4 hrs ago1689178476IN
0x4e1ED4...98d43913
0 ETH0.000203243.29502348
Sync Blocks93334192023-07-12 13:08:1275 days 7 hrs ago1689167292IN
0x4e1ED4...98d43913
0 ETH0.0004885610.24401095
Receive Synchron...93334012023-07-12 13:04:0075 days 7 hrs ago1689167040IN
0x4e1ED4...98d43913
0 ETH0.0010784117.48353512
Deposit ERC2093331802023-07-12 12:03:4875 days 8 hrs ago1689163428IN
0x4e1ED4...98d43913
0 ETH0.000303053.41037749
Accept ERC2093330092023-07-12 11:15:2475 days 9 hrs ago1689160524IN
0x4e1ED4...98d43913
0 ETH0.000565495.90948393
Deposit ERC2093329752023-07-12 11:05:3675 days 9 hrs ago1689159936IN
0x4e1ED4...98d43913
0 ETH0.00040044.06650411
Sync Blocks93327302023-07-12 10:00:1275 days 10 hrs ago1689156012IN
0x4e1ED4...98d43913
0 ETH0.000176213.69478722
Receive Synchron...93327082023-07-12 9:55:0075 days 11 hrs ago1689155700IN
0x4e1ED4...98d43913
0 ETH0.000228183.69938236
0x108e709f93326082023-07-12 9:29:0075 days 11 hrs ago1689154140IN
0x4e1ED4...98d43913
1 ETH0.000063211.90945574
0x108e709f93326052023-07-12 9:28:1275 days 11 hrs ago1689154092IN
0x4e1ED4...98d43913
1 ETH0.000062671.89305698
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
93363742023-07-13 1:45:2474 days 19 hrs ago1689212724
0x4e1ED4...98d43913
0 ETH
93363742023-07-13 1:45:2474 days 19 hrs ago1689212724
0x4e1ED4...98d43913
0 ETH
93363592023-07-13 1:41:3674 days 19 hrs ago1689212496
0x4e1ED4...98d43913
0 ETH
93363592023-07-13 1:41:3674 days 19 hrs ago1689212496
0x4e1ED4...98d43913
0 ETH
93361042023-07-13 0:38:0074 days 20 hrs ago1689208680
0x4e1ED4...98d43913
0.1 ETH
93361042023-07-13 0:38:0074 days 20 hrs ago1689208680
0x4e1ED4...98d43913
0.1 ETH
93360372023-07-13 0:22:1274 days 20 hrs ago1689207732
0x4e1ED4...98d43913
0.01 ETH
93360372023-07-13 0:22:1274 days 20 hrs ago1689207732
0x4e1ED4...98d43913
0.01 ETH
93360342023-07-13 0:21:2474 days 20 hrs ago1689207684
0x4e1ED4...98d43913
0.01 ETH
93360342023-07-13 0:21:2474 days 20 hrs ago1689207684
0x4e1ED4...98d43913
0.01 ETH
93357572023-07-12 23:11:3674 days 21 hrs ago1689203496
0x4e1ED4...98d43913
0 ETH
93357572023-07-12 23:11:3674 days 21 hrs ago1689203496
0x4e1ED4...98d43913
0 ETH
93357572023-07-12 23:11:3674 days 21 hrs ago1689203496
0x4e1ED4...98d43913
0 ETH
93357572023-07-12 23:11:3674 days 21 hrs ago1689203496
0x4e1ED4...98d43913
0 ETH
93357572023-07-12 23:11:3674 days 21 hrs ago1689203496
0x4e1ED4...98d43913
0 ETH
93357572023-07-12 23:11:3674 days 21 hrs ago1689203496
0x4e1ED4...98d43913
0 ETH
93357572023-07-12 23:11:3674 days 21 hrs ago1689203496
0x4e1ED4...98d43913
0 ETH
93355882023-07-12 22:33:1274 days 22 hrs ago1689201192
0x4e1ED4...98d43913
0 ETH
93355882023-07-12 22:33:1274 days 22 hrs ago1689201192
0x4e1ED4...98d43913
0 ETH
93355722023-07-12 22:29:3674 days 22 hrs ago1689200976
0x4e1ED4...98d43913
0 ETH
93355722023-07-12 22:29:3674 days 22 hrs ago1689200976
0x4e1ED4...98d43913
0 ETH
93353022023-07-12 21:24:1274 days 23 hrs ago1689197052
0x4e1ED4...98d43913
0.01 ETH
93353022023-07-12 21:24:1274 days 23 hrs ago1689197052
0x4e1ED4...98d43913
0.01 ETH
93351692023-07-12 20:50:3675 days 9 mins ago1689195036
0x4e1ED4...98d43913
0 ETH
93351692023-07-12 20:50:3675 days 9 mins ago1689195036
0x4e1ED4...98d43913
0 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xD4bd8f...921Ad1d2
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.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 4 : Proxy.sol
pragma solidity ^0.8.0;

// SPDX-License-Identifier: MIT OR Apache-2.0



import "./Ownable.sol";
import "./Upgradeable.sol";
import "./UpgradeableMaster.sol";

/// @title Proxy Contract
/// @dev NOTICE: Proxy must implement UpgradeableMaster interface to prevent calling some function of it not by master of proxy
/// @author Matter Labs
contract Proxy is Upgradeable, Ownable {
    /// @dev Storage position of "target" (actual implementation address: keccak256('eip1967.proxy.implementation') - 1)
    bytes32 private constant TARGET_POSITION = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /// @notice Contract constructor
    /// @dev Calls Ownable contract constructor and initialize target
    /// @param target Initial implementation address
    /// @param targetInitializationParameters Target initialization parameters
    constructor(address target, bytes memory targetInitializationParameters) Ownable(msg.sender) {
        setTarget(target);
        // solhint-disable-next-line avoid-low-level-calls
        (bool initializationSuccess, ) = getTarget().delegatecall(abi.encodeWithSignature("initialize(bytes)", targetInitializationParameters));
        require(initializationSuccess, "uin11"); // uin11 - target initialization failed
    }

    /// @notice Intercepts initialization calls
    function initialize(bytes calldata) external pure {
        revert("ini11"); // ini11 - interception of initialization call
    }

    /// @notice Intercepts upgrade calls
    function upgrade(bytes calldata) external pure {
        revert("upg11"); // upg11 - interception of upgrade call
    }

    /// @notice Returns target of contract
    /// @return target Actual implementation address
    function getTarget() public view returns (address target) {
        bytes32 position = TARGET_POSITION;
        assembly {
            target := sload(position)
        }
    }

    /// @notice Sets new target of contract
    /// @param _newTarget New actual implementation address
    function setTarget(address _newTarget) internal {
        bytes32 position = TARGET_POSITION;
        assembly {
            sstore(position, _newTarget)
        }
    }

    /// @notice Upgrades target
    /// @param newTarget New target
    /// @param newTargetUpgradeParameters New target upgrade parameters
    function upgradeTarget(address newTarget, bytes calldata newTargetUpgradeParameters) external override {
        requireMaster(msg.sender);

        setTarget(newTarget);
        // solhint-disable-next-line avoid-low-level-calls
        (bool upgradeSuccess, ) = getTarget().delegatecall(abi.encodeWithSignature("upgrade(bytes)", newTargetUpgradeParameters));
        require(upgradeSuccess, "ufu11"); // ufu11 - target upgrade failed
    }

    /// @notice Performs a delegatecall to the contract implementation
    /// @dev Fallback function allowing to perform a delegatecall to the given implementation
    /// This function will return whatever the implementation call returns
    function _fallback() internal {
        address _target = getTarget();
        assembly {
            // The pointer to the free memory slot
            let ptr := mload(0x40)
            // Copy function signature and arguments from calldata at zero position into memory at pointer position
            calldatacopy(ptr, 0x0, calldatasize())
            // Delegatecall method of the implementation contract, returns 0 on error
            let result := delegatecall(gas(), _target, ptr, calldatasize(), 0x0, 0)
            // Get the size of the last return data
            let size := returndatasize()
            // Copy the size length of bytes from return data at zero position to pointer position
            returndatacopy(ptr, 0x0, size)
            // Depending on result value
            switch result
                case 0 {
                    // End execution and revert state changes
                    revert(ptr, size)
                }
                default {
                    // Return data with length of size at pointers position
                    return(ptr, size)
                }
        }
    }

    /// @notice Will run when no functions matches call data
    fallback() external payable {
        _fallback();
    }

    /// @notice Same as fallback but called when calldata is empty
    receive() external payable {
        _fallback();
    }
}

File 2 of 4 : Ownable.sol
pragma solidity ^0.8.0;

// SPDX-License-Identifier: MIT OR Apache-2.0



/// @title Ownable Contract
/// @author Matter Labs
contract Ownable {
    /// @dev Storage position of the masters address (keccak256('eip1967.proxy.admin') - 1)
    bytes32 private constant MASTER_POSITION = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /// @notice Contract constructor
    /// @dev Sets msg sender address as masters address
    /// @param masterAddress Master address
    constructor(address masterAddress) {
        setMaster(masterAddress);
    }

    /// @notice Check if specified address is master
    /// @param _address Address to check
    function requireMaster(address _address) internal view {
        require(_address == getMaster(), "1c"); // oro11 - only by master
    }

    /// @notice Returns contract masters address
    /// @return master Master's address
    function getMaster() public view returns (address master) {
        bytes32 position = MASTER_POSITION;
        assembly {
            master := sload(position)
        }
    }

    /// @dev Sets new masters address
    /// @param _newMaster New master's address
    function setMaster(address _newMaster) internal {
        bytes32 position = MASTER_POSITION;
        assembly {
            sstore(position, _newMaster)
        }
    }

    /// @notice Transfer mastership of the contract to new master
    /// @param _newMaster New masters address
    function transferMastership(address _newMaster) external {
        requireMaster(msg.sender);
        require(_newMaster != address(0), "1d"); // otp11 - new masters address can't be zero address
        setMaster(_newMaster);
    }
}

File 3 of 4 : Upgradeable.sol
pragma solidity ^0.8.0;

// SPDX-License-Identifier: MIT OR Apache-2.0



/// @title Interface of the upgradeable contract
/// @author Matter Labs
interface Upgradeable {
    /// @notice Upgrades target of upgradeable contract
    /// @param newTarget New target
    /// @param newTargetInitializationParameters New target initialization parameters
    function upgradeTarget(address newTarget, bytes calldata newTargetInitializationParameters) external;
}

File 4 of 4 : UpgradeableMaster.sol
pragma solidity ^0.8.0;

// SPDX-License-Identifier: MIT OR Apache-2.0



/// @title Interface of the upgradeable master contract (defines notice period duration and allows finish upgrade during preparation of it)
/// @author Matter Labs
interface UpgradeableMaster {
    /// @notice Notice period before activation preparation status of upgrade mode
    function getNoticePeriod() external returns (uint256);

    /// @notice Checks that contract is ready for upgrade
    /// @return bool flag indicating that contract is ready for upgrade
    function isReadyForUpgrade() external returns (bool);
}

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetInitializationParameters","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getMaster","outputs":[{"internalType":"address","name":"master","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTarget","outputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newMaster","type":"address"}],"name":"transferMastership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"upgrade","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newTarget","type":"address"},{"internalType":"bytes","name":"newTargetUpgradeParameters","type":"bytes"}],"name":"upgradeTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361015610018575b3661044757610447565b60003560e01c80632539464514610078578063439fab91146100735780635a99719e1461006e5780636fc4914014610069578063c3f59687146100645763f00e6a2a0361000e57610333565b6102b4565b6101ab565b61014d565b610110565b346100ae57610086366100e1565b505062461bcd60e51b6080526020608452600560a45264757067313160d81b60c45260646080fd5b600080fd5b9181601f840112156100ae5782359167ffffffffffffffff83116100ae57602083818601950101116100ae57565b60206003198201126100ae576004359067ffffffffffffffff82116100ae5761010c916004016100b3565b9091565b346100ae5761011e366100e1565b505060405162461bcd60e51b8152602060048201526005602482015264696e69313160d81b6044820152606490fd5b346100ae5760003660031901126100ae577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546040516001600160a01b039091168152602090f35b600435906001600160a01b03821682036100ae57565b346100ae5760403660031901126100ae576101c4610195565b67ffffffffffffffff6024358181116100ae576064926101ea601f9236906004016100b3565b90916101f53361037b565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405192826020850191632539464560e01b835260206024870152816044870152888601378361026760009882868b83819a99829a0101528919998a91011681010360448101845201826103f1565b51915af4903d156102a9573d9283116102a4576102a192610293602060405193601f84011601836103f1565b81528360203d92013e610413565b80f35b6103db565b506102a19150610413565b346100ae5760203660031901126100ae576102cd610195565b6102d63361037b565b6001600160a01b03811615610309577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355005b60405162461bcd60e51b81526020600482015260026024820152610c5960f21b6044820152606490fd5b346100ae5760003660031901126100ae577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516001600160a01b039091168152602090f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b039081169116036103b157565b60405162461bcd60e51b8152602060048201526002602482015261316360f01b6044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176102a457604052565b1561041a57565b60405162461bcd60e51b8152602060048201526005602482015264756675313160d81b6044820152606490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460008060405192368285378336915af4903d91826000833e1561048857f35bfdfea264697066735822122023c5567030e37071238ee6b9ee517a2e289dd1dbcb4d4500d3aefb65e9db7d7864736f6c63430008120033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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