Contract 0x82F67958A5474e40E1485742d648C0b0686b6e5D 6

Contract Overview

Txn Hash
Method
Block
From
To
Value
0xae81b76ae293c66e51850c5fcb8def4d054fcae75393c569823105f949d4493d0xc731e1f3109783372022-07-06 18:32:571 hr 5 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000080721.30000001
0xaad64525eeaf9287e49286dc4523e6010d510e83235023821e227a9be95691490x83981808109783372022-07-06 18:32:571 hr 5 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.00071071.30000001
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da0x45269298109783032022-07-06 18:24:261 hr 14 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000119411.30000001
0x292e285a98f9f098e3d710cedc9b8c099f76ccb3ef2a53dca50675094f28e8360xc731e1f3109782062022-07-06 18:00:081 hr 38 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000062091
0x3c1450da841736564a980fe79752e5a8eeed387caeb35fb297021f18eefedc750x83981808109782062022-07-06 18:00:081 hr 38 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000546631
0x77220380819950971a39080ffa6871092553b71dde6c772ec02746554e8553410xc731e1f3109781602022-07-06 17:48:371 hr 50 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000062091
0xc2f7bbbfa3423078c38fb4842745d0f3a656aca78894f7889f91040bc194d1510x83981808109781602022-07-06 17:48:371 hr 50 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000546631
0x063a162ad657d45e6087c404bc2d002cef0cf306da9b5fce1afe90eb4df892650xc731e1f3109781462022-07-06 17:45:061 hr 53 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000062091
0x5ab074120772d941ce6273feb18903c44411347626d6b632dd0ac34157f2a7550x45269298109781452022-07-06 17:44:511 hr 53 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000093081
0x967c1466e805323f785c59fe8de7c6a58782ccf9842d6b6c45f4e54da672a62a0x83981808109781452022-07-06 17:44:511 hr 53 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000546671
0x10cfdea25d2ca624090f38554141e403e5c6784c8aff7dd46938e719e83617100x45269298109781222022-07-06 17:39:041 hr 59 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000098191.00000098
0x36c7ba99b7089739ae870eca9e3a8ab058970deb1731f3fafcbf8c2228371eef0xc731e1f3109781212022-07-06 17:38:491 hr 59 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000062091.00000098
0xce5853be17faf64c0567cbd8b6f0edefbc1a9c6357b0152b2cada71635e57def0x83981808109781212022-07-06 17:38:491 hr 59 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000546661.00000098
0x83ea8e225441704e41a2e37cd11c4215cc9ef2218bf655d9d7eb89678a8c72ce0x45269298109781002022-07-06 17:33:342 hrs 5 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000097951.00000098
0x3a9b00ee9cbbd8166b8c2897521363d19efb12094ac08f5655ded8954b6de89a0x45269298109780762022-07-06 17:27:312 hrs 11 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.00009761.00000098
0xa30f447a6bb5740f081f4c9328b6b58289b60266b4c229a8bcb86314a26931400xc731e1f3109778282022-07-06 16:25:253 hrs 13 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000062091.00000098
0x6d3f2b400069f387fc17fbc1d5f10796a9765353bdad0dcf9977854d9d6433e50x83981808109778282022-07-06 16:25:253 hrs 13 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000546661.00000098
0xef6833fd40433153286dd7bab2fea03dbe07a29374af51dfc1d5c8a8609147c80xc731e1f3109778082022-07-06 16:20:253 hrs 18 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.00006491.00000098
0x14804db6a933514cf6b24dfce8673d11647f2cc6087472ca921e4e6fed6343ac0x83981808109778082022-07-06 16:20:253 hrs 18 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.00054671.00000098
0x5c0f1754b8031304504ab974da05582bbbb554489324e3d7f564a27cfc7a13690x45269298109777952022-07-06 16:17:103 hrs 21 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000091861.00000098
0x4762dbc0ca666e21fec2936ca43dbf1bed8e1fd3ef38ade20ca444d4969a73ee0x45269298109777752022-07-06 16:12:083 hrs 26 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000101031.00000098
0xa4d68578a60980286722282fbcfa3fca940b24cc536d40ebc0a3cb6d8a58880cDeposit ETH109777342022-07-06 16:01:533 hrs 36 mins ago0x00b2e843a2b374caa1be84883038e854c63c59ff IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0.001 Ether0.0000626 1.00000099
0x8a3ff439136d454403900b98101ed66cb966b286ed0b711d6d4ae983484fe06f0xc731e1f3109777002022-07-06 15:53:213 hrs 45 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.00006491.00000098
0x485147f828ac841d5564b3160624c9a7aca1bfe386038701d2d2c85a15c88db10x83981808109777002022-07-06 15:53:213 hrs 45 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000546621.00000098
0xfd9b787cb06aa21e79d2b1bd89855ab9990699bff9f91fb756c5daf5b77c4e560x45269298109776692022-07-06 15:45:363 hrs 53 mins ago0x8c469877b27932abdd2313c4b6bf7cff5667fdb9 IN  0x82f67958a5474e40e1485742d648c0b0686b6e5d0 Ether0.000101031.00000099
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xae81b76ae293c66e51850c5fcb8def4d054fcae75393c569823105f949d4493d109783372022-07-06 18:32:571 hr 5 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xc8568f373484cd51fdc1fe3675e46d8c0dc7d2460 Ether
0xae81b76ae293c66e51850c5fcb8def4d054fcae75393c569823105f949d4493d109783372022-07-06 18:32:571 hr 5 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0xaad64525eeaf9287e49286dc4523e6010d510e83235023821e227a9be9569149109783372022-07-06 18:32:571 hr 5 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0x20e79587197ffa45c9fda1975af6773b549564bd0 Ether
0xaad64525eeaf9287e49286dc4523e6010d510e83235023821e227a9be9569149109783372022-07-06 18:32:571 hr 5 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da109783032022-07-06 18:24:261 hr 14 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da109783032022-07-06 18:24:261 hr 14 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da109783032022-07-06 18:24:261 hr 14 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da109783032022-07-06 18:24:261 hr 14 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da109783032022-07-06 18:24:261 hr 14 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da109783032022-07-06 18:24:261 hr 14 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xc8568f373484cd51fdc1fe3675e46d8c0dc7d2460 Ether
0x4da253c66f9890e58ab6bd7f06c86590700ee9b87f8fccd35f8d2acef36388da109783032022-07-06 18:24:261 hr 14 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0x292e285a98f9f098e3d710cedc9b8c099f76ccb3ef2a53dca50675094f28e836109782062022-07-06 18:00:081 hr 38 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xc8568f373484cd51fdc1fe3675e46d8c0dc7d2460 Ether
0x292e285a98f9f098e3d710cedc9b8c099f76ccb3ef2a53dca50675094f28e836109782062022-07-06 18:00:081 hr 38 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0x3c1450da841736564a980fe79752e5a8eeed387caeb35fb297021f18eefedc75109782062022-07-06 18:00:081 hr 38 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0x20e79587197ffa45c9fda1975af6773b549564bd0 Ether
0x3c1450da841736564a980fe79752e5a8eeed387caeb35fb297021f18eefedc75109782062022-07-06 18:00:081 hr 38 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0x77220380819950971a39080ffa6871092553b71dde6c772ec02746554e855341109781602022-07-06 17:48:371 hr 50 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xc8568f373484cd51fdc1fe3675e46d8c0dc7d2460 Ether
0x77220380819950971a39080ffa6871092553b71dde6c772ec02746554e855341109781602022-07-06 17:48:371 hr 50 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0xc2f7bbbfa3423078c38fb4842745d0f3a656aca78894f7889f91040bc194d151109781602022-07-06 17:48:371 hr 50 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0x20e79587197ffa45c9fda1975af6773b549564bd0 Ether
0xc2f7bbbfa3423078c38fb4842745d0f3a656aca78894f7889f91040bc194d151109781602022-07-06 17:48:371 hr 50 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0x063a162ad657d45e6087c404bc2d002cef0cf306da9b5fce1afe90eb4df89265109781462022-07-06 17:45:061 hr 53 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xc8568f373484cd51fdc1fe3675e46d8c0dc7d2460 Ether
0x063a162ad657d45e6087c404bc2d002cef0cf306da9b5fce1afe90eb4df89265109781462022-07-06 17:45:061 hr 53 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d 0xacea5896758105eeecb9e46fbe07cbba66e471b10 Ether
0x5ab074120772d941ce6273feb18903c44411347626d6b632dd0ac34157f2a755109781452022-07-06 17:44:511 hr 53 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x5ab074120772d941ce6273feb18903c44411347626d6b632dd0ac34157f2a755109781452022-07-06 17:44:511 hr 53 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x5ab074120772d941ce6273feb18903c44411347626d6b632dd0ac34157f2a755109781452022-07-06 17:44:511 hr 53 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
0x5ab074120772d941ce6273feb18903c44411347626d6b632dd0ac34157f2a755109781452022-07-06 17:44:511 hr 53 mins ago 0x82f67958a5474e40e1485742d648c0b0686b6e5d0x00000000000000000000000000000000000000020 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Proxy

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Proxy.sol
pragma solidity ^0.5.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, UpgradeableMaster, Ownable {

    /// @notice Storage position of "target" (actual implementation address: keccak256('eip1967.proxy.implementation') - 1)
    bytes32 private constant targetPosition = 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) public {
        setTarget(target);
        (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 Actual implementation address
    function getTarget() public view returns (address target) {
        bytes32 position = targetPosition;
        assembly {
            target := sload(position)
        }
    }

    /// @notice Sets new target of contract
    /// @param _newTarget New actual implementation address
    function setTarget(address _newTarget) internal {
        bytes32 position = targetPosition;
        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 {
        requireMaster(msg.sender);

        setTarget(newTarget);
        (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() external payable {
        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)
            }
        }
    }

    /// UpgradeableMaster functions

    /// @notice Notice period before activation preparation status of upgrade mode
    function getNoticePeriod() external returns (uint) {
        (bool success, bytes memory result) = getTarget().delegatecall(abi.encodeWithSignature("getNoticePeriod()"));
        require(success, "unp11"); // unp11 - upgradeNoticePeriod delegatecall failed
        return abi.decode(result, (uint));
    }

    /// @notice Notifies proxy contract that notice period started
    function upgradeNoticePeriodStarted() external {
        requireMaster(msg.sender);
        (bool success, ) = getTarget().delegatecall(abi.encodeWithSignature("upgradeNoticePeriodStarted()"));
        require(success, "nps11"); // nps11 - upgradeNoticePeriodStarted delegatecall failed
    }

    /// @notice Notifies proxy contract that upgrade preparation status is activated
    function upgradePreparationStarted() external {
        requireMaster(msg.sender);
        (bool success, ) = getTarget().delegatecall(abi.encodeWithSignature("upgradePreparationStarted()"));
        require(success, "ups11"); // ups11 - upgradePreparationStarted delegatecall failed
    }

    /// @notice Notifies proxy contract that upgrade canceled
    function upgradeCanceled() external {
        requireMaster(msg.sender);
        (bool success, ) = getTarget().delegatecall(abi.encodeWithSignature("upgradeCanceled()"));
        require(success, "puc11"); // puc11 - upgradeCanceled delegatecall failed
    }

    /// @notice Notifies proxy contract that upgrade finishes
    function upgradeFinishes() external {
        requireMaster(msg.sender);
        (bool success, ) = getTarget().delegatecall(abi.encodeWithSignature("upgradeFinishes()"));
        require(success, "puf11"); // puf11 - upgradeFinishes delegatecall failed
    }

    /// @notice Checks that contract is ready for upgrade
    /// @return bool flag indicating that contract is ready for upgrade
    function isReadyForUpgrade() external returns (bool) {
        (bool success, bytes memory result) = getTarget().delegatecall(abi.encodeWithSignature("isReadyForUpgrade()"));
        require(success, "rfu11"); // rfu11 - readyForUpgrade delegatecall failed
        return abi.decode(result, (bool));
    }

}

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

/// @title Ownable Contract
/// @author Matter Labs
contract Ownable {

    /// @notice Storage position of the masters address (keccak256('eip1967.proxy.admin') - 1)
    bytes32 private constant masterPosition = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

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

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

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

    /// @notice Sets new masters address
    /// @param _newMaster New masters address
    function setMaster(address _newMaster) internal {
        bytes32 position = masterPosition;
        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), "otp11"); // otp11 - new masters address can't be zero address
        setMaster(_newMaster);
    }

}

