Contract 0x0800Ca66234E4691690485d9e45d8A8c9e6F9B52

Contract Overview

Balance:
0 Ether
Txn Hash Method
Block
From
To
Value
0x53009ed7bae52af6840d957bd986beba160d0d177fb3a64cf44767aa3a9cd80cSuspend Synth100450942021-04-15 13:29:371 min ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281418139100.01
0x4af1595a9aadea7ad1ff8e626d10f1dcee6582a9e1139bc43f53a30e7901be8dSuspend Synth100450942021-04-15 13:29:371 min ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281178115100.01
0x4cee056cfaadbcf599a05d9cce79f892f876ba643fcc7a74f0c7bc0ea9d8abe4Suspend Synth100450812021-04-15 13:26:244 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281418139100.01
0xa2393640c9c6675d60a5deb6b4df8f00ab4e38224bed8d493bd311249d01aeaaSuspend Synth100450812021-04-15 13:26:244 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281178115100.01
0x0cf01217e06fa19a8168f788d672c07f6510b0e1d1470130ae51f6d385566f66Suspend Synth100450712021-04-15 13:24:006 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281418139100.01
0x150e16ac20e98f2d03870ddad9b9e0ec3b7f8f4171fda2dc193c91833d161950Suspend Synth100450712021-04-15 13:24:006 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281178115100.01
0xc1fc99faea2c69c4b10d7d2408c3d74c908b0c9ffc8193ee85a367b1a5a8d649Suspend Synth100450572021-04-15 13:21:019 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281418139100.01
0xc2fee7d8ace5eb8ef2905a99c281a7b28bebbdc2eee5077b08a21b94cfad20f6Suspend Synth100450572021-04-15 13:21:019 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00281178115100.01
0xaeb2a504f0967b4ed8e3ff385d3c915cd0010ad535e34aae14bdc0d5f246be40Suspend Synth100450402021-04-15 13:17:5012 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.002780133298.8
0x6c8a09833a85e3b0daa949180d69bf6dddfc14619667d4abbefa311bb47fd095Suspend Synth100450402021-04-15 13:17:5012 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00277776298.8
0xa7064cfdd95213dc2e54dc766031eb0823f4109cbb958d40a875f6a33d3cc7d8Suspend Synth100450252021-04-15 13:15:1315 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.002780133298.8
0x6ea63a5feaeb4294c48d2c6036a7cc5b72ad4d0b61f24f175afac38fc0e91cabSuspend Synth100450242021-04-15 13:14:4915 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00277776298.8
0xf175ba5951d3fe4e92473d19369df134515faaf563f9e04b6249484291cb5dc3Suspend Synth100450112021-04-15 13:12:0818 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.0027680334398.37
0x393a7b6b46628e523a3cf16173652f1b69f2b3b1de0e752be7c4cda8e01b5295Suspend Synth100450112021-04-15 13:12:0818 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.0027656725598.37
0xabe7aa576671746991221894850b0dd70e368c0d6f029df97701436d7ef839ccSuspend Synth100450042021-04-15 13:08:5421 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.002780133298.8
0x262a8e8ed4bab513ef56b8f0a22cc9e5213ec3ffc8bc95508af99462c0eacf68Suspend Synth100450042021-04-15 13:08:5421 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00277776298.8
0x287d2a44465a483fc4e087902babfea5df2c41498cf46432d915ca710948c5ebSuspend Synth100449932021-04-15 13:05:2825 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00282881367100.53
0x36b9a9060c307a22731a1960855cf5c04112e2c11aef0192618c5593bc6a33dbSuspend Synth100449932021-04-15 13:05:2825 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00282640095100.53
0x01d2c5bc5fbd80104e3da98cc13923e02ebc8dfedbe7fcd49f04c5b373f19e18Suspend Synth100449812021-04-15 13:02:5327 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.002780133298.8
0x41cbbd6f18f548b8e2fb00b78e4db1370c533026a0b3912abaaa731d05171622Suspend Synth100449812021-04-15 13:02:5327 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00277776298.8
0x29764725223bf1a625cba86dd0785f973042a74be956b6e197eba1261b48dc0aSuspend Synth100449662021-04-15 13:00:1230 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.0028898753102.7
0x22067d055415882a2dee2d36f9edc9cd24b03b3561eae581b5d291cc7ab34274Suspend Synth100449662021-04-15 13:00:1230 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.0028874105102.7
0x258509f9e9b861c3a1bdec44d24c704e3812e900f6812e3d9c08bb8b21e7ddc5Suspend Synth100449462021-04-15 12:57:0733 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.002780133298.8
0x7b5d180901a09d20775354f3e0d4c14ddca3bdfbee48889e37ddc26d154766beSuspend Synth100449462021-04-15 12:57:0733 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.00277776298.8
0x441f47b82aa169f0e3b4f6eb7401f6846fa676e4853451abf6b3599030301762Suspend Synth100449322021-04-15 12:53:5836 mins ago0xb64ff7a4a33acdf48d97dab0d764afd0f6176882 IN  0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether0.002780133298.8
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1113cec938cfb01694a47d815d7111dedd37ce39b112a15e1eeed8aa09997dc5100359052021-04-14 4:58:421 day 8 hrs ago 0x5eb054cfac1e39e3c1b5c11a1b9c019e803fa033 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xbf3e19a115cf2bcfb1cc71e940c114116dfdddb8fa84181a3104f9aa65f2a5ff100330372021-04-13 18:19:461 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xdf915d26456905bf0346a75e925b18bde661836e089f8dba3cfe94f858e96c9b100330072021-04-13 18:13:531 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xf350e5c87831b6913f80c6144c490a8ea00ef453858aeffb5c76c8a8d45785ad100330042021-04-13 18:13:221 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xe8240bdc3a5bbf378870c7c44bd482a59b357c2bdae46f14e932c3df325641fd100329952021-04-13 18:10:571 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x17c820bb85f415c2341907f575e339533f257da86f5161da55dfe8de276cb39b100329842021-04-13 18:08:401 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xba05e2259ccb3a78ab4604dd7c569e1129abf6f81fd5fce8b15907d48a522b35100329452021-04-13 18:00:331 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x79b62f0eb863b81ac633c55e700ff2faa8da2309d8b86dbcd10d588d04458d09100329392021-04-13 17:58:381 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x173e5060ff5d599641e397d4b5b342198867bdd1bee9c300f83851d4380b7296100329342021-04-13 17:57:471 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xc6eb2cf7b119767bb0bea7b5c79047935e4a6d6fcc5dba7ce7315582cda35ef2100329282021-04-13 17:56:471 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xfb9e71e8b4c55d257ead884512af7e4f117e5106700935d69cbb5fa836273d09100329262021-04-13 17:56:161 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xf30fb0573580f37e346c99135b8521a5291ca9b5912030c09b43e25679795b9c100329222021-04-13 17:55:341 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x60523f2bdbfb9662ad16c113d6d149b12ce2f0265b6b302e76f6ef082206c6a6100329172021-04-13 17:54:331 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x2580ac409c432b608308d3ef3b5a993b24476bb65e65f5909c9a83c094f11779100329102021-04-13 17:53:551 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x3db51c19e044883bba8c295f0fedc65aea6e81ddead43c6686af00b3b83458db100329082021-04-13 17:53:211 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x36058055d80080f2b7848a3d89347b74054272a84a07e52e62998d79f326d2cf100328872021-04-13 17:49:281 day 19 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xc4f45a5240e5fa3fd2c20b76e5f457d96e8d8b2ec8b8e4dcdb624977f20b3c87100301842021-04-13 8:10:522 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x4c666792bdb91621db2384e1601319096ee2608689b339e31da8e9963046e53b100301802021-04-13 8:10:262 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x11cb2363f0199f2bab9aa0511c40eca93a005800b67dcba5cdf139f50f72f014100301702021-04-13 8:09:322 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xec6a5364fbd1c840297f6c32ab92a848a9cf33174e56e6bdb3c9de1fbff23ae8100301622021-04-13 8:08:542 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x4a7e4e918b3e514d69c8e10c11fbd0d04340e0fb88d1723b4e30cc2b8b0d7a7e100301512021-04-13 8:08:112 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xdbc98ae73e8dd5e9a1b6989045a0cbbf5a0f17b85f3cb261ef657b6dda2796f3100301482021-04-13 8:07:562 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x5b046ae1f57115022d4c3818508163d18b99538aa900d1eebd2fbbfb0223adad100301312021-04-13 8:06:132 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0xb826e862c7f64f6d4a61bcd8c6bd03e4e12d79c148bc0805993642d0319639f5100300252021-04-13 7:49:142 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
0x590b98cfb2921b19dc8385d4a06920dd402bdeac2173b265c98997043c0641a1100300232021-04-13 7:48:592 days 5 hrs ago 0x65bad0f094f2cce90a2bd757372932cdaf079213 0x0800ca66234e4691690485d9e45d8a8c9e6f9b520 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SystemStatus

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2020-03-30
*/

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

