Contract 0x648727A32112e6C233c1c5d8d57A9AA736FfB18B

Contract Overview

Balance:
0 Ether
Txn Hash
Method
Block
From
To
Value
0x6e980d8f1105e48eea47e652f2676392164467c8b0d9437afe3e5179c413b285Resume Synths Ex...325299162022-07-03 21:04:241 day 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00014335 2.75
0x92e5212c660519d8d93b09f524510a7b9afb524240bc3905445b4fb4dfb0a417Suspend Synths E...324948692022-07-01 20:04:203 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x146b21f4fa858fdf2f654c8bbf1dfd0d926277383cb0671c09bd5144635a8616Resume Synths Ex...323991632022-06-26 21:04:208 days 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00011583 2.222
0xa0a0b34b99d0d1a30ab644fad1e55e60d502b3e6d1a581e07bae28a2671f595dSuspend Synths E...323580612022-06-24 20:04:2410 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x3f8ba753520c785aa58184c1bf77c4eb8414d792e72cf697ffe5a92d5cd0de6eUpdate Access Co...323199612022-06-22 17:14:0012 days 7 hrs ago0x73570075092502472e4b61a7058df1a4a1db12f2 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00004906 1
0x94aee21483feb51eb147ce219a136cce92d7670a9c392ce62de684ec19f5adc3Resume Synths Ex...322685702022-06-19 21:04:2415 days 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00014335 2.75
0x68b78635d333c4f36cb1317c6ad92d486c37f528a3fb43e0a24fcdc788c2c057Suspend Synths E...322346232022-06-17 20:04:3217 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x32bf71e17076c18f40af9a06c83e5b0f1afbc26ec2b09cb0aa6c65854ec74453Resume Synths Ex...321423622022-06-12 21:04:2022 days 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00014335 2.75
0x2095bbcb3d96da61863c5229842e429afb3da0e08a406895cff40f7e7aa43eb3Suspend Synths E...321091482022-06-10 20:04:2424 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x526667a991095cbff1bc048c1c3c6d6fa9d27b6cb54732ad056d38261f491e69Resume System320751542022-06-08 19:00:5226 days 5 hrs ago0x73570075092502472e4b61a7058df1a4a1db12f2 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00006289 2.5
0x4d43220b7d75a9549633b627246597d1c655d9589e843c561808f98bb8c8f2aeUpdate Access Co...320750782022-06-08 18:54:3226 days 5 hrs ago0x73570075092502472e4b61a7058df1a4a1db12f2 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00004906 1
0x92a7873ae95ad9156d3b91925e0abf5c3be78190b63bdb349f2e1834a8455d44Suspend System320750262022-06-08 18:50:3226 days 5 hrs ago0x73570075092502472e4b61a7058df1a4a1db12f2 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00011771 2.5
0x13c7c0fb9819bb0a33aad5bdf0885b5e6b86bcead606ab1772f6f82a56f6d9ceResume Synths Ex...320233622022-06-05 21:04:2429 days 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00014335 2.75
0x8997e0cdcc84f7519d9d9d9ecd02596ee62b6119cbdcb4cb47f4a48acc385d59Suspend Synths E...319882752022-06-03 20:04:2031 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x7f78e7817c8178686617e060f535b63e4c194715c56cbc96d2df5dacc9594d25Resume Synths Ex...318936342022-05-29 21:04:2036 days 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00014335 2.75
0x06dfed1128215255b8c38d6e16d5fe5b77b86f0bb630f2cff5bd936dea6bd7b1Suspend Synths E...318524182022-05-27 20:04:2438 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x3df6d22e1981703b874d62dd6ca4c6ec205ab17d29be0b7cfc8a28201caff821Resume Synths Ex...317526402022-05-22 21:04:2043 days 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00014335 2.75
0xd03bde1003b92dc9f566a30bfa9cc1f831e293b4358306c3e2312efa2f0ac1f6Suspend Synths E...317133232022-05-20 20:04:2445 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x61a24d21045cb06e3a612b1372d376fd0b54cd9696232430a5a957c374df6f68Resume Synths Ex...316219712022-05-15 21:04:2450 days 3 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00014335 2.75
0xb4c6940323f485dde29e610deff9eaddd53ff7a02f24ecc5786499edc4e26b51Suspend Synth316009622022-05-14 15:54:2051 days 8 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.0009410938.8
0xa5ee534d82b052ee86328b959f22ac08e992e3012d30864a8580c36b2b00a0a7Suspend Synth316002742022-05-14 14:54:2051 days 9 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.0008559535.29
0x3640b8f562468ff54b48cb751511f5efbdb7efc92c65be01aabb0a97066e51e4Suspend Synth315999112022-05-14 14:24:2451 days 10 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.0008671135.75
0x1be0b19a7f65e507fbb8212f25b68ded68b29f9ed20f0e615be8f8cc92cce470Suspend Synth315995572022-05-14 13:54:1651 days 10 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.0008671135.75
0x1a8a28a3cf6ebe888031eccd43a10fcbe10a2832c01266ae64e16f3616083d1cSuspend Synths E...315874762022-05-13 20:04:2452 days 4 hrs ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00046123 2.75
0x72b41170a8c161ca60de4f3e308c520c5eee7dbc0a330d64395c66b41ba7e049Update Access Co...315768062022-05-13 5:42:2052 days 18 hrs ago0x73570075092502472e4b61a7058df1a4a1db12f2 IN  0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether0.00004906 1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x95584f39b38cc71df57e1d0b5f4b9b969ae91d3b0a46e529cdaad6515ebbffce325486612022-07-04 22:24:322 hrs 8 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x238d8e6c8a4511cd7a9e73df62d4aef84eaf5b631697f1995a22d646844b5bf6325485342022-07-04 22:12:322 hrs 20 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x5efd612407465a94f0643faf2314a850fb55b4876023e510cd24dcfadfe146a6325458722022-07-04 18:28:246 hrs 4 mins ago 0xf7440b98b0dc9b54bfae68288a11c48dabfe7d07 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x8656e32929a79463b0991ed712e8f83822381cc061bf1121d5d7224fff429b3a325438102022-07-04 15:37:128 hrs 55 mins ago 0x4bf55262c17388c13cdd9538a830b32191493667 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x8656e32929a79463b0991ed712e8f83822381cc061bf1121d5d7224fff429b3a325438102022-07-04 15:37:128 hrs 55 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0xfb24eb9cccd28957acc2a41e458910b5116662db6797e8b1d97ed06dc9b55bbb325437272022-07-04 15:30:169 hrs 2 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x1ed1c226a7f4e0fdf7dd54f8f6c173254a352e0434ad2fc9e2040def348ac06d325428942022-07-04 14:25:2810 hrs 7 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x1ed1c226a7f4e0fdf7dd54f8f6c173254a352e0434ad2fc9e2040def348ac06d325428942022-07-04 14:25:2810 hrs 7 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x42d97d69c0eeb1d8b0e1b564c7bbd39e6e0bf333f256d127b0709b72bed2b665325397032022-07-04 10:18:2014 hrs 14 mins ago 0xf7440b98b0dc9b54bfae68288a11c48dabfe7d07 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0xd807682b96b1b26c1f609087197068a009b5c704b8704436de61fda4f22e13d9325365702022-07-04 6:17:2818 hrs 15 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x5f75a2d2dc3ae403b9f449425f51f40a0861818a353313798c54dd14d0b46673325365622022-07-04 6:16:5618 hrs 15 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x46c098f67c6d2ea9a8a7f02ac7f0316c369d3347a585e3d9d5bd35e6b74fb7f9325365562022-07-04 6:16:3218 hrs 16 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x85a563da094c21df35ba7dc4f5dcddbccdfd5204bde3c3eaee149322fad51fbc325365522022-07-04 6:16:1618 hrs 16 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0xcb3d5956064731fc307e8382264b98be1acc71f26944c3c47e45c55c41843ba1325364962022-07-04 6:11:4418 hrs 21 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x661f74c00363f04c8acb143384964c344afd5913263fbfa7cbf880773d70e53d325356132022-07-04 4:58:5219 hrs 34 mins ago 0x4bf55262c17388c13cdd9538a830b32191493667 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x661f74c00363f04c8acb143384964c344afd5913263fbfa7cbf880773d70e53d325356132022-07-04 4:58:5219 hrs 34 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x27faf492a0a6aaca17c0d0f68adb4088f325a9f2887f4a6ae94e3aada6849b48325355962022-07-04 4:57:2419 hrs 35 mins ago 0x4bf55262c17388c13cdd9538a830b32191493667 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x18dd50c8504d3514e348f5525bb97ea40bef3254a8672f00b542f9bb1b71bebb325335042022-07-04 2:08:2422 hrs 24 mins ago 0xf7440b98b0dc9b54bfae68288a11c48dabfe7d07 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x9265f674fc50ec649b777c5c0766a8d2f794a72521cfc209dcebf64e4e3312bb325332382022-07-04 1:47:1622 hrs 45 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x4a1cceba0c26af13fa774e4a68a661677ca7aeadf34b572979a236177699f3a4325332302022-07-04 1:46:4422 hrs 46 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x369280491b256235998e7bfb2c8c0138a1e682e07fce30f9c57e836a795977d8325332242022-07-04 1:46:1622 hrs 46 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0xe303b5f1fc7b2516ac8fdb8a5e964dc26640fbfa59d40a7bb8f7d60be53ad477325332162022-07-04 1:45:3222 hrs 47 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x2ba5942bb470fca810da6d5d5dab70cf47b40da6bb81a4d9ddfabe22612cb5b3325317792022-07-03 23:46:201 day 46 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0x2ba5942bb470fca810da6d5d5dab70cf47b40da6bb81a4d9ddfabe22612cb5b3325317792022-07-03 23:46:201 day 46 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
0xbbae1115f47d6b97e7b5085d6ceb32c451c697d6f4bd265d5c6508f7d82fe610325317722022-07-03 23:45:481 day 47 mins ago 0x6377ed477e80df86e111593d67ba184d9a9c8ae3 0x648727a32112e6c233c1c5d8d57a9aa736ffb18b0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SystemStatus

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-16
*/

