ETH Price: $1,985.90 (-4.26%)

Contract

0x1c86B3CDF2a60Ae3a574f7f71d44E2C50BDdB87E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Resume Synths Ex...143805792022-03-13 21:02:331453 days ago1647205353IN
Synthetix: System Status
0 ETH0.0046883790
Suspend Synths E...143675352022-03-11 20:02:481455 days ago1647028968IN
Synthetix: System Status
0 ETH0.0139488283.21
Resume Synths Ex...143355922022-03-06 21:02:451460 days ago1646600565IN
Synthetix: System Status
0 ETH0.00538641103.4
Suspend Synths E...143225542022-03-04 20:05:111462 days ago1646424311IN
Synthetix: System Status
0 ETH0.0145673986.9
Resume Synths Ex...142905592022-02-27 21:02:371467 days ago1645995757IN
Synthetix: System Status
0 ETH0.00647515124.3
Suspend Synths E...142773152022-02-25 20:02:321469 days ago1645819352IN
Synthetix: System Status
0 ETH0.0154893892.4
Resume Synths Ex...142452632022-02-20 21:02:451474 days ago1645390965IN
Synthetix: System Status
0 ETH0.0041257679.2
Suspend Synths E...142321102022-02-18 20:02:431476 days ago1645214563IN
Synthetix: System Status
0 ETH0.03005677179.3
Resume Synths Ex...142001492022-02-13 21:02:391481 days ago1644786159IN
Synthetix: System Status
0 ETH0.00538641103.4
Suspend Synths E...141868012022-02-11 20:02:371483 days ago1644609757IN
Synthetix: System Status
0 ETH0.02563123152.9
Suspend Issuance141696342022-02-09 4:08:231486 days ago1644379703IN
Synthetix: System Status
0 ETH0.0027150957.78880233
Resume Synths Ex...141548162022-02-06 21:02:411488 days ago1644181361IN
Synthetix: System Status
0 ETH0.00865264166.1
Suspend Synths E...141415912022-02-04 20:02:461490 days ago1644004966IN
Synthetix: System Status
0 ETH0.02692202160.6
Resume Synths Ex...141094842022-01-30 21:02:441495 days ago1643576564IN
Synthetix: System Status
0 ETH0.01140315218.9
Suspend Synths E...140962242022-01-28 20:02:281497 days ago1643400148IN
Synthetix: System Status
0 ETH0.042227251.9
Resume Synths Ex...140642302022-01-23 21:02:411502 days ago1642971761IN
Synthetix: System Status
0 ETH0.01180427226.6
Suspend Synths E...140509662022-01-21 20:02:191504 days ago1642795339IN
Synthetix: System Status
0 ETH0.03927664234.3
Resume Synths Ex...140188882022-01-16 21:02:381509 days ago1642366958IN
Synthetix: System Status
0 ETH0.0101425194.7
Suspend Synths E...140056502022-01-14 20:02:321511 days ago1642190552IN
Synthetix: System Status
0 ETH0.03558869212.3
Resume Synths Ex...139759092022-01-10 5:32:291516 days ago1641792749IN
Synthetix: System Status
0 ETH0.00934027179.3
Suspend Synths E...139605622022-01-07 20:47:441518 days ago1641588464IN
Synthetix: System Status
0 ETH0.04296459256.3
Resume Synths Ex...139283492022-01-02 21:03:121523 days ago1641157392IN
Synthetix: System Status
0 ETH0.0156279300
Suspend Synths E...139151282021-12-31 20:03:051525 days ago1640980985IN
Synthetix: System Status
0 ETH0.02341846139.7
Resume Synths Ex...138831242021-12-26 21:02:461530 days ago1640552566IN
Synthetix: System Status
0 ETH0.0040684678.1
Suspend Synths E...138699132021-12-24 20:02:331532 days ago1640376153IN
Synthetix: System Status
0 ETH0.02673762159.5
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
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
/**
 *Submitted for verification at Etherscan.io on 2021-02-04
*/

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