File 3 of 4 : Upgradeable.sol
pragma solidity ^0.5.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.5.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 (uint);

    /// @notice Notifies contract that notice period started
    function upgradeNoticePeriodStarted() external;

    /// @notice Notifies contract that upgrade preparation status is activated
    function upgradePreparationStarted() external;

    /// @notice Notifies contract that upgrade canceled
    function upgradeCanceled() external;

    /// @notice Notifies contract that upgrade finishes
    function upgradeFinishes() external;

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

}

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetInitializationParameters","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"getMaster","outputs":[{"internalType":"address","name":"master","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getNoticePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTarget","outputs":[{"internalType":"address","name":"target","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"isReadyForUpgrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newMaster","type":"address"}],"name":"transferMastership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"upgradeCanceled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"upgradeFinishes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"upgradeNoticePeriodStarted","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"upgradePreparationStarted","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newTarget","type":"address"},{"internalType":"bytes","name":"newTargetUpgradeParameters","type":"bytes"}],"name":"upgradeTarget","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200109338038062001093833981810160405260408110156200003757600080fd5b8151602083018051604051929492938301929190846401000000008211156200005f57600080fd5b9083019060208201858111156200007557600080fd5b82516401000000008111828201881017156200009057600080fd5b82525081516020918201929091019080838360005b83811015620000bf578181015183820152602001620000a5565b50505050905090810190601f168015620000ed5780820380516001836020036101000a031916815260200191505b50604052505050336200010681620002b660201b60201c565b506200011b826001600160e01b03620002da16565b6000620001306001600160e01b03620002ed16565b6001600160a01b0316826040516024018080602001828103825283818151815260200191508051906020019080838360005b838110156200017c57818101518382015260200162000162565b50505050905090810190601f168015620001aa5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663439fab9160e01b178152905182519295509350839250908083835b60208310620002075780518252601f199092019160209182019101620001e6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811462000269576040519150601f19603f3d011682016040523d82523d6000602084013e6200026e565b606091505b5050905080620002ad576040805162461bcd60e51b815260206004820152600560248201526475696e313160d81b604482015290519081900360640190fd5b50505062000301565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6000805160206200107383398151915255565b600080516020620010738339815191525490565b610d6280620003116000396000f3fe6080604052600436106100a75760003560e01c806378b91e701161006457806378b91e70146102ce578063871b8ff1146102e35780638773334c146102f8578063b269b9ae14610321578063c3f5968714610336578063f00e6a2a14610369576100a7565b806325394645146100d85780632a3174f4146101575780633b154b731461017e578063439fab91146101935780635a99719e146102105780636fc4914014610241575b60006100b161037a565b905060405136600082376000803683855af43d806000843e8180156100d4578184f35b8184fd5b3480156100e457600080fd5b50610155600480360360208110156100fb57600080fd5b81019060208101813564010000000081111561011657600080fd5b82018360208201111561012857600080fd5b8035906020019184600183028401116401000000008311171561014a57600080fd5b50909250905061039f565b005b34801561016357600080fd5b5061016c6103d4565b60408051918252519081900360200190f35b34801561018a57600080fd5b50610155610506565b34801561019f57600080fd5b50610155600480360360208110156101b657600080fd5b8101906020810181356401000000008111156101d157600080fd5b8201836020820111156101e357600080fd5b8035906020019184600183028401116401000000008311171561020557600080fd5b509092509050610622565b34801561021c57600080fd5b50610225610657565b604080516001600160a01b039092168252519081900360200190f35b34801561024d57600080fd5b506101556004803603604081101561026457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561028f57600080fd5b8201836020820111156102a157600080fd5b803590602001918460018302840111640100000000831117156102c357600080fd5b50909250905061067c565b3480156102da57600080fd5b506101556107dc565b3480156102ef57600080fd5b506101556108f5565b34801561030457600080fd5b5061030d610a0e565b604080519115158252519081900360200190f35b34801561032d57600080fd5b50610155610b22565b34801561034257600080fd5b506101556004803603602081101561035957600080fd5b50356001600160a01b0316610c3b565b34801561037557600080fd5b506102255b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6040805162461bcd60e51b8152602060048201526005602482015264757067313160d81b604482015290519081900360640190fd5b60008060606103e161037a565b60408051600481526024810182526020810180516001600160e01b0316630a8c5d3d60e21b178152915181516001600160a01b039490941693919290918291908083835b602083106104445780518252601f199092019160209182019101610425565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146104a4576040519150601f19603f3d011682016040523d82523d6000602084013e6104a9565b606091505b5091509150816104e8576040805162461bcd60e51b8152602060048201526005602482015264756e70313160d81b604482015290519081900360640190fd5b8080602001905160208110156104fd57600080fd5b50519250505090565b61050f33610c90565b600061051961037a565b60408051600481526024810182526020810180516001600160e01b0316633b154b7360e01b178152915181516001600160a01b039490941693919290918291908083835b6020831061057c5780518252601f19909201916020918201910161055d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146105dc576040519150601f19603f3d011682016040523d82523d6000602084013e6105e1565b606091505b505090508061061f576040805162461bcd60e51b81526020600482015260056024820152646e7073313160d81b604482015290519081900360640190fd5b50565b6040805162461bcd60e51b8152602060048201526005602482015264696e69313160d81b604482015290519081900360640190fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61068533610c90565b61068e83610ce5565b600061069861037a565b6001600160a01b031683836040516024018080602001828103825284848281815260200192508082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b0316632539464560e01b17815292518151919750955085945091925081905083835b602083106107335780518252601f199092019160209182019101610714565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610793576040519150601f19603f3d011682016040523d82523d6000602084013e610798565b606091505b50509050806107d6576040805162461bcd60e51b8152602060048201526005602482015264756675313160d81b604482015290519081900360640190fd5b50505050565b6107e533610c90565b60006107ef61037a565b60408051600481526024810182526020810180516001600160e01b031663078b91e760e41b178152915181516001600160a01b039490941693919290918291908083835b602083106108525780518252601f199092019160209182019101610833565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146108b2576040519150601f19603f3d011682016040523d82523d6000602084013e6108b7565b606091505b505090508061061f576040805162461bcd60e51b8152602060048201526005602482015264757073313160d81b604482015290519081900360640190fd5b6108fe33610c90565b600061090861037a565b60408051600481526024810182526020810180516001600160e01b031663871b8ff160e01b178152915181516001600160a01b039490941693919290918291908083835b6020831061096b5780518252601f19909201916020918201910161094c565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146109cb576040519150601f19603f3d011682016040523d82523d6000602084013e6109d0565b606091505b505090508061061f576040805162461bcd60e51b8152602060048201526005602482015264707563313160d81b604482015290519081900360640190fd5b6000806060610a1b61037a565b60408051600481526024810182526020810180516001600160e01b03166321dcccd360e21b178152915181516001600160a01b039490941693919290918291908083835b60208310610a7e5780518252601f199092019160209182019101610a5f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610ade576040519150601f19603f3d011682016040523d82523d6000602084013e610ae3565b606091505b5091509150816104e8576040805162461bcd60e51b8152602060048201526005602482015264726675313160d81b604482015290519081900360640190fd5b610b2b33610c90565b6000610b3561037a565b60408051600481526024810182526020810180516001600160e01b0316635934dcd760e11b178152915181516001600160a01b039490941693919290918291908083835b60208310610b985780518252601f199092019160209182019101610b79565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610bf8576040519150601f19603f3d011682016040523d82523d6000602084013e610bfd565b606091505b505090508061061f576040805162461bcd60e51b8152602060048201526005602482015264707566313160d81b604482015290519081900360640190fd5b610c4433610c90565b6001600160a01b038116610c87576040805162461bcd60e51b81526020600482015260056024820152646f7470313160d81b604482015290519081900360640190fd5b61061f81610d09565b610c98610657565b6001600160a01b0316816001600160a01b03161461061f576040805162461bcd60e51b81526020600482015260056024820152646f726f313160d81b604482015290519081900360640190fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035556fea265627a7a72315820dcea992bcf2308f7702535358aea6d8237704ff3545e0d3df14a2ca97ebd4df764736f6c63430005110032360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc00000000000000000000000038700b2551e81e933b3cb7425af029cdee6c4b6700000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c8568f373484cd51fdc1fe3675e46d8c0dc7d24600000000000000000000000020e79587197ffa45c9fda1975af6773b549564bd0110a62546092b0e6bb6f897fab5827f1b186863cc805ab875402b253df90462

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000038700b2551e81e933b3cb7425af029cdee6c4b6700000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c8568f373484cd51fdc1fe3675e46d8c0dc7d24600000000000000000000000020e79587197ffa45c9fda1975af6773b549564bd0110a62546092b0e6bb6f897fab5827f1b186863cc805ab875402b253df90462

-----Decoded View---------------
Arg [0] : target (address): 0x38700b2551e81e933b3cb7425af029cdee6c4b67
Arg [1] : targetInitializationParameters (bytes): 0x000000000000000000000000c8568f373484cd51fdc1fe3675e46d8c0dc7d24600000000000000000000000020e79587197ffa45c9fda1975af6773b549564bd0110a62546092b0e6bb6f897fab5827f1b186863cc805ab875402b253df90462

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000038700b2551e81e933b3cb7425af029cdee6c4b67
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 000000000000000000000000c8568f373484cd51fdc1fe3675e46d8c0dc7d246
Arg [4] : 00000000000000000000000020e79587197ffa45c9fda1975af6773b549564bd
Arg [5] : 0110a62546092b0e6bb6f897fab5827f1b186863cc805ab875402b253df90462


Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

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.