* 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: 
*	- Owned
* Libraries: (none)
*
* MIT License
* ===========
*
* Copyright (c) 2020 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
*/

/* ===============================================
* Flattened with Solidifier by Coinage
* 
* https://solidifier.coina.ge
* ===============================================
*/


pragma solidity 0.4.25;


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

    /**
     * @dev Owned Constructor
     */
    constructor(address _owner) public {
        require(_owner != address(0), "Owner address cannot be 0");
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    /**
     * @notice Nominate a new owner of this contract.
     * @dev Only the current owner may nominate a new owner.
     */
    function nominateNewOwner(address _owner) external onlyOwner {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    /**
     * @notice Accept the nomination to be 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 {
        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/SystemStatus
contract SystemStatus is Owned {
    struct Status {
        bool canSuspend;
        bool canResume;
    }

    mapping(bytes32 => mapping(address => Status)) public accessControl;

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

    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_SYNTH = "Synth";

    Suspension public systemSuspension;

    Suspension public issuanceSuspension;

    Suspension public exchangeSuspension;

    mapping(bytes32 => Suspension) public synthSuspension;

    constructor(address _owner) public Owned(_owner) {
        _internalUpdateAccessControl(SECTION_SYSTEM, _owner, true, true);
        _internalUpdateAccessControl(SECTION_ISSUANCE, _owner, true, true);
        _internalUpdateAccessControl(SECTION_EXCHANGE, _owner, true, true);
        _internalUpdateAccessControl(SECTION_SYNTH, _owner, true, true);
    }

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

    function requireIssuanceActive() external view {
        // Issuance requires the system be active
        _internalRequireSystemActive();
        require(!issuanceSuspension.suspended, "Issuance is suspended. Operation prohibited");
    }

    function requireExchangeActive() external view {
        // Issuance requires the system be active
        _internalRequireSystemActive();
        require(!exchangeSuspension.suspended, "Exchange is suspended. Operation prohibited");
    }

    function requireSynthActive(bytes32 currencyKey) external view {
        // Synth exchange and transfer requires the system be active
        _internalRequireSystemActive();
        require(!synthSuspension[currencyKey].suspended, "Synth is suspended. Operation prohibited");
    }

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

        require(
            !synthSuspension[sourceCurrencyKey].suspended && !synthSuspension[destinationCurrencyKey].suspended,
            "One or more synths are suspended. Operation prohibited"
        );
    }

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

    function getSynthSuspensions(bytes32[] 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;
        }
    }

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

    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 suspendSynth(bytes32 currencyKey, uint256 reason) external {
        _requireAccessToSuspend(SECTION_SYNTH);
        synthSuspension[currencyKey].suspended = true;
        synthSuspension[currencyKey].reason = uint248(reason);
        emit SynthSuspended(currencyKey, reason);
    }

    function resumeSynth(bytes32 currencyKey) external {
        _requireAccessToResume(SECTION_SYNTH);
        emit SynthResumed(currencyKey, uint256(synthSuspension[currencyKey].reason));
        delete synthSuspension[currencyKey];
    }

    /* ========== 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 _internalUpdateAccessControl(bytes32 section, address account, bool canSuspend, bool canResume) internal {
        require(
            section == SECTION_SYSTEM ||
                section == SECTION_ISSUANCE ||
                section == SECTION_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 SynthSuspended(bytes32 currencyKey, uint256 reason);
    event SynthResumed(bytes32 currencyKey, uint256 reason);

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

Contract ABI

[{"constant":true,"inputs":[],"name":"requireSystemActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_SYSTEM","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"reason","type":"uint256"}],"name":"suspendExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"},{"name":"","type":"address"}],"name":"accessControl","outputs":[{"name":"canSuspend","type":"bool"},{"name":"canResume","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"issuanceSuspension","outputs":[{"name":"suspended","type":"bool"},{"name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"systemSuspension","outputs":[{"name":"suspended","type":"bool"},{"name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isSystemUpgrading","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"reason","type":"uint256"}],"name":"suspendIssuance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"currencyKey","type":"bytes32"}],"name":"requireSynthActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"section","type":"bytes32"},{"name":"account","type":"address"},{"name":"canSuspend","type":"bool"},{"name":"canResume","type":"bool"}],"name":"updateAccessControl","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_ISSUANCE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"sourceCurrencyKey","type":"bytes32"},{"name":"destinationCurrencyKey","type":"bytes32"}],"name":"requireSynthsActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeIssuance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"requireExchangeActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"synthSuspension","outputs":[{"name":"suspended","type":"bool"},{"name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"requireIssuanceActive","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"currencyKey","type":"bytes32"}],"name":"resumeSynth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SUSPENSION_REASON_UPGRADE","outputs":[{"name":"","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"currencyKey","type":"bytes32"},{"name":"reason","type":"uint256"}],"name":"suspendSynth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"synths","type":"bytes32[]"}],"name":"getSynthSuspensions","outputs":[{"name":"suspensions","type":"bool[]"},{"name":"reasons","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"reason","type":"uint256"}],"name":"suspendSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_EXCHANGE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SECTION_SYNTH","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exchangeSuspension","outputs":[{"name":"suspended","type":"bool"},{"name":"reason","type":"uint248"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"uint256"}],"name":"SystemSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"uint256"}],"name":"SystemResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"uint256"}],"name":"IssuanceSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"uint256"}],"name":"IssuanceResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"uint256"}],"name":"ExchangeSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"uint256"}],"name":"ExchangeResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currencyKey","type":"bytes32"},{"indexed":false,"name":"reason","type":"uint256"}],"name":"SynthSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currencyKey","type":"bytes32"},{"indexed":false,"name":"reason","type":"uint256"}],"name":"SynthResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"section","type":"bytes32"},{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"canSuspend","type":"bool"},{"indexed":false,"name":"canResume","type":"bool"}],"name":"AccessControlUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}]

60806040523480156200001157600080fd5b5060405160208062001874833981016040525180600160a060020a03811615156200009d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b60008054600160a060020a031916600160a060020a038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506200012e7f53797374656d000000000000000000000000000000000000000000000000000082600180640100000000620001dd810204565b620001667f49737375616e636500000000000000000000000000000000000000000000000082600180640100000000620001dd810204565b6200019e7f45786368616e676500000000000000000000000000000000000000000000000082600180640100000000620001dd810204565b620001d67f53796e746800000000000000000000000000000000000000000000000000000082600180640100000000620001dd810204565b506200036e565b7f53797374656d00000000000000000000000000000000000000000000000000008414806200022b57507f49737375616e636500000000000000000000000000000000000000000000000084145b806200025657507f45786368616e676500000000000000000000000000000000000000000000000084145b806200028157507f53796e746800000000000000000000000000000000000000000000000000000084145b1515620002ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b6000848152600260209081526040808320600160a060020a038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b6114f6806200037e6000396000f30060806040526004361061017f5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663086dabd1811461018457806312bde5141461019b578063157c51d3146101c25780631588e817146101d75780631627540c146101ef57806320f2bf00146102105780632366245e1461024f5780632dd8afdb146102875780632e8d0b9e1461029c578063396e258e146102c557806342a28e21146102dd57806348bf1971146102f55780634abdb44d1461032357806353a47bb7146103385780636132eba41461036957806367a280b2146103845780637118d431146103995780637243bc2c146103ae57806379ba5097146103c65780637c312541146103db5780638da5cb5b146103f057806394c79f74146104055780639f8a95ba1461041d578063abc0bb6e1461044e578063b9a4986914610469578063e470df5814610522578063f16162071461053a578063f405f65a1461054f578063f44d1e0b14610564578063f8b4b08414610579575b600080fd5b34801561019057600080fd5b5061019961058e565b005b3480156101a757600080fd5b506101b0610598565b60408051918252519081900360200190f35b3480156101ce57600080fd5b506101996105aa565b3480156101e357600080fd5b50610199600435610619565b3480156101fb57600080fd5b50610199600160a060020a0360043516610687565b34801561021c57600080fd5b50610234600435600160a060020a0360243516610770565b60408051921515835290151560208301528051918290030190f35b34801561025b57600080fd5b50610264610799565b604080519215158352600160f860020a0390911660208301528051918290030190f35b34801561029357600080fd5b506102646107b2565b3480156102a857600080fd5b506102b16107cb565b604080519115158252519081900360200190f35b3480156102d157600080fd5b506101996004356107f5565b3480156102e957600080fd5b50610199600435610863565b34801561030157600080fd5b50610199600435600160a060020a0360243516604435151560643515156108fb565b34801561032f57600080fd5b506101b0610995565b34801561034457600080fd5b5061034d6109a7565b60408051600160a060020a039092168252519081900360200190f35b34801561037557600080fd5b506101996004356024356109b6565b34801561039057600080fd5b50610199610a6c565b3480156103a557600080fd5b50610199610adb565b3480156103ba57600080fd5b50610264600435610b64565b3480156103d257600080fd5b50610199610b89565b3480156103e757600080fd5b50610199610c91565b3480156103fc57600080fd5b5061034d610d1a565b34801561041157600080fd5b50610199600435610d29565b34801561042957600080fd5b50610432610dac565b60408051600160f860020a039092168252519081900360200190f35b34801561045a57600080fd5b50610199600435602435610db1565b34801561047557600080fd5b506104896004803560248101910135610e35565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156104cd5781810151838201526020016104b5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561050c5781810151838201526020016104f4565b5050505090500194505050505060405180910390f35b34801561052e57600080fd5b50610199600435610f53565b34801561054657600080fd5b506101b0610fcd565b34801561055b57600080fd5b50610199610fdf565b34801561057057600080fd5b506101b061104e565b34801561058557600080fd5b50610264611060565b610596611079565b565b60008051602061144b83398151915281565b6105c160008051602061144b8339815191526111e5565b6003805460ff19169081905560408051610100909204600160f860020a03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b6106306000805160206114ab833981519152611283565b60058054600160f860020a0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b600054600160a060020a0316331461070f576040805160e560020a62461bcd02815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201527f6f726d207468697320616374696f6e0000000000000000000000000000000000606482015290519081900360840190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60045460ff8116906101009004600160f860020a031682565b60035460ff8116906101009004600160f860020a031682565b60035460009060ff1680156107f057506003546101009004600160f860020a03166001145b905090565b61080c60008051602061146b833981519152611283565b60048054600160f860020a0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b61086b611079565b60008181526006602052604090205460ff16156108f8576040805160e560020a62461bcd02815260206004820152602860248201527f53796e74682069732073757370656e6465642e204f7065726174696f6e20707260448201527f6f68696269746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50565b600054600160a060020a03163314610983576040805160e560020a62461bcd02815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201527f6f726d207468697320616374696f6e0000000000000000000000000000000000606482015290519081900360840190fd5b61098f8484848461131c565b50505050565b60008051602061146b83398151915281565b600154600160a060020a031681565b6109be611079565b60008281526006602052604090205460ff161580156109ec575060008181526006602052604090205460ff16155b1515610a68576040805160e560020a62461bcd02815260206004820152603660248201527f4f6e65206f72206d6f72652073796e746873206172652073757370656e64656460448201527f2e204f7065726174696f6e2070726f6869626974656400000000000000000000606482015290519081900360840190fd5b5050565b610a8360008051602061146b8339815191526111e5565b6004805460ff19169081905560408051610100909204600160f860020a03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610ae3611079565b60055460ff1615610596576040805160e560020a62461bcd02815260206004820152602b60248201527f45786368616e67652069732073757370656e6465642e204f7065726174696f6e60448201527f2070726f68696269746564000000000000000000000000000000000000000000606482015290519081900360840190fd5b60066020526000908152604090205460ff8116906101009004600160f860020a031682565b600154600160a060020a03163314610c11576040805160e560020a62461bcd02815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527f2063616e20616363657074206f776e6572736869700000000000000000000000606482015290519081900360840190fd5b60005460015460408051600160a060020a03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610c99611079565b60045460ff1615610596576040805160e560020a62461bcd02815260206004820152602b60248201527f49737375616e63652069732073757370656e6465642e204f7065726174696f6e60448201527f2070726f68696269746564000000000000000000000000000000000000000000606482015290519081900360840190fd5b600054600160a060020a031681565b610d4060008051602061148b8339815191526111e5565b600081815260066020908152604091829020548251848152610100909104600160f860020a03169181019190915281517f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220929181900390910190a1600090815260066020526040812055565b600181565b610dc860008051602061148b833981519152611283565b6000828152600660209081526040918290208054600160f860020a0385166101000260ff1990911660011760ff16179055815184815290810183905281517f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541929181900390910190a15050565b606080600084849050604051908082528060200260200182016040528015610e67578160200160208202803883390190505b50604080518681526020808802820101909152909350848015610e94578160200160208202803883390190505b509150600090505b83811015610f4b5760066000868684818110610eb457fe5b6020908102929092013583525081019190915260400160002054835160ff90911690849083908110610ee257fe5b91151560209283029091019091015260066000868684818110610f0157fe5b60209081029290920135835250810191909152604001600020548251610100909104600160f860020a031690839083908110610f3957fe5b60209081029091010152600101610e9c565b509250929050565b610f6a60008051602061144b833981519152611283565b60038054600160f860020a0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b6000805160206114ab83398151915281565b610ff66000805160206114ab8339815191526111e5565b6005805460ff19169081905560408051610100909204600160f860020a03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b60008051602061148b83398151915281565b60055460ff8116906101009004600160f860020a031682565b60035460ff811615906101009004600160f860020a03166001146110f957606060405190810160405280602c81526020017f53796e7468657469782069732073757370656e6465642e204f7065726174696f81526020017f6e2070726f686962697465640000000000000000000000000000000000000000815250611157565b606060405190810160405280603e81526020017f53796e7468657469782069732073757370656e6465642c20757067726164652081526020017f696e2070726f67726573732e2e2e20706c65617365207374616e6420627900008152505b9015156108f85760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111aa578181015183820152602001611192565b50505050905090810190601f1680156111d75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff1615156108f8576040805160e560020a62461bcd02815260206004820152602160248201527f5265737472696374656420746f2061636365737320636f6e74726f6c206c697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600081815260026020908152604080832033845290915290205460ff1615156108f8576040805160e560020a62461bcd02815260206004820152602160248201527f5265737472696374656420746f2061636365737320636f6e74726f6c206c697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008051602061144b833981519152841480611345575060008051602061146b83398151915284145b8061135d57506000805160206114ab83398151915284145b80611375575060008051602061148b83398151915284145b15156113cb576040805160e560020a62461bcd02815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b6000848152600260209081526040808320600160a060020a038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050560053797374656d000000000000000000000000000000000000000000000000000049737375616e636500000000000000000000000000000000000000000000000053796e746800000000000000000000000000000000000000000000000000000045786368616e6765000000000000000000000000000000000000000000000000a165627a7a723058201be18c30262f374cf3d609c846dcf930a356ba248786364bba09d314175ef1500029000000000000000000000000b64ff7a4a33acdf48d97dab0d764afd0f6176882

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

000000000000000000000000b64ff7a4a33acdf48d97dab0d764afd0f6176882

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b64ff7a4a33acdf48d97dab0d764afd0f6176882


Library Used

SafeDecimalMath : 0x34a5ef81d18f3a305ae9c2d7df42beef4c79031c

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