* 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) 2021 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 requireIssuanceActive() external view;

    function requireExchangeActive() external view;

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

    function requireSynthActive(bytes32 currencyKey) external view;

    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 synthExchangeSuspension(bytes32 currencyKey) external view returns (bool suspended, uint248 reason);

    function synthSuspension(bytes32 currencyKey) 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);

    // Restricted functions
    function suspendSynth(bytes32 currencyKey, 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_SYNTH_EXCHANGE = "SynthExchange";
    bytes32 public constant SECTION_SYNTH = "Synth";

    Suspension public systemSuspension;

    Suspension public issuanceSuspension;

    Suspension public exchangeSuspension;

    mapping(bytes32 => Suspension) public synthExchangeSuspension;

    mapping(bytes32 => Suspension) public synthSuspension;

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

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

    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 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;
        }
    }

    /* ========== 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 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 _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 _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 _internalUpdateAccessControl(
        bytes32 section,
        address account,
        bool canSuspend,
        bool canResume
    ) internal {
        require(
            section == SECTION_SYSTEM ||
                section == SECTION_ISSUANCE ||
                section == SECTION_EXCHANGE ||
                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 SynthExchangeSuspended(bytes32 currencyKey, uint256 reason);
    event SynthExchangeResumed(bytes32 currencyKey, 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 Security Audit

Contract ABI

API
[{"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":"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_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":"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":"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":"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":"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":"","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":"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"}]

608060405234801561001057600080fd5b50604051611ed2380380611ed28339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15050611dd8806100fa6000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c806369eaced211610146578063abc0bb6e116100c3578063e665edf011610087578063e665edf014610998578063e91e691814610a06578063f161620714610a23578063f405f65a14610a2b578063f44d1e0b14610a33578063f8b4b08414610a3b5761025e565b8063abc0bb6e146107c6578063b9a49869146107e9578063da5917ae146108f0578063de1b88511461090d578063e470df581461097b5761025e565b80637fe9b23d1161010a5780637fe9b23d146107075780638da5cb5b1461077557806394c79f741461077d5780639f8a95ba1461079a578063a55ce9c5146107be5761025e565b806369eaced2146106645780637118d431146106d25780637243bc2c146106da57806379ba5097146106f75780637c312541146106ff5761025e565b80632e8d0b9e116101df5780634abdb44d116101a35780634abdb44d14610492578063517d60c61461049a57806353a47bb7146105f85780636132eba41461061c5780636309a10c1461063f57806367a280b21461065c5761025e565b80632e8d0b9e146103dd578063396e258e146103f957806342a28e211461041657806348bf1971146104335780634a6618501461046f5761025e565b80631cba727c116102265780631cba727c146102d25780631ce00ba21461034057806320f2bf00146103635780632366245e146103aa5780632dd8afdb146103d55761025e565b8063086dabd11461026357806312bde5141461026d578063157c51d3146102875780631588e8171461028f5780631627540c146102ac575b600080fd5b61026b610a43565b005b610275610a4d565b60408051918252519081900360200190f35b61026b610a5a565b61026b600480360360208110156102a557600080fd5b5035610ac4565b61026b600480360360208110156102c257600080fd5b50356001600160a01b0316610b2f565b61026b600480360360408110156102e857600080fd5b810190602081018135600160201b81111561030257600080fd5b82018360208201111561031457600080fd5b803590602001918460208302840111600160201b8311171561033557600080fd5b919350915035610b8b565b61026b6004803603604081101561035657600080fd5b5080359060200135610bce565b61038f6004803603604081101561037957600080fd5b50803590602001356001600160a01b0316610c06565b60408051921515835290151560208301528051918290030190f35b6103b2610c2f565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b6103b2610c48565b6103e5610c61565b604080519115158252519081900360200190f35b61026b6004803603602081101561040f57600080fd5b5035610c8b565b61026b6004803603602081101561042c57600080fd5b5035610cf6565b61026b6004803603608081101561044957600080fd5b508035906001600160a01b03602082013516906040810135151590606001351515610d0a565b61026b6004803603604081101561048557600080fd5b5080359060200135610d24565b610275610d6a565b61026b600480360360808110156104b057600080fd5b810190602081018135600160201b8111156104ca57600080fd5b8201836020820111156104dc57600080fd5b803590602001918460208302840111600160201b831117156104fd57600080fd5b919390929091602081019035600160201b81111561051a57600080fd5b82018360208201111561052c57600080fd5b803590602001918460208302840111600160201b8311171561054d57600080fd5b919390929091602081019035600160201b81111561056a57600080fd5b82018360208201111561057c57600080fd5b803590602001918460208302840111600160201b8311171561059d57600080fd5b919390929091602081019035600160201b8111156105ba57600080fd5b8201836020820111156105cc57600080fd5b803590602001918460208302840111600160201b831117156105ed57600080fd5b509092509050610d79565b610600610e6a565b604080516001600160a01b039092168252519081900360200190f35b61026b6004803603604081101561063257600080fd5b5080359060200135610e79565b61026b6004803603602081101561065557600080fd5b5035610e81565b61026b610ec6565b61026b6004803603602081101561067a57600080fd5b810190602081018135600160201b81111561069457600080fd5b8201836020820111156106a657600080fd5b803590602001918460208302840111600160201b831117156106c757600080fd5b509092509050610f32565b61026b610f6e565b6103b2600480360360208110156106f057600080fd5b5035610f7e565b61026b610fa3565b61026b61105f565b61026b6004803603604081101561071d57600080fd5b810190602081018135600160201b81111561073757600080fd5b82018360208201111561074957600080fd5b803590602001918460208302840111600160201b8311171561076a57600080fd5b91935091503561106f565b6106006110ad565b61026b6004803603602081101561079357600080fd5b50356110bc565b6107a2611101565b604080516001600160f81b039092168252519081900360200190f35b610275611106565b61026b600480360360408110156107dc57600080fd5b508035906020013561111a565b610857600480360360208110156107ff57600080fd5b810190602081018135600160201b81111561081957600080fd5b82018360208201111561082b57600080fd5b803590602001918460208302840111600160201b8311171561084c57600080fd5b509092509050611160565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561089b578181015183820152602001610883565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156108da5781810151838201526020016108c2565b5050505090500194505050505060405180910390f35b61026b6004803603602081101561090657600080fd5b5035611289565b61026b6004803603602081101561092357600080fd5b810190602081018135600160201b81111561093d57600080fd5b82018360208201111561094f57600080fd5b803590602001918460208302840111600160201b8311171561097057600080fd5b50909250905061129a565b61026b6004803603602081101561099157600080fd5b50356112d6565b610857600480360360208110156109ae57600080fd5b810190602081018135600160201b8111156109c857600080fd5b8201836020820111156109da57600080fd5b803590602001918460208302840111600160201b831117156109fb57600080fd5b50909250905061134b565b6103b260048036036020811015610a1c57600080fd5b503561146c565b610275611491565b61026b6114a0565b61027561150c565b6103b2611518565b610a4b611531565b565b6553797374656d60d01b81565b610a6c6553797374656d60d01b611610565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610ad86745786368616e676560c01b61166d565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610b376116c5565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610bc983838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525085925061170e915050565b505050565b610bd6611531565b610bde6117bc565b610be7826117fe565b610bf0816117fe565b610bf98261184c565b610c028161184c565b5050565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60045460ff81169061010090046001600160f81b031682565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015610c86575060035461010090046001600160f81b03166001145b905090565b610c9f6749737375616e636560c01b61166d565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b610cfe611531565b610d078161184c565b50565b610d126116c5565b610d1e8484848461189a565b50505050565b604080516001808252818301909252606091602080830190803883390190505090508281600081518110610d5457fe5b602002602001018181525050610bc9818361170e565b6749737375616e636560c01b81565b610d816116c5565b8685148015610d8f57508483145b8015610d9a57508281145b610deb576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b87811015610e5f57610e57898983818110610e0557fe5b90506020020135888884818110610e1857fe5b905060200201356001600160a01b0316878785818110610e3457fe5b905060200201351515868686818110610e4957fe5b90506020020135151561189a565b600101610dee565b505050505050505050565b6001546001600160a01b031681565b610bf0611531565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110610eb157fe5b602002602001018181525050610c02816119cc565b610eda6749737375616e636560c01b611610565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610c028282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119cc92505050565b610f76611531565b610a4b6117bc565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6001546001600160a01b03163314610fec5760405162461bcd60e51b8152600401808060200182810382526035815260200180611c096035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b611067611531565b610a4b611a7a565b610bc9838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611abc915050565b6000546001600160a01b031681565b6040805160018082528183019092526060916020808301908038833901905050905081816000815181106110ec57fe5b602002602001018181525050610c0281611b62565b600181565b6c53796e746845786368616e676560981b81565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061114a57fe5b602002602001018181525050610bc98183611abc565b60608083839050604051908082528060200260200182016040528015611190578160200160208202803883390190505b506040805185815260208087028201019091529092508380156111bd578160200160208202803883390190505b50905060005b8381101561128157600760008686848181106111db57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061120d57fe5b911515602092830291909101909101526007600086868481811061122d57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061126e57fe5b60209081029190910101526001016111c3565b509250929050565b611291611531565b610d07816117fe565b610c02828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611b6292505050565b6112e86553797374656d60d01b61166d565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b6060808383905060405190808252806020026020018201604052801561137b578160200160208202803883390190505b506040805185815260208087028201019091529092508380156113a8578160200160208202803883390190505b50905060005b8381101561128157600660008686848181106113c657fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff168382815181106113f857fe5b911515602092830291909101909101526006600086868481811061141857fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061145957fe5b60209081029190910101526001016113ae565b60066020526000908152604090205460ff81169061010090046001600160f81b031682565b6745786368616e676560c01b81565b6114b46745786368616e676560c01b611610565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b640a6f2dce8d60db1b81565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b031660011461156d576040518060600160405280602c8152602001611d12602c9139611587565b6040518060600160405280603e8152602001611d3e603e91395b90610d075760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115d55781810151838201526020016115bd565b50505050905090810190601f1680156116025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff16610d075760405162461bcd60e51b8152600401808060200182810382526021815260200180611cf16021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff16610d075760405162461bcd60e51b8152600401808060200182810382526021815260200180611cf16021913960400191505060405180910390fd5b6000546001600160a01b03163314610a4b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611c97602f913960400191505060405180910390fd5b6117276c53796e746845786368616e676560981b61166d565b60005b8251811015610bc957600083828151811061174157fe5b60209081029190910181015160008181526006835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcea0da706e9f2a6a1cb56cdab42ac548791339f1710deadf814f15fc0a6a7114928290030190a15060010161172a565b60055460ff1615610a4b5760405162461bcd60e51b815260040180806020018281038252602b815260200180611cc6602b913960400191505060405180910390fd5b60008181526006602052604090205460ff1615610d075760405162461bcd60e51b815260040180806020018281038252602e815260200180611c69602e913960400191505060405180910390fd5b60008181526007602052604090205460ff1615610d075760405162461bcd60e51b8152600401808060200182810382526028815260200180611d7c6028913960400191505060405180910390fd5b6553797374656d60d01b8414806118bb57506749737375616e636560c01b84145b806118d057506745786368616e676560c01b84145b806118ea57506c53796e746845786368616e676560981b84145b806118fc5750640a6f2dce8d60db1b84145b61194d576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b6119e56c53796e746845786368616e676560981b611610565b60005b8151811015610c025760008282815181106119ff57fe5b6020908102919091018101516000818152600683526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f91037f810fbf9c3c6d5573650d27de6b5e8d2187698822700d4524102472bc08928290030190a16000908152600660205260408120556001016119e8565b60045460ff1615610a4b5760405162461bcd60e51b815260040180806020018281038252602b815260200180611c3e602b913960400191505060405180910390fd5b611acd640a6f2dce8d60db1b61166d565b60005b8251811015610bc9576000838281518110611ae757fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541928290030190a150600101611ad0565b611b73640a6f2dce8d60db1b611610565b60005b8151811015610c02576000828281518110611b8d57fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220928290030190a1600090815260076020526040812055600101611b7656fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697049737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645265737472696374656420746f2061636365737320636f6e74726f6c206c69737453796e7468657469782069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e7468657469782069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e6420627953796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a723158200dfb2028e001170d445db182b862c9d45647b267348064b30768ba00ff4424c764736f6c63430005100032000000000000000000000000de910777c787903f78c89e7a0bf7f4c435cbb1fe

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025e5760003560e01c806369eaced211610146578063abc0bb6e116100c3578063e665edf011610087578063e665edf014610998578063e91e691814610a06578063f161620714610a23578063f405f65a14610a2b578063f44d1e0b14610a33578063f8b4b08414610a3b5761025e565b8063abc0bb6e146107c6578063b9a49869146107e9578063da5917ae146108f0578063de1b88511461090d578063e470df581461097b5761025e565b80637fe9b23d1161010a5780637fe9b23d146107075780638da5cb5b1461077557806394c79f741461077d5780639f8a95ba1461079a578063a55ce9c5146107be5761025e565b806369eaced2146106645780637118d431146106d25780637243bc2c146106da57806379ba5097146106f75780637c312541146106ff5761025e565b80632e8d0b9e116101df5780634abdb44d116101a35780634abdb44d14610492578063517d60c61461049a57806353a47bb7146105f85780636132eba41461061c5780636309a10c1461063f57806367a280b21461065c5761025e565b80632e8d0b9e146103dd578063396e258e146103f957806342a28e211461041657806348bf1971146104335780634a6618501461046f5761025e565b80631cba727c116102265780631cba727c146102d25780631ce00ba21461034057806320f2bf00146103635780632366245e146103aa5780632dd8afdb146103d55761025e565b8063086dabd11461026357806312bde5141461026d578063157c51d3146102875780631588e8171461028f5780631627540c146102ac575b600080fd5b61026b610a43565b005b610275610a4d565b60408051918252519081900360200190f35b61026b610a5a565b61026b600480360360208110156102a557600080fd5b5035610ac4565b61026b600480360360208110156102c257600080fd5b50356001600160a01b0316610b2f565b61026b600480360360408110156102e857600080fd5b810190602081018135600160201b81111561030257600080fd5b82018360208201111561031457600080fd5b803590602001918460208302840111600160201b8311171561033557600080fd5b919350915035610b8b565b61026b6004803603604081101561035657600080fd5b5080359060200135610bce565b61038f6004803603604081101561037957600080fd5b50803590602001356001600160a01b0316610c06565b60408051921515835290151560208301528051918290030190f35b6103b2610c2f565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b6103b2610c48565b6103e5610c61565b604080519115158252519081900360200190f35b61026b6004803603602081101561040f57600080fd5b5035610c8b565b61026b6004803603602081101561042c57600080fd5b5035610cf6565b61026b6004803603608081101561044957600080fd5b508035906001600160a01b03602082013516906040810135151590606001351515610d0a565b61026b6004803603604081101561048557600080fd5b5080359060200135610d24565b610275610d6a565b61026b600480360360808110156104b057600080fd5b810190602081018135600160201b8111156104ca57600080fd5b8201836020820111156104dc57600080fd5b803590602001918460208302840111600160201b831117156104fd57600080fd5b919390929091602081019035600160201b81111561051a57600080fd5b82018360208201111561052c57600080fd5b803590602001918460208302840111600160201b8311171561054d57600080fd5b919390929091602081019035600160201b81111561056a57600080fd5b82018360208201111561057c57600080fd5b803590602001918460208302840111600160201b8311171561059d57600080fd5b919390929091602081019035600160201b8111156105ba57600080fd5b8201836020820111156105cc57600080fd5b803590602001918460208302840111600160201b831117156105ed57600080fd5b509092509050610d79565b610600610e6a565b604080516001600160a01b039092168252519081900360200190f35b61026b6004803603604081101561063257600080fd5b5080359060200135610e79565b61026b6004803603602081101561065557600080fd5b5035610e81565b61026b610ec6565b61026b6004803603602081101561067a57600080fd5b810190602081018135600160201b81111561069457600080fd5b8201836020820111156106a657600080fd5b803590602001918460208302840111600160201b831117156106c757600080fd5b509092509050610f32565b61026b610f6e565b6103b2600480360360208110156106f057600080fd5b5035610f7e565b61026b610fa3565b61026b61105f565b61026b6004803603604081101561071d57600080fd5b810190602081018135600160201b81111561073757600080fd5b82018360208201111561074957600080fd5b803590602001918460208302840111600160201b8311171561076a57600080fd5b91935091503561106f565b6106006110ad565b61026b6004803603602081101561079357600080fd5b50356110bc565b6107a2611101565b604080516001600160f81b039092168252519081900360200190f35b610275611106565b61026b600480360360408110156107dc57600080fd5b508035906020013561111a565b610857600480360360208110156107ff57600080fd5b810190602081018135600160201b81111561081957600080fd5b82018360208201111561082b57600080fd5b803590602001918460208302840111600160201b8311171561084c57600080fd5b509092509050611160565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561089b578181015183820152602001610883565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156108da5781810151838201526020016108c2565b5050505090500194505050505060405180910390f35b61026b6004803603602081101561090657600080fd5b5035611289565b61026b6004803603602081101561092357600080fd5b810190602081018135600160201b81111561093d57600080fd5b82018360208201111561094f57600080fd5b803590602001918460208302840111600160201b8311171561097057600080fd5b50909250905061129a565b61026b6004803603602081101561099157600080fd5b50356112d6565b610857600480360360208110156109ae57600080fd5b810190602081018135600160201b8111156109c857600080fd5b8201836020820111156109da57600080fd5b803590602001918460208302840111600160201b831117156109fb57600080fd5b50909250905061134b565b6103b260048036036020811015610a1c57600080fd5b503561146c565b610275611491565b61026b6114a0565b61027561150c565b6103b2611518565b610a4b611531565b565b6553797374656d60d01b81565b610a6c6553797374656d60d01b611610565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610ad86745786368616e676560c01b61166d565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610b376116c5565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610bc983838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525085925061170e915050565b505050565b610bd6611531565b610bde6117bc565b610be7826117fe565b610bf0816117fe565b610bf98261184c565b610c028161184c565b5050565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60045460ff81169061010090046001600160f81b031682565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015610c86575060035461010090046001600160f81b03166001145b905090565b610c9f6749737375616e636560c01b61166d565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b610cfe611531565b610d078161184c565b50565b610d126116c5565b610d1e8484848461189a565b50505050565b604080516001808252818301909252606091602080830190803883390190505090508281600081518110610d5457fe5b602002602001018181525050610bc9818361170e565b6749737375616e636560c01b81565b610d816116c5565b8685148015610d8f57508483145b8015610d9a57508281145b610deb576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b87811015610e5f57610e57898983818110610e0557fe5b90506020020135888884818110610e1857fe5b905060200201356001600160a01b0316878785818110610e3457fe5b905060200201351515868686818110610e4957fe5b90506020020135151561189a565b600101610dee565b505050505050505050565b6001546001600160a01b031681565b610bf0611531565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110610eb157fe5b602002602001018181525050610c02816119cc565b610eda6749737375616e636560c01b611610565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610c028282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119cc92505050565b610f76611531565b610a4b6117bc565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6001546001600160a01b03163314610fec5760405162461bcd60e51b8152600401808060200182810382526035815260200180611c096035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b611067611531565b610a4b611a7a565b610bc9838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611abc915050565b6000546001600160a01b031681565b6040805160018082528183019092526060916020808301908038833901905050905081816000815181106110ec57fe5b602002602001018181525050610c0281611b62565b600181565b6c53796e746845786368616e676560981b81565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061114a57fe5b602002602001018181525050610bc98183611abc565b60608083839050604051908082528060200260200182016040528015611190578160200160208202803883390190505b506040805185815260208087028201019091529092508380156111bd578160200160208202803883390190505b50905060005b8381101561128157600760008686848181106111db57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061120d57fe5b911515602092830291909101909101526007600086868481811061122d57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061126e57fe5b60209081029190910101526001016111c3565b509250929050565b611291611531565b610d07816117fe565b610c02828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611b6292505050565b6112e86553797374656d60d01b61166d565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b6060808383905060405190808252806020026020018201604052801561137b578160200160208202803883390190505b506040805185815260208087028201019091529092508380156113a8578160200160208202803883390190505b50905060005b8381101561128157600660008686848181106113c657fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff168382815181106113f857fe5b911515602092830291909101909101526006600086868481811061141857fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061145957fe5b60209081029190910101526001016113ae565b60066020526000908152604090205460ff81169061010090046001600160f81b031682565b6745786368616e676560c01b81565b6114b46745786368616e676560c01b611610565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b640a6f2dce8d60db1b81565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b031660011461156d576040518060600160405280602c8152602001611d12602c9139611587565b6040518060600160405280603e8152602001611d3e603e91395b90610d075760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115d55781810151838201526020016115bd565b50505050905090810190601f1680156116025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff16610d075760405162461bcd60e51b8152600401808060200182810382526021815260200180611cf16021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff16610d075760405162461bcd60e51b8152600401808060200182810382526021815260200180611cf16021913960400191505060405180910390fd5b6000546001600160a01b03163314610a4b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611c97602f913960400191505060405180910390fd5b6117276c53796e746845786368616e676560981b61166d565b60005b8251811015610bc957600083828151811061174157fe5b60209081029190910181015160008181526006835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcea0da706e9f2a6a1cb56cdab42ac548791339f1710deadf814f15fc0a6a7114928290030190a15060010161172a565b60055460ff1615610a4b5760405162461bcd60e51b815260040180806020018281038252602b815260200180611cc6602b913960400191505060405180910390fd5b60008181526006602052604090205460ff1615610d075760405162461bcd60e51b815260040180806020018281038252602e815260200180611c69602e913960400191505060405180910390fd5b60008181526007602052604090205460ff1615610d075760405162461bcd60e51b8152600401808060200182810382526028815260200180611d7c6028913960400191505060405180910390fd5b6553797374656d60d01b8414806118bb57506749737375616e636560c01b84145b806118d057506745786368616e676560c01b84145b806118ea57506c53796e746845786368616e676560981b84145b806118fc5750640a6f2dce8d60db1b84145b61194d576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b6119e56c53796e746845786368616e676560981b611610565b60005b8151811015610c025760008282815181106119ff57fe5b6020908102919091018101516000818152600683526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f91037f810fbf9c3c6d5573650d27de6b5e8d2187698822700d4524102472bc08928290030190a16000908152600660205260408120556001016119e8565b60045460ff1615610a4b5760405162461bcd60e51b815260040180806020018281038252602b815260200180611c3e602b913960400191505060405180910390fd5b611acd640a6f2dce8d60db1b61166d565b60005b8251811015610bc9576000838281518110611ae757fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541928290030190a150600101611ad0565b611b73640a6f2dce8d60db1b611610565b60005b8151811015610c02576000828281518110611b8d57fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220928290030190a1600090815260076020526040812055600101611b7656fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697049737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645265737472696374656420746f2061636365737320636f6e74726f6c206c69737453796e7468657469782069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e7468657469782069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e6420627953796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a723158200dfb2028e001170d445db182b862c9d45647b267348064b30768ba00ff4424c764736f6c63430005100032

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

000000000000000000000000de910777c787903f78c89e7a0bf7f4c435cbb1fe

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

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


Libraries Used


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.