Mumbai Testnet

Contract

0x4D6F405639F4BcF3E58505Ee0965Ae2Cb4201be3
Transaction Hash
Method
Block
From
To
Value
Deposit ERC20374127812023-06-30 6:02:30335 days ago1688104950IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374127742023-06-30 6:02:02335 days ago1688104922IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374127702023-06-30 6:01:46335 days ago1688104906IN
0x4D6F4056...Cb4201be3
0 MATIC0.000168981.80000001
Deposit ERC20374127572023-06-30 6:01:12335 days ago1688104872IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374127502023-06-30 6:00:56335 days ago1688104856IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374127402023-06-30 6:00:36335 days ago1688104836IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169181.80000001
Deposit ERC20374126912023-06-30 5:57:56335 days ago1688104676IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169291.80000001
Deposit ERC20374126782023-06-30 5:57:20335 days ago1688104640IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374126712023-06-30 5:57:04335 days ago1688104624IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374126662023-06-30 5:56:44335 days ago1688104604IN
0x4D6F4056...Cb4201be3
0 MATIC0.000168981.80000001
Deposit ERC20374126592023-06-30 5:56:16335 days ago1688104576IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374126542023-06-30 5:55:56335 days ago1688104556IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374126432023-06-30 5:55:34335 days ago1688104534IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169181.80000001
Deposit ERC20374125892023-06-30 5:52:34335 days ago1688104354IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169291.80000001
Deposit ERC20374125712023-06-30 5:51:56335 days ago1688104316IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374125642023-06-30 5:51:42335 days ago1688104302IN
0x4D6F4056...Cb4201be3
0 MATIC0.000169011.80000001
Deposit ERC20374125572023-06-30 5:51:22335 days ago1688104282IN
0x4D6F4056...Cb4201be3
0 MATIC0.000168981.80000001
Deposit ERC20374125532023-06-30 5:51:06335 days ago1688104266IN
0x4D6F4056...Cb4201be3
0 MATIC0.000214142.28069319
Deposit ERC20374125472023-06-30 5:50:42335 days ago1688104242IN
0x4D6F4056...Cb4201be3
0 MATIC0.000214142.28069319
Deposit ERC20374125412023-06-30 5:50:20335 days ago1688104220IN
0x4D6F4056...Cb4201be3
0 MATIC0.000214362.28069319
Deposit ERC20374124932023-06-30 5:48:02335 days ago1688104082IN
0x4D6F4056...Cb4201be3
0 MATIC0.000240272.5547862
Deposit ERC20374124842023-06-30 5:47:26335 days ago1688104046IN
0x4D6F4056...Cb4201be3
0 MATIC0.000227592.42394855
Deposit ERC20374124762023-06-30 5:46:58335 days ago1688104018IN
0x4D6F4056...Cb4201be3
0 MATIC0.000227592.42394855
Deposit ERC20374124652023-06-30 5:46:36335 days ago1688103996IN
0x4D6F4056...Cb4201be3
0 MATIC0.000227562.42394855
Deposit ERC20374124602023-06-30 5:46:18335 days ago1688103978IN
0x4D6F4056...Cb4201be3
0 MATIC0.000227592.42394855
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To Value
357365182023-05-18 7:30:01378 days ago1684395001
0x4D6F4056...Cb4201be3
0.998235 MATIC
357365182023-05-18 7:30:01378 days ago1684395001
0x4D6F4056...Cb4201be3
4.998235 MATIC
357365182023-05-18 7:30:01378 days ago1684395001
0x4D6F4056...Cb4201be3
0.3 MATIC
357365182023-05-18 7:30:01378 days ago1684395001
0x4D6F4056...Cb4201be3
0.058235 MATIC
357335972023-05-18 5:46:33378 days ago1684388793
0x4D6F4056...Cb4201be3
1 MATIC
357335972023-05-18 5:46:33378 days ago1684388793
0x4D6F4056...Cb4201be3
1 MATIC
357335972023-05-18 5:46:33378 days ago1684388793
0x4D6F4056...Cb4201be3
0.097197 MATIC
356978062023-05-17 8:38:57379 days ago1684312737
0x4D6F4056...Cb4201be3
0.02 MATIC
356977772023-05-17 8:37:57379 days ago1684312677
0x4D6F4056...Cb4201be3
1 MATIC
356977772023-05-17 8:37:57379 days ago1684312677
0x4D6F4056...Cb4201be3
0.8 MATIC
356977772023-05-17 8:37:57379 days ago1684312677
0x4D6F4056...Cb4201be3
0.001 MATIC
356977632023-05-17 8:37:27379 days ago1684312647
0x4D6F4056...Cb4201be3
0.01 MATIC
356977502023-05-17 8:36:59379 days ago1684312619
0x4D6F4056...Cb4201be3
0.1 MATIC
356977502023-05-17 8:36:59379 days ago1684312619
0x4D6F4056...Cb4201be3
0.1 MATIC
356977502023-05-17 8:36:59379 days ago1684312619
0x4D6F4056...Cb4201be3
1 MATIC
356977232023-05-17 8:36:01379 days ago1684312561
0x4D6F4056...Cb4201be3
0.8899446 MATIC
356977232023-05-17 8:36:01379 days ago1684312561
0x4D6F4056...Cb4201be3
0.02 MATIC
356977232023-05-17 8:36:01379 days ago1684312561
0x4D6F4056...Cb4201be3
0.197197 MATIC
356977222023-05-17 8:35:59379 days ago1684312559
0x4D6F4056...Cb4201be3
0.01 MATIC
356977212023-05-17 8:35:57379 days ago1684312557
0x4D6F4056...Cb4201be3
0.05 MATIC
356977212023-05-17 8:35:57379 days ago1684312557
0x4D6F4056...Cb4201be3
0.01 MATIC
356977212023-05-17 8:35:57379 days ago1684312557
0x4D6F4056...Cb4201be3
0.097197 MATIC
356977212023-05-17 8:35:57379 days ago1684312557
0x4D6F4056...Cb4201be3
0.0604146 MATIC
356977082023-05-17 8:35:29379 days ago1684312529
0x4D6F4056...Cb4201be3
0.005 MATIC
356977082023-05-17 8:35:29379 days ago1684312529
0x4D6F4056...Cb4201be3
0.997197 MATIC
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xb6636C27...105618479
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 100 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 1 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 2 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 2 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
{
  "optimizer": {
    "enabled": true,
    "runs": 100
  },
  "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

0x6080604052600436106100595760003560e01c80632539464514610070578063439fab91146100905780635a99719e146100b05780636fc49140146100ea578063c3f596871461010a578063f00e6a2a1461012a57610068565b366100685761006661013f565b005b61006661013f565b34801561007c57600080fd5b5061006661008b366004610400565b610170565b34801561009c57600080fd5b506100666100ab366004610400565b6101a5565b3480156100bc57600080fd5b50600080516020610532833981519152545b6040516001600160a01b03909116815260200160405180910390f35b3480156100f657600080fd5b5061006661010536600461045e565b6101d5565b34801561011657600080fd5b506100666101253660046104b1565b6102e0565b34801561013657600080fd5b506100ce61033d565b600061014961033d565b905060405136600082376000803683855af43d806000843e81801561016c578184f35b8184fd5b60405162461bcd60e51b8152602060048201526005602482015264757067313160d81b60448201526064015b60405180910390fd5b60405162461bcd60e51b8152602060048201526005602482015264696e69313160d81b604482015260640161019c565b6101de33610362565b610206837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b600061021061033d565b6001600160a01b0316838360405160240161022c9291906104d3565b60408051601f198184030181529181526020820180516001600160e01b0316632539464560e01b179052516102619190610502565b600060405180830381855af49150503d806000811461029c576040519150601f19603f3d011682016040523d82523d6000602084013e6102a1565b606091505b50509050806102da5760405162461bcd60e51b8152602060048201526005602482015264756675313160d81b604482015260640161019c565b50505050565b6102e933610362565b6001600160a01b0381166103245760405162461bcd60e51b81526020600482015260026024820152610c5960f21b604482015260640161019c565b61033a8160008051602061053283398151915255565b50565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b600080516020610532833981519152546001600160a01b0316816001600160a01b03161461033a5760405162461bcd60e51b8152602060048201526002602482015261316360f01b604482015260640161019c565b60008083601f8401126103c957600080fd5b50813567ffffffffffffffff8111156103e157600080fd5b6020830191508360208285010111156103f957600080fd5b9250929050565b6000806020838503121561041357600080fd5b823567ffffffffffffffff81111561042a57600080fd5b610436858286016103b7565b90969095509350505050565b80356001600160a01b038116811461045957600080fd5b919050565b60008060006040848603121561047357600080fd5b61047c84610442565b9250602084013567ffffffffffffffff81111561049857600080fd5b6104a4868287016103b7565b9497909650939450505050565b6000602082840312156104c357600080fd5b6104cc82610442565b9392505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6000825160005b818110156105235760208186018101518583015201610509565b50600092019182525091905056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a2646970667358221220d1a64f6f339a0a53c36ef8a69790340fabb17c59fb5e78208ad574467a3d9f2364736f6c63430008120033

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

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.