Mumbai Testnet

Contract

0xd5a67aE094D26451C5CE592798C9CaDE55f968aa
Transaction Hash
Method
Block
From
To
Value
Perform Exodus448354892024-01-16 12:50:56133 days ago1705409456IN
0xd5a67aE0...E55f968aa
0 MATIC0.000127222.00000001
Perform Exodus411519542023-10-13 7:02:52228 days ago1697180572IN
0xd5a67aE0...E55f968aa
0 MATIC0.00103892.08243002
Perform Exodus385849082023-08-03 6:24:23299 days ago1691043863IN
0xd5a67aE0...E55f968aa
0 MATIC0.000127192.00000001
Perform Exodus385848812023-08-03 6:23:27299 days ago1691043807IN
0xd5a67aE0...E55f968aa
0 MATIC0.000997712.00000001
Perform Exodus369156972023-06-16 10:31:16347 days ago1686911476IN
0xd5a67aE0...E55f968aa
0 MATIC0.000049880.10000001
Withdraw Pending...365034542023-06-06 6:01:51357 days ago1686031311IN
0xd5a67aE0...E55f968aa
0 MATIC0.000157082.00000001
Deposit ERC20364258912023-06-04 8:14:51359 days ago1685866491IN
0xd5a67aE0...E55f968aa
0 MATIC0.0070976200
Deposit ERC20364258582023-06-04 8:13:41359 days ago1685866421IN
0xd5a67aE0...E55f968aa
0 MATIC0.0070976200
Perform Exodus362135282023-05-30 2:53:38364 days ago1685415218IN
0xd5a67aE0...E55f968aa
0 MATIC0.000104971.65000001
Perform Exodus361229072023-05-27 21:24:08366 days ago1685222648IN
0xd5a67aE0...E55f968aa
0 MATIC0.000179552.82270001
Withdraw Pending...361115122023-05-27 14:39:46366 days ago1685198386IN
0xd5a67aE0...E55f968aa
0 MATIC0.000152371.94
Perform Exodus361113512023-05-27 14:34:04366 days ago1685198044IN
0xd5a67aE0...E55f968aa
0 MATIC0.000967871.94
Perform Exodus360825552023-05-26 21:23:03367 days ago1685136183IN
0xd5a67aE0...E55f968aa
0 MATIC0.000095411.50000002
Perform Exodus360824012023-05-26 21:17:32367 days ago1685135852IN
0xd5a67aE0...E55f968aa
0 MATIC0.006003694.38140123
Perform Exodus360736972023-05-26 16:00:40367 days ago1685116840IN
0xd5a67aE0...E55f968aa
0 MATIC0.000919341.84300006
Perform Exodus360469382023-05-25 23:51:30368 days ago1685058690IN
0xd5a67aE0...E55f968aa
0 MATIC0.000063631.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.000063651.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.00049891.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.000063631.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.000063651.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.000498891.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.000063651.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.000063651.00000001
Perform Exodus360468842023-05-25 23:49:36368 days ago1685058576IN
0xd5a67aE0...E55f968aa
0 MATIC0.000498911.00000001
Perform Exodus360377362023-05-25 18:13:53368 days ago1685038433IN
0xd5a67aE0...E55f968aa
0 MATIC0.000798471.60050002
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To Value
356996612023-05-17 9:44:39377 days ago1684316679
0xd5a67aE0...E55f968aa
0.10643199 MATIC
356015502023-05-14 23:49:53379 days ago1684108193
0xd5a67aE0...E55f968aa
2.89981979 MATIC
355871822023-05-14 15:21:01379 days ago1684077661
0xd5a67aE0...E55f968aa
0.04999999 MATIC
355849142023-05-14 14:00:43380 days ago1684072843
0xd5a67aE0...E55f968aa
1.99981979 MATIC
355768472023-05-14 9:14:59380 days ago1684055699
0xd5a67aE0...E55f968aa
0.29805479 MATIC
355678462023-05-14 3:56:13380 days ago1684036573
0xd5a67aE0...E55f968aa
1.49999999 MATIC
355612942023-05-14 0:04:09380 days ago1684022649
0xd5a67aE0...E55f968aa
0.69999999 MATIC
355538612023-05-13 19:40:55380 days ago1684006855
0xd5a67aE0...E55f968aa
2.99999999 MATIC
355434262023-05-13 13:31:21381 days ago1683984681
0xd5a67aE0...E55f968aa
3.37788179 MATIC
355395432023-05-13 11:13:49381 days ago1683976429
0xd5a67aE0...E55f968aa
0.99823499 MATIC
355380782023-05-13 10:21:55381 days ago1683973315
0xd5a67aE0...E55f968aa
0.14869299 MATIC
355373682023-05-13 9:56:47381 days ago1683971807
0xd5a67aE0...E55f968aa
0.09999999 MATIC
355353832023-05-13 8:46:29381 days ago1683967589
0xd5a67aE0...E55f968aa
0.42778579 MATIC
355303832023-05-13 5:49:23381 days ago1683956963
0xd5a67aE0...E55f968aa
0.09999999 MATIC
355181382023-05-12 22:35:43381 days ago1683930943
0xd5a67aE0...E55f968aa
0.29896199 MATIC
355154492023-05-12 21:00:29381 days ago1683925229
0xd5a67aE0...E55f968aa
1.00009814 MATIC
355088752023-05-12 17:07:39381 days ago1683911259
0xd5a67aE0...E55f968aa
3.99869299 MATIC
355060232023-05-12 15:26:39381 days ago1683905199
0xd5a67aE0...E55f968aa
0.49999999 MATIC
355026052023-05-12 13:25:35382 days ago1683897935
0xd5a67aE0...E55f968aa
0.00999999 MATIC
355021382023-05-12 13:09:03382 days ago1683896943
0xd5a67aE0...E55f968aa
1.79796599 MATIC
354963812023-05-12 9:45:09382 days ago1683884709
0xd5a67aE0...E55f968aa
19.33105258 MATIC
354953762023-05-12 9:09:35382 days ago1683882575
0xd5a67aE0...E55f968aa
0.09999999 MATIC
354787222023-05-11 23:19:27382 days ago1683847167
0xd5a67aE0...E55f968aa
4.99999999 MATIC
354778622023-05-11 22:48:59382 days ago1683845339
0xd5a67aE0...E55f968aa
9.99999999 MATIC
354766902023-05-11 22:07:29382 days ago1683842849
0xd5a67aE0...E55f968aa
0.57597176 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.