/*
   ____            __   __        __   _
  / __/__ __ ___  / /_ / /  ___  / /_ (_)__ __
 _\ \ / // // _ \/ __// _ \/ -_)/ __// / \ \ /
/___/ \_, //_//_/\__//_//_/\__/ \__//_/ /_\_\
     /___/

* Synthetix: SystemStatus.sol
*
* Latest source (may be newer): https://github.com/Synthetixio/synthetix/blob/master/contracts/SystemStatus.sol
* Docs: https://docs.synthetix.io/contracts/SystemStatus
*
* Contract Dependencies: 
*	- ISystemStatus
*	- Owned
* Libraries: (none)
*
* MIT License
* ===========
*
* Copyright (c) 2022 Synthetix
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
*/



pragma solidity ^0.5.16;

// https://docs.synthetix.io/contracts/source/contracts/owned
contract Owned {
    address public owner;
    address public nominatedOwner;

    constructor(address _owner) public {
        require(_owner != address(0), "Owner address cannot be 0");
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    function nominateNewOwner(address _owner) external onlyOwner {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    function acceptOwnership() external {
        require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership");
        emit OwnerChanged(owner, nominatedOwner);
        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner {
        _onlyOwner();
        _;
    }

    function _onlyOwner() private view {
        require(msg.sender == owner, "Only the contract owner may perform this action");
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}


// https://docs.synthetix.io/contracts/source/interfaces/isystemstatus
interface ISystemStatus {
    struct Status {
        bool canSuspend;
        bool canResume;
    }

    struct Suspension {
        bool suspended;
        // reason is an integer code,
        // 0 => no reason, 1 => upgrading, 2+ => defined by system usage
        uint248 reason;
    }

    // Views
    function accessControl(bytes32 section, address account) external view returns (bool canSuspend, bool canResume);

    function requireSystemActive() external view;

    function systemSuspended() external view returns (bool);

    function requireIssuanceActive() external view;

    function requireExchangeActive() external view;

    function requireFuturesActive() external view;

    function requireFuturesMarketActive(bytes32 marketKey) external view;

    function requireExchangeBetweenSynthsAllowed(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) external view;

    function requireSynthActive(bytes32 currencyKey) external view;

    function synthSuspended(bytes32 currencyKey) external view returns (bool);

    function requireSynthsActive(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) external view;

    function systemSuspension() external view returns (bool suspended, uint248 reason);

    function issuanceSuspension() external view returns (bool suspended, uint248 reason);

    function exchangeSuspension() external view returns (bool suspended, uint248 reason);

    function futuresSuspension() external view returns (bool suspended, uint248 reason);

    function synthExchangeSuspension(bytes32 currencyKey) external view returns (bool suspended, uint248 reason);

    function synthSuspension(bytes32 currencyKey) external view returns (bool suspended, uint248 reason);

    function futuresMarketSuspension(bytes32 marketKey) external view returns (bool suspended, uint248 reason);

    function getSynthExchangeSuspensions(bytes32[] calldata synths)
        external
        view
        returns (bool[] memory exchangeSuspensions, uint256[] memory reasons);

    function getSynthSuspensions(bytes32[] calldata synths)
        external
        view
        returns (bool[] memory suspensions, uint256[] memory reasons);

    function getFuturesMarketSuspensions(bytes32[] calldata marketKeys)
        external
        view
        returns (bool[] memory suspensions, uint256[] memory reasons);

    // Restricted functions
    function suspendIssuance(uint256 reason) external;

    function suspendSynth(bytes32 currencyKey, uint256 reason) external;

    function suspendFuturesMarket(bytes32 marketKey, uint256 reason) external;

    function updateAccessControl(
        bytes32 section,
        address account,
        bool canSuspend,
        bool canResume
    ) external;
}


// Inheritance


// https://docs.synthetix.io/contracts/source/contracts/systemstatus
contract SystemStatus is Owned, ISystemStatus {
    mapping(bytes32 => mapping(address => Status)) public accessControl;

    uint248 public constant SUSPENSION_REASON_UPGRADE = 1;

    bytes32 public constant SECTION_SYSTEM = "System";
    bytes32 public constant SECTION_ISSUANCE = "Issuance";
    bytes32 public constant SECTION_EXCHANGE = "Exchange";
    bytes32 public constant SECTION_FUTURES = "Futures";
    bytes32 public constant SECTION_SYNTH_EXCHANGE = "SynthExchange";
    bytes32 public constant SECTION_SYNTH = "Synth";

    Suspension public systemSuspension;

    Suspension public issuanceSuspension;

    Suspension public exchangeSuspension;

    Suspension public futuresSuspension;

    mapping(bytes32 => Suspension) public synthExchangeSuspension;

    mapping(bytes32 => Suspension) public synthSuspension;

    mapping(bytes32 => Suspension) public futuresMarketSuspension;

    constructor(address _owner) public Owned(_owner) {}

    /* ========== VIEWS ========== */
    function requireSystemActive() external view {
        _internalRequireSystemActive();
    }

    function systemSuspended() external view returns (bool) {
        return systemSuspension.suspended;
    }

    function requireIssuanceActive() external view {
        // Issuance requires the system be active
        _internalRequireSystemActive();

        // and issuance itself of course
        _internalRequireIssuanceActive();
    }

    function requireExchangeActive() external view {
        // Exchanging requires the system be active
        _internalRequireSystemActive();

        // and exchanging itself of course
        _internalRequireExchangeActive();
    }

    function requireSynthExchangeActive(bytes32 currencyKey) external view {
        // Synth exchange and transfer requires the system be active
        _internalRequireSystemActive();
        _internalRequireSynthExchangeActive(currencyKey);
    }

    function requireFuturesActive() external view {
        _internalRequireSystemActive();
        _internalRequireExchangeActive();
        _internalRequireFuturesActive();
    }

    /// @notice marketKey doesn't necessarily correspond to asset key
    function requireFuturesMarketActive(bytes32 marketKey) external view {
        _internalRequireSystemActive();
        _internalRequireExchangeActive(); // exchanging implicitely used
        _internalRequireFuturesActive(); // futures global flag
        _internalRequireFuturesMarketActive(marketKey); // specific futures market flag
    }

    function synthSuspended(bytes32 currencyKey) external view returns (bool) {
        return systemSuspension.suspended || synthSuspension[currencyKey].suspended;
    }

    function requireSynthActive(bytes32 currencyKey) external view {
        // Synth exchange and transfer requires the system be active
        _internalRequireSystemActive();
        _internalRequireSynthActive(currencyKey);
    }

    function requireSynthsActive(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) external view {
        // Synth exchange and transfer requires the system be active
        _internalRequireSystemActive();
        _internalRequireSynthActive(sourceCurrencyKey);
        _internalRequireSynthActive(destinationCurrencyKey);
    }

    function requireExchangeBetweenSynthsAllowed(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) external view {
        // Synth exchange and transfer requires the system be active
        _internalRequireSystemActive();

        // and exchanging must be active
        _internalRequireExchangeActive();

        // and the synth exchanging between the synths must be active
        _internalRequireSynthExchangeActive(sourceCurrencyKey);
        _internalRequireSynthExchangeActive(destinationCurrencyKey);

        // and finally, the synths cannot be suspended
        _internalRequireSynthActive(sourceCurrencyKey);
        _internalRequireSynthActive(destinationCurrencyKey);
    }

    function isSystemUpgrading() external view returns (bool) {
        return systemSuspension.suspended && systemSuspension.reason == SUSPENSION_REASON_UPGRADE;
    }

    function getSynthExchangeSuspensions(bytes32[] calldata synths)
        external
        view
        returns (bool[] memory exchangeSuspensions, uint256[] memory reasons)
    {
        exchangeSuspensions = new bool[](synths.length);
        reasons = new uint256[](synths.length);

        for (uint i = 0; i < synths.length; i++) {
            exchangeSuspensions[i] = synthExchangeSuspension[synths[i]].suspended;
            reasons[i] = synthExchangeSuspension[synths[i]].reason;
        }
    }

    function getSynthSuspensions(bytes32[] calldata synths)
        external
        view
        returns (bool[] memory suspensions, uint256[] memory reasons)
    {
        suspensions = new bool[](synths.length);
        reasons = new uint256[](synths.length);

        for (uint i = 0; i < synths.length; i++) {
            suspensions[i] = synthSuspension[synths[i]].suspended;
            reasons[i] = synthSuspension[synths[i]].reason;
        }
    }

    /// @notice marketKey doesn't necessarily correspond to asset key
    function getFuturesMarketSuspensions(bytes32[] calldata marketKeys)
        external
        view
        returns (bool[] memory suspensions, uint256[] memory reasons)
    {
        suspensions = new bool[](marketKeys.length);
        reasons = new uint256[](marketKeys.length);

        for (uint i = 0; i < marketKeys.length; i++) {
            suspensions[i] = futuresMarketSuspension[marketKeys[i]].suspended;
            reasons[i] = futuresMarketSuspension[marketKeys[i]].reason;
        }
    }

    /* ========== MUTATIVE FUNCTIONS ========== */
    function updateAccessControl(
        bytes32 section,
        address account,
        bool canSuspend,
        bool canResume
    ) external onlyOwner {
        _internalUpdateAccessControl(section, account, canSuspend, canResume);
    }

    function updateAccessControls(
        bytes32[] calldata sections,
        address[] calldata accounts,
        bool[] calldata canSuspends,
        bool[] calldata canResumes
    ) external onlyOwner {
        require(
            sections.length == accounts.length &&
                accounts.length == canSuspends.length &&
                canSuspends.length == canResumes.length,
            "Input array lengths must match"
        );
        for (uint i = 0; i < sections.length; i++) {
            _internalUpdateAccessControl(sections[i], accounts[i], canSuspends[i], canResumes[i]);
        }
    }

    function suspendSystem(uint256 reason) external {
        _requireAccessToSuspend(SECTION_SYSTEM);
        systemSuspension.suspended = true;
        systemSuspension.reason = uint248(reason);
        emit SystemSuspended(systemSuspension.reason);
    }

    function resumeSystem() external {
        _requireAccessToResume(SECTION_SYSTEM);
        systemSuspension.suspended = false;
        emit SystemResumed(uint256(systemSuspension.reason));
        systemSuspension.reason = 0;
    }

    function suspendIssuance(uint256 reason) external {
        _requireAccessToSuspend(SECTION_ISSUANCE);
        issuanceSuspension.suspended = true;
        issuanceSuspension.reason = uint248(reason);
        emit IssuanceSuspended(reason);
    }

    function resumeIssuance() external {
        _requireAccessToResume(SECTION_ISSUANCE);
        issuanceSuspension.suspended = false;
        emit IssuanceResumed(uint256(issuanceSuspension.reason));
        issuanceSuspension.reason = 0;
    }

    function suspendExchange(uint256 reason) external {
        _requireAccessToSuspend(SECTION_EXCHANGE);
        exchangeSuspension.suspended = true;
        exchangeSuspension.reason = uint248(reason);
        emit ExchangeSuspended(reason);
    }

    function resumeExchange() external {
        _requireAccessToResume(SECTION_EXCHANGE);
        exchangeSuspension.suspended = false;
        emit ExchangeResumed(uint256(exchangeSuspension.reason));
        exchangeSuspension.reason = 0;
    }

    function suspendFutures(uint256 reason) external {
        _requireAccessToSuspend(SECTION_FUTURES);
        futuresSuspension.suspended = true;
        futuresSuspension.reason = uint248(reason);
        emit FuturesSuspended(reason);
    }

    function resumeFutures() external {
        _requireAccessToResume(SECTION_FUTURES);
        futuresSuspension.suspended = false;
        emit FuturesResumed(uint256(futuresSuspension.reason));
        futuresSuspension.reason = 0;
    }

    /// @notice marketKey doesn't necessarily correspond to asset key
    function suspendFuturesMarket(bytes32 marketKey, uint256 reason) external {
        bytes32[] memory marketKeys = new bytes32[](1);
        marketKeys[0] = marketKey;
        _internalSuspendFuturesMarkets(marketKeys, reason);
    }

    /// @notice marketKey doesn't necessarily correspond to asset key
    function suspendFuturesMarkets(bytes32[] calldata marketKeys, uint256 reason) external {
        _internalSuspendFuturesMarkets(marketKeys, reason);
    }

    /// @notice marketKey doesn't necessarily correspond to asset key
    function resumeFuturesMarket(bytes32 marketKey) external {
        bytes32[] memory marketKeys = new bytes32[](1);
        marketKeys[0] = marketKey;
        _internalResumeFuturesMarkets(marketKeys);
    }

    /// @notice marketKey doesn't necessarily correspond to asset key
    function resumeFuturesMarkets(bytes32[] calldata marketKeys) external {
        _internalResumeFuturesMarkets(marketKeys);
    }

    function suspendSynthExchange(bytes32 currencyKey, uint256 reason) external {
        bytes32[] memory currencyKeys = new bytes32[](1);
        currencyKeys[0] = currencyKey;
        _internalSuspendSynthExchange(currencyKeys, reason);
    }

    function suspendSynthsExchange(bytes32[] calldata currencyKeys, uint256 reason) external {
        _internalSuspendSynthExchange(currencyKeys, reason);
    }

    function resumeSynthExchange(bytes32 currencyKey) external {
        bytes32[] memory currencyKeys = new bytes32[](1);
        currencyKeys[0] = currencyKey;
        _internalResumeSynthsExchange(currencyKeys);
    }

    function resumeSynthsExchange(bytes32[] calldata currencyKeys) external {
        _internalResumeSynthsExchange(currencyKeys);
    }

    function suspendSynth(bytes32 currencyKey, uint256 reason) external {
        bytes32[] memory currencyKeys = new bytes32[](1);
        currencyKeys[0] = currencyKey;
        _internalSuspendSynths(currencyKeys, reason);
    }

    function suspendSynths(bytes32[] calldata currencyKeys, uint256 reason) external {
        _internalSuspendSynths(currencyKeys, reason);
    }

    function resumeSynth(bytes32 currencyKey) external {
        bytes32[] memory currencyKeys = new bytes32[](1);
        currencyKeys[0] = currencyKey;
        _internalResumeSynths(currencyKeys);
    }

    function resumeSynths(bytes32[] calldata currencyKeys) external {
        _internalResumeSynths(currencyKeys);
    }

    /* ========== INTERNAL FUNCTIONS ========== */

    function _requireAccessToSuspend(bytes32 section) internal view {
        require(accessControl[section][msg.sender].canSuspend, "Restricted to access control list");
    }

    function _requireAccessToResume(bytes32 section) internal view {
        require(accessControl[section][msg.sender].canResume, "Restricted to access control list");
    }

    function _internalRequireSystemActive() internal view {
        require(
            !systemSuspension.suspended,
            systemSuspension.reason == SUSPENSION_REASON_UPGRADE
                ? "Synthetix is suspended, upgrade in progress... please stand by"
                : "Synthetix is suspended. Operation prohibited"
        );
    }

    function _internalRequireIssuanceActive() internal view {
        require(!issuanceSuspension.suspended, "Issuance is suspended. Operation prohibited");
    }

    function _internalRequireExchangeActive() internal view {
        require(!exchangeSuspension.suspended, "Exchange is suspended. Operation prohibited");
    }

    function _internalRequireFuturesActive() internal view {
        require(!futuresSuspension.suspended, "Futures markets are suspended. Operation prohibited");
    }

    function _internalRequireSynthExchangeActive(bytes32 currencyKey) internal view {
        require(!synthExchangeSuspension[currencyKey].suspended, "Synth exchange suspended. Operation prohibited");
    }

    function _internalRequireSynthActive(bytes32 currencyKey) internal view {
        require(!synthSuspension[currencyKey].suspended, "Synth is suspended. Operation prohibited");
    }

    function _internalRequireFuturesMarketActive(bytes32 marketKey) internal view {
        require(!futuresMarketSuspension[marketKey].suspended, "Market suspended");
    }

    function _internalSuspendSynths(bytes32[] memory currencyKeys, uint256 reason) internal {
        _requireAccessToSuspend(SECTION_SYNTH);
        for (uint i = 0; i < currencyKeys.length; i++) {
            bytes32 currencyKey = currencyKeys[i];
            synthSuspension[currencyKey].suspended = true;
            synthSuspension[currencyKey].reason = uint248(reason);
            emit SynthSuspended(currencyKey, reason);
        }
    }

    function _internalResumeSynths(bytes32[] memory currencyKeys) internal {
        _requireAccessToResume(SECTION_SYNTH);
        for (uint i = 0; i < currencyKeys.length; i++) {
            bytes32 currencyKey = currencyKeys[i];
            emit SynthResumed(currencyKey, uint256(synthSuspension[currencyKey].reason));
            delete synthSuspension[currencyKey];
        }
    }

    function _internalSuspendSynthExchange(bytes32[] memory currencyKeys, uint256 reason) internal {
        _requireAccessToSuspend(SECTION_SYNTH_EXCHANGE);
        for (uint i = 0; i < currencyKeys.length; i++) {
            bytes32 currencyKey = currencyKeys[i];
            synthExchangeSuspension[currencyKey].suspended = true;
            synthExchangeSuspension[currencyKey].reason = uint248(reason);
            emit SynthExchangeSuspended(currencyKey, reason);
        }
    }

    function _internalResumeSynthsExchange(bytes32[] memory currencyKeys) internal {
        _requireAccessToResume(SECTION_SYNTH_EXCHANGE);
        for (uint i = 0; i < currencyKeys.length; i++) {
            bytes32 currencyKey = currencyKeys[i];
            emit SynthExchangeResumed(currencyKey, uint256(synthExchangeSuspension[currencyKey].reason));
            delete synthExchangeSuspension[currencyKey];
        }
    }

    function _internalSuspendFuturesMarkets(bytes32[] memory marketKeys, uint256 reason) internal {
        _requireAccessToSuspend(SECTION_FUTURES);
        for (uint i = 0; i < marketKeys.length; i++) {
            bytes32 marketKey = marketKeys[i];
            futuresMarketSuspension[marketKey].suspended = true;
            futuresMarketSuspension[marketKey].reason = uint248(reason);
            emit FuturesMarketSuspended(marketKey, reason);
        }
    }

    function _internalResumeFuturesMarkets(bytes32[] memory marketKeys) internal {
        _requireAccessToResume(SECTION_FUTURES);
        for (uint i = 0; i < marketKeys.length; i++) {
            bytes32 marketKey = marketKeys[i];
            emit FuturesMarketResumed(marketKey, uint256(futuresMarketSuspension[marketKey].reason));
            delete futuresMarketSuspension[marketKey];
        }
    }

    function _internalUpdateAccessControl(
        bytes32 section,
        address account,
        bool canSuspend,
        bool canResume
    ) internal {
        require(
            section == SECTION_SYSTEM ||
                section == SECTION_ISSUANCE ||
                section == SECTION_EXCHANGE ||
                section == SECTION_FUTURES ||
                section == SECTION_SYNTH_EXCHANGE ||
                section == SECTION_SYNTH,
            "Invalid section supplied"
        );
        accessControl[section][account].canSuspend = canSuspend;
        accessControl[section][account].canResume = canResume;
        emit AccessControlUpdated(section, account, canSuspend, canResume);
    }

    /* ========== EVENTS ========== */

    event SystemSuspended(uint256 reason);
    event SystemResumed(uint256 reason);

    event IssuanceSuspended(uint256 reason);
    event IssuanceResumed(uint256 reason);

    event ExchangeSuspended(uint256 reason);
    event ExchangeResumed(uint256 reason);

    event FuturesSuspended(uint256 reason);
    event FuturesResumed(uint256 reason);

    event SynthExchangeSuspended(bytes32 currencyKey, uint256 reason);
    event SynthExchangeResumed(bytes32 currencyKey, uint256 reason);

    event SynthSuspended(bytes32 currencyKey, uint256 reason);
    event SynthResumed(bytes32 currencyKey, uint256 reason);

    event FuturesMarketSuspended(bytes32 marketKey, uint256 reason);
    event FuturesMarketResumed(bytes32 marketKey, uint256 reason);

    event AccessControlUpdated(bytes32 indexed section, address indexed account, bool canSuspend, bool canResume);
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"section","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"canSuspend","type":"bool"},{"indexed":false,"internalType":"bool","name":"canResume","type":"bool"}],"name":"AccessControlUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"ExchangeResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"ExchangeSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"marketKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"FuturesMarketResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"marketKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"FuturesMarketSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"FuturesResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"FuturesSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"IssuanceResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"IssuanceSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"SynthExchangeResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"SynthExchangeSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"SynthResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"SynthSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"SystemResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reason","type":"uint256"}],"name":"SystemSuspended","type":"event"},{"constant":true,"inputs":[],"name":"SECTION_EXCHANGE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_FUTURES","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_ISSUANCE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_SYNTH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_SYNTH_EXCHANGE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_SYSTEM","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SUSPENSION_REASON_UPGRADE","outputs":[{"internalType":"uint248","name":"","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"accessControl","outputs":[{"internalType":"bool","name":"canSuspend","type":"bool"},{"internalType":"bool","name":"canResume","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exchangeSuspension","outputs":[{"internalType":"bool","name":"suspended","type":"bool"},{"internalType":"uint248","name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"futuresMarketSuspension","outputs":[{"internalType":"bool","name":"suspended","type":"bool"},{"internalType":"uint248","name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"futuresSuspension","outputs":[{"internalType":"bool","name":"suspended","type":"bool"},{"internalType":"uint248","name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32[]","name":"marketKeys","type":"bytes32[]"}],"name":"getFuturesMarketSuspensions","outputs":[{"internalType":"bool[]","name":"suspensions","type":"bool[]"},{"internalType":"uint256[]","name":"reasons","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32[]","name":"synths","type":"bytes32[]"}],"name":"getSynthExchangeSuspensions","outputs":[{"internalType":"bool[]","name":"exchangeSuspensions","type":"bool[]"},{"internalType":"uint256[]","name":"reasons","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32[]","name":"synths","type":"bytes32[]"}],"name":"getSynthSuspensions","outputs":[{"internalType":"bool[]","name":"suspensions","type":"bool[]"},{"internalType":"uint256[]","name":"reasons","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isSystemUpgrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"issuanceSuspension","outputs":[{"internalType":"bool","name":"suspended","type":"bool"},{"internalType":"uint248","name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requireExchangeActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"sourceCurrencyKey","type":"bytes32"},{"internalType":"bytes32","name":"destinationCurrencyKey","type":"bytes32"}],"name":"requireExchangeBetweenSynthsAllowed","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requireFuturesActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"marketKey","type":"bytes32"}],"name":"requireFuturesMarketActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requireIssuanceActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"currencyKey","type":"bytes32"}],"name":"requireSynthActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"currencyKey","type":"bytes32"}],"name":"requireSynthExchangeActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"sourceCurrencyKey","type":"bytes32"},{"internalType":"bytes32","name":"destinationCurrencyKey","type":"bytes32"}],"name":"requireSynthsActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"requireSystemActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resumeFutures","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"marketKey","type":"bytes32"}],"name":"resumeFuturesMarket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"marketKeys","type":"bytes32[]"}],"name":"resumeFuturesMarkets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resumeIssuance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"currencyKey","type":"bytes32"}],"name":"resumeSynth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"currencyKey","type":"bytes32"}],"name":"resumeSynthExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"currencyKeys","type":"bytes32[]"}],"name":"resumeSynths","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"currencyKeys","type":"bytes32[]"}],"name":"resumeSynthsExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resumeSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendFutures","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"marketKey","type":"bytes32"},{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendFuturesMarket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"marketKeys","type":"bytes32[]"},{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendFuturesMarkets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendIssuance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendSynth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendSynthExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"currencyKeys","type":"bytes32[]"},{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendSynths","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"currencyKeys","type":"bytes32[]"},{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendSynthsExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"reason","type":"uint256"}],"name":"suspendSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"synthExchangeSuspension","outputs":[{"internalType":"bool","name":"suspended","type":"bool"},{"internalType":"uint248","name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"currencyKey","type":"bytes32"}],"name":"synthSuspended","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"synthSuspension","outputs":[{"internalType":"bool","name":"suspended","type":"bool"},{"internalType":"uint248","name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"systemSuspended","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"systemSuspension","outputs":[{"internalType":"bool","name":"suspended","type":"bool"},{"internalType":"uint248","name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"section","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"canSuspend","type":"bool"},{"internalType":"bool","name":"canResume","type":"bool"}],"name":"updateAccessControl","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"sections","type":"bytes32[]"},{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool[]","name":"canSuspends","type":"bool[]"},{"internalType":"bool[]","name":"canResumes","type":"bool[]"}],"name":"updateAccessControls","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516127f33803806127f38339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506126f9806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c806367a280b2116101d3578063abc0bb6e11610104578063e665edf0116100a2578063f405f65a1161007c578063f405f65a14610d4e578063f44d1e0b14610d56578063f4c80f5e14610d5e578063f8b4b08414610d7b57610378565b8063e665edf014610cbb578063e91e691814610d29578063f161620714610d4657610378565b8063c0eee443116100de578063c0eee44314610c0b578063da5917ae14610c13578063de1b885114610c30578063e470df5814610c9e57610378565b8063abc0bb6e14610b5d578063b431c0ea14610b80578063b9a4986914610b9d57610378565b80637fe9b23d1161017157806394c79f741161014b57806394c79f7414610b0c5780639f8a95ba14610b29578063a0aad31c14610b4d578063a55ce9c514610b5557610378565b80637fe9b23d14610a79578063856aae6c14610ae75780638da5cb5b14610b0457610378565b80637118d431116101ad5780637118d43114610a445780637243bc2c14610a4c57806379ba509714610a695780637c31254114610a7157610378565b806367a280b2146108c757806369eaced2146108cf5780636ef5d8411461093d57610378565b80632dd8afdb116102ad5780634abdb44d1161024b57806355585bce1161022557806355585bce1461087757806356c3da451461087f5780636132eba4146108875780636309a10c146108aa57610378565b80634abdb44d146106ed578063517d60c6146106f557806353a47bb71461085357610378565b8063396e258e11610287578063396e258e1461065457806342a28e211461067157806348bf19711461068e5780634a661850146106ca57610378565b80632dd8afdb146106285780632e8d0b9e14610630578063346cde511461064c57610378565b80631ce00ba21161031a57806322264567116102f457806322264567146105725780632366245e146105955780632a647ab71461059d5780632be470901461060b57610378565b80631ce00ba21461049a5780631f4b3401146104bd57806320f2bf001461052b57610378565b80631588e817116103565780631588e817146103a95780631627540c146103c6578063180113bc146103ec5780631cba727c1461042c57610378565b8063086dabd11461037d57806312bde51414610387578063157c51d3146103a1575b600080fd5b610385610d83565b005b61038f610d8d565b60408051918252519081900360200190f35b610385610d9a565b610385600480360360208110156103bf57600080fd5b5035610e04565b610385600480360360208110156103dc57600080fd5b50356001600160a01b0316610e6f565b6104096004803603602081101561040257600080fd5b5035610ecb565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b6103856004803603604081101561044257600080fd5b810190602081018135600160201b81111561045c57600080fd5b82018360208201111561046e57600080fd5b803590602001918460208302840111600160201b8311171561048f57600080fd5b919350915035610ef0565b610385600480360360408110156104b057600080fd5b5080359060200135610f33565b610385600480360360208110156104d357600080fd5b810190602081018135600160201b8111156104ed57600080fd5b8201836020820111156104ff57600080fd5b803590602001918460208302840111600160201b8311171561052057600080fd5b509092509050610f6b565b6105576004803603604081101561054157600080fd5b50803590602001356001600160a01b0316610fa7565b60408051921515835290151560208301528051918290030190f35b6103856004803603604081101561058857600080fd5b5080359060200135610fd0565b610409611016565b610385600480360360408110156105b357600080fd5b810190602081018135600160201b8111156105cd57600080fd5b8201836020820111156105df57600080fd5b803590602001918460208302840111600160201b8311171561060057600080fd5b91935091503561102f565b6103856004803603602081101561062157600080fd5b503561106d565b6104096110d7565b6106386110f0565b604080519115158252519081900360200190f35b61040961111a565b6103856004803603602081101561066a57600080fd5b5035611133565b6103856004803603602081101561068757600080fd5b503561119e565b610385600480360360808110156106a457600080fd5b508035906001600160a01b036020820135169060408101351515906060013515156111b2565b610385600480360360408110156106e057600080fd5b50803590602001356111cc565b61038f611212565b6103856004803603608081101561070b57600080fd5b810190602081018135600160201b81111561072557600080fd5b82018360208201111561073757600080fd5b803590602001918460208302840111600160201b8311171561075857600080fd5b919390929091602081019035600160201b81111561077557600080fd5b82018360208201111561078757600080fd5b803590602001918460208302840111600160201b831117156107a857600080fd5b919390929091602081019035600160201b8111156107c557600080fd5b8201836020820111156107d757600080fd5b803590602001918460208302840111600160201b831117156107f857600080fd5b919390929091602081019035600160201b81111561081557600080fd5b82018360208201111561082757600080fd5b803590602001918460208302840111600160201b8311171561084857600080fd5b509092509050611221565b61085b611312565b604080516001600160a01b039092168252519081900360200190f35b610385611321565b61038f61138c565b6103856004803603604081101561089d57600080fd5b508035906020013561139a565b610385600480360360208110156108c057600080fd5b50356113a2565b6103856113e7565b610385600480360360208110156108e557600080fd5b810190602081018135600160201b8111156108ff57600080fd5b82018360208201111561091157600080fd5b803590602001918460208302840111600160201b8311171561093257600080fd5b509092509050611453565b6109ab6004803603602081101561095357600080fd5b810190602081018135600160201b81111561096d57600080fd5b82018360208201111561097f57600080fd5b803590602001918460208302840111600160201b831117156109a057600080fd5b50909250905061148f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156109ef5781810151838201526020016109d7565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a2e578181015183820152602001610a16565b5050505090500194505050505060405180910390f35b6103856115b8565b61040960048036036020811015610a6257600080fd5b50356115c8565b6103856115ed565b6103856116a9565b61038560048036036040811015610a8f57600080fd5b810190602081018135600160201b811115610aa957600080fd5b820183602082011115610abb57600080fd5b803590602001918460208302840111600160201b83111715610adc57600080fd5b9193509150356116b9565b61038560048036036020811015610afd57600080fd5b50356116f7565b61085b611718565b61038560048036036020811015610b2257600080fd5b5035611727565b610b3161176c565b604080516001600160f81b039092168252519081900360200190f35b610385611771565b61038f611789565b61038560048036036040811015610b7357600080fd5b508035906020013561179d565b61063860048036036020811015610b9657600080fd5b50356117e3565b6109ab60048036036020811015610bb357600080fd5b810190602081018135600160201b811115610bcd57600080fd5b820183602082011115610bdf57600080fd5b803590602001918460208302840111600160201b83111715610c0057600080fd5b50909250905061180b565b61063861192c565b61038560048036036020811015610c2957600080fd5b5035611935565b61038560048036036020811015610c4657600080fd5b810190602081018135600160201b811115610c6057600080fd5b820183602082011115610c7257600080fd5b803590602001918460208302840111600160201b83111715610c9357600080fd5b509092509050611946565b61038560048036036020811015610cb457600080fd5b5035611982565b6109ab60048036036020811015610cd157600080fd5b810190602081018135600160201b811115610ceb57600080fd5b820183602082011115610cfd57600080fd5b803590602001918460208302840111600160201b83111715610d1e57600080fd5b5090925090506119f7565b61040960048036036020811015610d3f57600080fd5b5035611b18565b61038f611b3d565b610385611b4c565b61038f611bb8565b61038560048036036020811015610d7457600080fd5b5035611bc4565b610409611c09565b610d8b611c22565b565b6553797374656d60d01b81565b610dac6553797374656d60d01b611d01565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610e186745786368616e676560c01b611d5e565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610e77611db6565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60096020526000908152604090205460ff81169061010090046001600160f81b031682565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611dff915050565b505050565b610f3b611c22565b610f43611ead565b610f4c82611eef565b610f5581611eef565b610f5e82611f3d565b610f6781611f3d565b5050565b610f67828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611f8b92505050565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061100057fe5b602002602001018181525050610f2e8183612033565b60045460ff81169061010090046001600160f81b031682565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612033915050565b611080664675747572657360c81b611d5e565b600680546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fbb77bf6af5bb933d0fb912130167ce25b6debb9c728f232ee4e7c181f16c8e0c9181900360200190a150565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015611115575060035461010090046001600160f81b03166001145b905090565b60065460ff81169061010090046001600160f81b031682565b6111476749737375616e636560c01b611d5e565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b6111a6611c22565b6111af81611f3d565b50565b6111ba611db6565b6111c6848484846120db565b50505050565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106111fc57fe5b602002602001018181525050610f2e8183611dff565b6749737375616e636560c01b81565b611229611db6565b868514801561123757508483145b801561124257508281145b611293576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b87811015611307576112ff8989838181106112ad57fe5b905060200201358888848181106112c057fe5b905060200201356001600160a01b03168787858181106112dc57fe5b9050602002013515158686868181106112f157fe5b9050602002013515156120db565b600101611296565b505050505050505050565b6001546001600160a01b031681565b611334664675747572657360c81b611d01565b6006805460ff191690819055604080516101009092046001600160f81b03168252517fcbdc17547b5be7fb4a78666d4253509496561d5b1088a019865bd70d7e248fa6916020908290030190a16006805460ff169055565b664675747572657360c81b81565b610f55611c22565b6040805160018082528183019092526060916020808301908038833901905050905081816000815181106113d257fe5b602002602001018181525050610f6781612221565b6113fb6749737375616e636560c01b611d01565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610f6782828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061222192505050565b606080838390506040519080825280602002602001820160405280156114bf578160200160208202803883390190505b506040805185815260208087028201019091529092508380156114ec578160200160208202803883390190505b50905060005b838110156115b0576009600086868481811061150a57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061153c57fe5b911515602092830291909101909101526009600086868481811061155c57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061159d57fe5b60209081029190910101526001016114f2565b509250929050565b6115c0611c22565b610d8b611ead565b60086020526000908152604090205460ff81169061010090046001600160f81b031682565b6001546001600160a01b031633146116365760405162461bcd60e51b81526004018080602001828103825260358152602001806124f76035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6116b1611c22565b610d8b6122cf565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612311915050565b6116ff611c22565b611707611ead565b61170f6123b7565b6111af816123f9565b6000546001600160a01b031681565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811061175757fe5b602002602001018181525050610f6781612450565b600181565b611779611c22565b611781611ead565b610d8b6123b7565b6c53796e746845786368616e676560981b81565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106117cd57fe5b602002602001018181525050610f2e8183612311565b60035460009060ff1680611805575060008281526008602052604090205460ff165b92915050565b6060808383905060405190808252806020026020018201604052801561183b578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611868578160200160208202803883390190505b50905060005b838110156115b0576008600086868481811061188657fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff168382815181106118b857fe5b91151560209283029190910190910152600860008686848181106118d857fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061191957fe5b602090810291909101015260010161186e565b60035460ff1690565b61193d611c22565b6111af81611eef565b610f6782828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061245092505050565b6119946553797374656d60d01b611d5e565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b60608083839050604051908082528060200260200182016040528015611a27578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611a54578160200160208202803883390190505b50905060005b838110156115b05760076000868684818110611a7257fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff16838281518110611aa457fe5b9115156020928302919091019091015260076000868684818110611ac457fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b0316828281518110611b0557fe5b6020908102919091010152600101611a5a565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6745786368616e676560c01b81565b611b606745786368616e676560c01b611d01565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b640a6f2dce8d60db1b81565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110611bf457fe5b602002602001018181525050610f6781611f8b565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b0316600114611c5e576040518060600160405280602c8152602001612633602c9139611c78565b6040518060600160405280603e815260200161265f603e91395b906111af5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cc6578181015183820152602001611cae565b50505050905090810190601f168015611cf35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff166111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806126126021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff166111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806126126021913960400191505060405180910390fd5b6000546001600160a01b03163314610d8b5760405162461bcd60e51b815260040180806020018281038252602f8152602001806125b8602f913960400191505060405180910390fd5b611e186c53796e746845786368616e676560981b611d5e565b60005b8251811015610f2e576000838281518110611e3257fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcea0da706e9f2a6a1cb56cdab42ac548791339f1710deadf814f15fc0a6a7114928290030190a150600101611e1b565b60055460ff1615610d8b5760405162461bcd60e51b815260040180806020018281038252602b8152602001806125e7602b913960400191505060405180910390fd5b60008181526007602052604090205460ff16156111af5760405162461bcd60e51b815260040180806020018281038252602e815260200180612557602e913960400191505060405180910390fd5b60008181526008602052604090205460ff16156111af5760405162461bcd60e51b815260040180806020018281038252602881526020018061269d6028913960400191505060405180910390fd5b611f9e664675747572657360c81b611d01565b60005b8151811015610f67576000828281518110611fb857fe5b6020908102919091018101516000818152600983526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f250fcb5d34afaf9bc18ec9ca0bf709e0f2ecb8ae4d4a3a616c0bf54b2ddf53e6928290030190a1600090815260096020526040812055600101611fa1565b612046664675747572657360c81b611d5e565b60005b8251811015610f2e57600083828151811061206057fe5b60209081029190910181015160008181526009835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcaa561b71353382b62092c429c14613b5db8f9c5f3a27cb51df16e51f350f8ca928290030190a150600101612049565b6553797374656d60d01b8414806120fc57506749737375616e636560c01b84145b8061211157506745786368616e676560c01b84145b806121255750664675747572657360c81b84145b8061213f57506c53796e746845786368616e676560981b84145b806121515750640a6f2dce8d60db1b84145b6121a2576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b61223a6c53796e746845786368616e676560981b611d01565b60005b8151811015610f6757600082828151811061225457fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f91037f810fbf9c3c6d5573650d27de6b5e8d2187698822700d4524102472bc08928290030190a160009081526007602052604081205560010161223d565b60045460ff1615610d8b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061252c602b913960400191505060405180910390fd5b612322640a6f2dce8d60db1b611d5e565b60005b8251811015610f2e57600083828151811061233c57fe5b60209081029190910181015160008181526008835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541928290030190a150600101612325565b60065460ff1615610d8b5760405162461bcd60e51b81526004018080602001828103825260338152602001806125856033913960400191505060405180910390fd5b60008181526009602052604090205460ff16156111af576040805162461bcd60e51b815260206004820152601060248201526f13585c9ad95d081cdd5cdc195b99195960821b604482015290519081900360640190fd5b612461640a6f2dce8d60db1b611d01565b60005b8151811015610f6757600082828151811061247b57fe5b6020908102919091018101516000818152600883526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220928290030190a160009081526008602052604081205560010161246456fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697049737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f6869626974656446757475726573206d61726b657473206172652073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645265737472696374656420746f2061636365737320636f6e74726f6c206c69737453796e7468657469782069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e7468657469782069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e6420627953796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a723158204686188d9754cca204e2d4dcbb6a49d013e5c6095dd8644a1fd4b01347aa056c64736f6c6343000510003200000000000000000000000073570075092502472e4b61a7058df1a4a1db12f2

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

00000000000000000000000073570075092502472e4b61a7058df1a4a1db12f2

-----Decoded View---------------
Arg [0] : _owner (address): 0x73570075092502472e4b61a7058df1a4a1db12f2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000073570075092502472e4b61a7058df1a4a1db12f2


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.