S Price: $0.536986 (-4.95%)

Contract

0x1e6461098686DF18e36578901bff95043E53B778

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ShortsTrackerTimelock

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 14 runs

Other Settings:
istanbul EvmVersion, MIT license
File 1 of 5 : ShortsTrackerTimelock.sol
// SPDX-License-Identifier: MIT

import "../libraries/math/SafeMath.sol";
import "../access/Governable.sol";
import "../core/interfaces/IShortsTracker.sol";
import "./interfaces/IHandlerTarget.sol";

pragma solidity 0.6.12;

contract ShortsTrackerTimelock {
    using SafeMath for uint256;

    uint256 public constant BASIS_POINTS_DIVISOR = 10000;
    uint256 public constant MAX_BUFFER = 5 days;

    mapping (bytes32 => uint256) public pendingActions;

    address public admin;
    uint256 public buffer;

    mapping (address => bool) public isHandler;
    mapping (address => uint256) public lastUpdated;
    uint256 public averagePriceUpdateDelay;
    uint256 public maxAveragePriceChange;

    event GlobalShortAveragePriceUpdated(address indexed token, uint256 oldAveragePrice, uint256 newAveragePrice);

    event SignalSetGov(address target, address gov);
    event SetGov(address target, address gov);

    event SignalSetAdmin(address admin);
    event SetAdmin(address admin);

    event SetContractHandler(address indexed handler, bool isHandler);
    event SignalSetHandler(address target, address handler, bool isActive, bytes32 action);

    event SignalSetMaxAveragePriceChange(uint256 maxAveragePriceChange);
    event SetMaxAveragePriceChange(uint256 maxAveragePriceChange);

    event SignalSetAveragePriceUpdateDelay(uint256 averagePriceUpdateDelay);
    event SetAveragePriceUpdateDelay(uint256 averagePriceUpdateDelay);

    event SignalSetIsGlobalShortDataReady(address target, bool isGlobalShortDataReady);
    event SetIsGlobalShortDataReady(address target, bool isGlobalShortDataReady);

    event SignalPendingAction(bytes32 action);
    event ClearAction(bytes32 action);

    constructor(
        address _admin,
        uint256 _buffer,
        uint256 _averagePriceUpdateDelay,
        uint256 _maxAveragePriceChange
    ) public {
        admin = _admin;
        buffer = _buffer;
        averagePriceUpdateDelay = _averagePriceUpdateDelay;
        maxAveragePriceChange = _maxAveragePriceChange;
    }

    modifier onlyAdmin() {
        require(msg.sender == admin, "ShortsTrackerTimelock: admin forbidden");
        _;
    }

    modifier onlyHandler() {
        require(isHandler[msg.sender] || msg.sender == admin, "ShortsTrackerTimelock: handler forbidden");
        _;
    }

    function setBuffer(uint256 _buffer) external onlyAdmin {
        require(_buffer <= MAX_BUFFER, "ShortsTrackerTimelock: invalid buffer");
        require(_buffer > buffer, "ShortsTrackerTimelock: buffer cannot be decreased");
        buffer = _buffer;
    }

    function signalSetAdmin(address _admin) external onlyAdmin {
        require(_admin != address(0), "ShortsTrackerTimelock: invalid admin");

        bytes32 action = keccak256(abi.encodePacked("setAdmin", _admin));
        _setPendingAction(action);

        emit SignalSetAdmin(_admin);
    }

    function setAdmin(address _admin) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setAdmin", _admin));
        _validateAction(action);
        _clearAction(action);

        admin = _admin;

        emit SetAdmin(_admin);
    }

    function setContractHandler(address _handler, bool _isActive) external onlyAdmin {
        isHandler[_handler] = _isActive;

        emit SetContractHandler(_handler, _isActive);
    }

    function signalSetGov(address _shortsTracker, address _gov) external onlyAdmin {
        require(_gov != address(0), "ShortsTrackerTimelock: invalid gov");

        bytes32 action = keccak256(abi.encodePacked("setGov", _shortsTracker, _gov));
        _setPendingAction(action);

        emit SignalSetGov(_shortsTracker, _gov);
    }

    function setGov(address _shortsTracker, address _gov) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setGov", _shortsTracker, _gov));
        _validateAction(action);
        _clearAction(action);

        Governable(_shortsTracker).setGov(_gov);

        emit SetGov(_shortsTracker, _gov);
    }

    function signalSetHandler(address _target, address _handler, bool _isActive) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setHandler", _target, _handler, _isActive));
        _setPendingAction(action);
        emit SignalSetHandler(_target, _handler, _isActive, action);
    }

    function setHandler(address _target, address _handler, bool _isActive) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setHandler", _target, _handler, _isActive));
        _validateAction(action);
        _clearAction(action);
        IHandlerTarget(_target).setHandler(_handler, _isActive);
    }

    function signalSetAveragePriceUpdateDelay(uint256 _averagePriceUpdateDelay) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setAveragePriceUpdateDelay", _averagePriceUpdateDelay));
        _setPendingAction(action);

        emit SignalSetAveragePriceUpdateDelay(_averagePriceUpdateDelay);
    }

    function setAveragePriceUpdateDelay(uint256 _averagePriceUpdateDelay) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setAveragePriceUpdateDelay", _averagePriceUpdateDelay));
        _validateAction(action);
        _clearAction(action);

        averagePriceUpdateDelay = _averagePriceUpdateDelay;

        emit SetAveragePriceUpdateDelay(_averagePriceUpdateDelay);
    }

    function signalSetMaxAveragePriceChange(uint256 _maxAveragePriceChange) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setMaxAveragePriceChange", _maxAveragePriceChange));
        _setPendingAction(action);

        emit SignalSetMaxAveragePriceChange(_maxAveragePriceChange);
    }

    function setMaxAveragePriceChange(uint256 _maxAveragePriceChange) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setMaxAveragePriceChange", _maxAveragePriceChange));
        _validateAction(action);
        _clearAction(action);

        maxAveragePriceChange = _maxAveragePriceChange;

        emit SetMaxAveragePriceChange(_maxAveragePriceChange);
    }

    function signalSetIsGlobalShortDataReady(IShortsTracker _shortsTracker, bool _value) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setIsGlobalShortDataReady", address(_shortsTracker), _value));
        _setPendingAction(action);

        emit SignalSetIsGlobalShortDataReady(address(_shortsTracker), _value);
    }

    function setIsGlobalShortDataReady(IShortsTracker _shortsTracker, bool _value) external onlyAdmin {
        bytes32 action = keccak256(abi.encodePacked("setIsGlobalShortDataReady", address(_shortsTracker), _value));
        _validateAction(action);
        _clearAction(action);

        _shortsTracker.setIsGlobalShortDataReady(_value);

        emit SetIsGlobalShortDataReady(address(_shortsTracker), _value);
    }

    function disableIsGlobalShortDataReady(IShortsTracker _shortsTracker) external onlyAdmin {
        _shortsTracker.setIsGlobalShortDataReady(false);

        emit SetIsGlobalShortDataReady(address(_shortsTracker), false);
    }

    function setGlobalShortAveragePrices(IShortsTracker _shortsTracker, address[] calldata _tokens, uint256[] calldata _averagePrices) external onlyHandler {
        _shortsTracker.setIsGlobalShortDataReady(false);

        for (uint256 i = 0; i < _tokens.length; i++) {
            address token = _tokens[i];
            uint256 oldAveragePrice = _shortsTracker.globalShortAveragePrices(token);
            uint256 newAveragePrice = _averagePrices[i];
            uint256 diff = newAveragePrice > oldAveragePrice ? newAveragePrice.sub(oldAveragePrice) : oldAveragePrice.sub(newAveragePrice);
            require(diff.mul(BASIS_POINTS_DIVISOR).div(oldAveragePrice) < maxAveragePriceChange, "ShortsTrackerTimelock: too big change");

            require(block.timestamp >= lastUpdated[token].add(averagePriceUpdateDelay), "ShortsTrackerTimelock: too early");
            lastUpdated[token] = block.timestamp;

            emit GlobalShortAveragePriceUpdated(token, oldAveragePrice, newAveragePrice);
        }

        _shortsTracker.setInitData(_tokens, _averagePrices);
    }

    function cancelAction(bytes32 _action) external onlyAdmin {
        _clearAction(_action);
    }

    function _setPendingAction(bytes32 _action) private {
        require(pendingActions[_action] == 0, "ShortsTrackerTimelock: action already signalled");
        pendingActions[_action] = block.timestamp.add(buffer);
        emit SignalPendingAction(_action);
    }

    function _validateAction(bytes32 _action) private view {
        require(pendingActions[_action] != 0, "ShortsTrackerTimelock: action not signalled");
        require(pendingActions[_action] <= block.timestamp, "ShortsTrackerTimelock: action time not yet passed");
    }

    function _clearAction(bytes32 _action) private {
        require(pendingActions[_action] != 0, "ShortsTrackerTimelock: invalid _action");
        delete pendingActions[_action];
        emit ClearAction(_action);
    }
}

File 2 of 5 : Governable.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.12;

contract Governable {
    address public gov;

    constructor() public {
        gov = msg.sender;
    }

    modifier onlyGov() {
        require(msg.sender == gov, "Governable: forbidden");
        _;
    }

    function setGov(address _gov) external onlyGov {
        gov = _gov;
    }
}

File 3 of 5 : IShortsTracker.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

interface IShortsTracker {
    function isGlobalShortDataReady() external view returns (bool);
    function globalShortAveragePrices(address _token) external view returns (uint256);
    function getNextGlobalShortData(
        address _account,
        address _collateralToken,
        address _indexToken,
        uint256 _nextPrice,
        uint256 _sizeDelta,
        bool _isIncrease
    ) external view returns (uint256, uint256);
    function updateGlobalShortData(
        address _account,
        address _collateralToken,
        address _indexToken,
        bool _isLong,
        uint256 _sizeDelta,
        uint256 _markPrice,
        bool _isIncrease
    ) external;
    function setIsGlobalShortDataReady(bool value) external;
    function setInitData(address[] calldata _tokens, uint256[] calldata _averagePrices) external;
}

File 4 of 5 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.12;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

File 5 of 5 : IHandlerTarget.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

interface IHandlerTarget {
    function isHandler(address _account) external returns (bool);
    function setHandler(address _handler, bool _isActive) external;
}

Settings
{
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 14
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"uint256","name":"_buffer","type":"uint256"},{"internalType":"uint256","name":"_averagePriceUpdateDelay","type":"uint256"},{"internalType":"uint256","name":"_maxAveragePriceChange","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"ClearAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldAveragePrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newAveragePrice","type":"uint256"}],"name":"GlobalShortAveragePriceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"SetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"averagePriceUpdateDelay","type":"uint256"}],"name":"SetAveragePriceUpdateDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"handler","type":"address"},{"indexed":false,"internalType":"bool","name":"isHandler","type":"bool"}],"name":"SetContractHandler","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"gov","type":"address"}],"name":"SetGov","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bool","name":"isGlobalShortDataReady","type":"bool"}],"name":"SetIsGlobalShortDataReady","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxAveragePriceChange","type":"uint256"}],"name":"SetMaxAveragePriceChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"SignalPendingAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"SignalSetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"averagePriceUpdateDelay","type":"uint256"}],"name":"SignalSetAveragePriceUpdateDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"gov","type":"address"}],"name":"SignalSetGov","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"handler","type":"address"},{"indexed":false,"internalType":"bool","name":"isActive","type":"bool"},{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"SignalSetHandler","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bool","name":"isGlobalShortDataReady","type":"bool"}],"name":"SignalSetIsGlobalShortDataReady","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxAveragePriceChange","type":"uint256"}],"name":"SignalSetMaxAveragePriceChange","type":"event"},{"inputs":[],"name":"BASIS_POINTS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BUFFER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"averagePriceUpdateDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buffer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_action","type":"bytes32"}],"name":"cancelAction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IShortsTracker","name":"_shortsTracker","type":"address"}],"name":"disableIsGlobalShortDataReady","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isHandler","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastUpdated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAveragePriceChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"pendingActions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_averagePriceUpdateDelay","type":"uint256"}],"name":"setAveragePriceUpdateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buffer","type":"uint256"}],"name":"setBuffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_handler","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setContractHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IShortsTracker","name":"_shortsTracker","type":"address"},{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_averagePrices","type":"uint256[]"}],"name":"setGlobalShortAveragePrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_shortsTracker","type":"address"},{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_handler","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IShortsTracker","name":"_shortsTracker","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setIsGlobalShortDataReady","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAveragePriceChange","type":"uint256"}],"name":"setMaxAveragePriceChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"signalSetAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_averagePriceUpdateDelay","type":"uint256"}],"name":"signalSetAveragePriceUpdateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_shortsTracker","type":"address"},{"internalType":"address","name":"_gov","type":"address"}],"name":"signalSetGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_handler","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"signalSetHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IShortsTracker","name":"_shortsTracker","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"signalSetIsGlobalShortDataReady","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAveragePriceChange","type":"uint256"}],"name":"signalSetMaxAveragePriceChange","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051611f4a380380611f4a8339818101604052608081101561003357600080fd5b50805160208201516040830151606090930151600180546001600160a01b0319166001600160a01b0390941693909317909255600255600591909155600655611ec9806100816000396000f3fe608060405234801561001057600080fd5b506004361061013e5760003560e01c80630a6f93e6146101435780631154e8081461017b578063126082cf146101b5578063185051c1146101bd5780631ab8fe04146101eb57806324ccbe30146101f35780632591d4831461022b5780632c166c411461025957806333156639146102765780633976e5661461029357806342588a671461036157806342773c2c1461037e57806346ea87af146103865780634882fa13146103c057806351a6de0d146103ee5780635c3bca361461041c57806361d0756914610439578063627395eb14610441578063704b6c0214610467578063717cf5d61461048d578063781cc3d3146104b3578063996a7a1e146104d0578063adc7ea37146104fe578063e30569e51461051b578063edaafe2014610538578063f851a44014610540575b600080fd5b6101696004803603602081101561015957600080fd5b50356001600160a01b0316610564565b60408051918252519081900360200190f35b6101b36004803603606081101561019157600080fd5b506001600160a01b038135811691602081013590911690604001351515610576565b005b6101696106a3565b6101b3600480360360408110156101d357600080fd5b506001600160a01b03813516906020013515156106a9565b610169610752565b6101b36004803603606081101561020957600080fd5b506001600160a01b038135811691602081013590911690604001351515610758565b6101b36004803603604081101561024157600080fd5b506001600160a01b038135169060200135151561085d565b6101b36004803603602081101561026f57600080fd5b50356109c2565b6101b36004803603602081101561028c57600080fd5b5035610aa1565b6101b3600480360360608110156102a957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102d357600080fd5b8201836020820111156102e557600080fd5b803590602001918460208302840111600160201b8311171561030657600080fd5b919390929091602081019035600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b509092509050610b82565b6101b36004803603602081101561037757600080fd5b5035610f21565b610169610ff4565b6103ac6004803603602081101561039c57600080fd5b50356001600160a01b0316610ffa565b604080519115158252519081900360200190f35b6101b3600480360360408110156103d657600080fd5b506001600160a01b038135169060200135151561100f565b6101b36004803603604081101561040457600080fd5b506001600160a01b038135811691602001351661110b565b6101b36004803603602081101561043257600080fd5b5035611263565b610169611334565b6101b36004803603602081101561045757600080fd5b50356001600160a01b031661133b565b6101b36004803603602081101561047d57600080fd5b50356001600160a01b0316611429565b6101b3600480360360208110156104a357600080fd5b50356001600160a01b031661151d565b6101b3600480360360208110156104c957600080fd5b5035611638565b6101b3600480360360408110156104e657600080fd5b506001600160a01b038135811691602001351661168d565b6101b36004803603602081101561051457600080fd5b50356117ba565b6101696004803603602081101561053157600080fd5b503561188a565b61016961189c565b6105486118a2565b604080516001600160a01b039092168252519081900360200190f35b60046020526000908152604090205481565b6001546001600160a01b031633146105bf5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516939b2ba2430b7323632b960b11b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e83015283151560f81b60528301528251603381840301815260539092019092528051910120610623816118b1565b61062c81611948565b836001600160a01b0316639cb7de4b84846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b5050505050505050565b61271081565b6001546001600160a01b031633146106f25760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b6001600160a01b038216600081815260036020908152604091829020805460ff1916851515908117909155825190815291517f0c7e57410cc008b0b1abd8a03240abc3921d41be4ca09611330825622d5866cf9281900390910190a25050565b60055481565b6001546001600160a01b031633146107a15760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516939b2ba2430b7323632b960b11b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e83015283151560f81b60528301528251603381840301815260539092019092528051910120610805816119d9565b604080516001600160a01b03808716825285166020820152831515818301526060810183905290517f1929c4e13b0dbbad7856b9ce1fc9dca98c7bf7cedd56e22c04dd60ad1d34fe4b9181900360800190a150505050565b6001546001600160a01b031633146108a65760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051787365744973476c6f62616c53686f727444617461526561647960381b6020808301919091526001600160601b0319606086901b16603983015283151560f81b604d8301528251602e818403018152604e909201909252805191012061090f816118b1565b61091881611948565b826001600160a01b0316633d30cabf836040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b15801561096057600080fd5b505af1158015610974573d6000803e3d6000fd5b5050604080516001600160a01b0387168152851515602082015281517f177de4361fc37a0e8defe8ac0c685d3472789b507959897eec32350c9d2c36669450908190039091019150a1505050565b6001546001600160a01b03163314610a0b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051777365744d61784176657261676550726963654368616e676560401b60208083019190915260388083018590528351808403909101815260589092019092528051910120610a5c816118b1565b610a6581611948565b60068290556040805183815290517fe846c28c10eef345d8d4fea8b403bfac624c32c3e64ce0b666f23404f2edb5149181900360200190a15050565b6001546001600160a01b03163314610aea5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080517973657441766572616765507269636555706461746544656c617960301b602080830191909152603a80830185905283518084039091018152605a9092019092528051910120610b3d816118b1565b610b4681611948565b60058290556040805183815290517fa043b6b847902bb85c2a2575e9bce3a077bcaad8ec888ac941f50a6f4acdbb3d9181900360200190a15050565b3360009081526003602052604090205460ff1680610baa57506001546001600160a01b031633145b610be55760405162461bcd60e51b8152600401808060200182810382526028815260200180611d4c6028913960400191505060405180910390fd5b60408051633d30cabf60e01b815260006004820181905291516001600160a01b03881692633d30cabf926024808201939182900301818387803b158015610c2b57600080fd5b505af1158015610c3f573d6000803e3d6000fd5b5050505060005b83811015610e5c576000858583818110610c5c57fe5b905060200201356001600160a01b031690506000876001600160a01b03166362749803836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610cbd57600080fd5b505afa158015610cd1573d6000803e3d6000fd5b505050506040513d6020811015610ce757600080fd5b505190506000858585818110610cf957fe5b9050602002013590506000828211610d1a57610d158383611a7b565b610d24565b610d248284611a7b565b600654909150610d4084610d3a84612710611ac6565b90611b1f565b10610d7c5760405162461bcd60e51b8152600401808060200182810382526025815260200180611e6f6025913960400191505060405180910390fd5b6005546001600160a01b038516600090815260046020526040902054610da191611b5e565b421015610df5576040805162461bcd60e51b815260206004820181905260248201527f53686f727473547261636b657254696d656c6f636b3a20746f6f206561726c79604482015290519081900360640190fd5b6001600160a01b038416600081815260046020908152604091829020429055815186815290810185905281517fa6a58ff784b1e07988de90568885d7bbd8e5485c3ec4344195c7306108553256929181900390910190a2505060019092019150610c469050565b50846001600160a01b031663bbd97187858585856040518563ffffffff1660e01b81526004018080602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610f0257600080fd5b505af1158015610f16573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b03163314610f6a5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080517973657441766572616765507269636555706461746544656c617960301b602080830191909152603a80830185905283518084039091018152605a9092019092528051910120610fbd816119d9565b6040805183815290517fc226c48cee6a025ab009e01969a2e89f1ce4d455cfa2900745b2237cb0bb8d619181900360200190a15050565b60065481565b60036020526000908152604090205460ff1681565b6001546001600160a01b031633146110585760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051787365744973476c6f62616c53686f727444617461526561647960381b6020808301919091526001600160601b0319606086901b16603983015283151560f81b604d8301528251602e818403018152604e90920190925280519101206110c1816119d9565b604080516001600160a01b0385168152831515602082015281517f362e5bba25647700de1a7562fc07672df837bef17125e07a6f79abea31ee5a48929181900390910190a1505050565b6001546001600160a01b031633146111545760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e90920190925280519101206111a9816118b1565b6111b281611948565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561120157600080fd5b505af1158015611215573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015281517f53351836099c03ffc3b1727d8abd4b0222afa87d4ed76ae3102d51369ef7f7859450908190039091019150a1505050565b6001546001600160a01b031633146112ac5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051777365744d61784176657261676550726963654368616e676560401b602080830191909152603880830185905283518084039091018152605890920190925280519101206112fd816119d9565b6040805183815290517f21f68305d262b9ce144019f5d9f755a2dd1b5c2d35996cd4b649c285d7525cd19181900360200190a15050565b6206978081565b6001546001600160a01b031633146113845760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051633d30cabf60e01b815260006004820181905291516001600160a01b03841692633d30cabf926024808201939182900301818387803b1580156113ca57600080fd5b505af11580156113de573d6000803e3d6000fd5b5050604080516001600160a01b03851681526000602082015281517f177de4361fc37a0e8defe8ac0c685d3472789b507959897eec32350c9d2c36669450908190039091019150a150565b6001546001600160a01b031633146114725760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516739b2ba20b236b4b760c11b6020808301919091526001600160601b0319606085901b1660288301528251601c818403018152603c90920190925280519101206114bf816118b1565b6114c881611948565b600180546001600160a01b0384166001600160a01b0319909116811790915560408051918252517f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a19181900360200190a15050565b6001546001600160a01b031633146115665760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b6001600160a01b0381166115ab5760405162461bcd60e51b8152600401808060200182810382526024815260200180611df56024913960400191505060405180910390fd5b604080516739b2ba20b236b4b760c11b6020808301919091526001600160601b0319606085901b1660288301528251601c818403018152603c90920190925280519101206115f8816119d9565b604080516001600160a01b038416815290517fbccacda50126e9efa231593d2a9d4394d7cda7909ab2e14d2ae878ab2a306b3f9181900360200190a15050565b6001546001600160a01b031633146116815760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b61168a81611948565b50565b6001546001600160a01b031633146116d65760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b6001600160a01b03811661171b5760405162461bcd60e51b8152600401808060200182810382526022815260200180611cb36022913960400191505060405180910390fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611770816119d9565b604080516001600160a01b0380861682528416602082015281517f84f5d90471bb5811423318895e49ef4de52f5a6f4dac67af85e4202410bb66a4929181900390910190a1505050565b6001546001600160a01b031633146118035760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b620697808111156118455760405162461bcd60e51b8152600401808060200182810382526025815260200180611e196025913960400191505060405180910390fd5b60025481116118855760405162461bcd60e51b8152600401808060200182810382526031815260200180611e3e6031913960400191505060405180910390fd5b600255565b60006020819052908152604090205481565b60025481565b6001546001600160a01b031681565b6000818152602081905260409020546118fb5760405162461bcd60e51b815260040180806020018281038252602b815260200180611cfb602b913960400191505060405180910390fd5b60008181526020819052604090205442101561168a5760405162461bcd60e51b8152600401808060200182810382526031815260200180611dc46031913960400191505060405180910390fd5b6000818152602081905260409020546119925760405162461bcd60e51b8152600401808060200182810382526026815260200180611cd56026913960400191505060405180910390fd5b60008181526020818152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b60008181526020819052604090205415611a245760405162461bcd60e51b815260040180806020018281038252602f815260200180611d74602f913960400191505060405180910390fd5b600254611a32904290611b5e565b6000828152602081815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b6000611abd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb6565b90505b92915050565b600082611ad557506000611ac0565b82820282848281611ae257fe5b0414611abd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611da36021913960400191505060405180910390fd5b6000611abd83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611c4d565b600082820183811015611abd576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60008184841115611c455760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c0a578181015183820152602001611bf2565b50505050905090810190601f168015611c375780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611c9c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611c0a578181015183820152602001611bf2565b506000838581611ca857fe5b049594505050505056fe53686f727473547261636b657254696d656c6f636b3a20696e76616c696420676f7653686f727473547261636b657254696d656c6f636b3a20696e76616c6964205f616374696f6e53686f727473547261636b657254696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c656453686f727473547261636b657254696d656c6f636b3a2061646d696e20666f7262696464656e53686f727473547261636b657254696d656c6f636b3a2068616e646c657220666f7262696464656e53686f727473547261636b657254696d656c6f636b3a20616374696f6e20616c7265616479207369676e616c6c6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753686f727473547261636b657254696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656453686f727473547261636b657254696d656c6f636b3a20696e76616c69642061646d696e53686f727473547261636b657254696d656c6f636b3a20696e76616c69642062756666657253686f727473547261636b657254696d656c6f636b3a206275666665722063616e6e6f742062652064656372656173656453686f727473547261636b657254696d656c6f636b3a20746f6f20626967206368616e6765a2646970667358221220d8701994d2fcdb54b36b230082de74350c11d57e412f9531086cc75032e607e464736f6c634300060c003300000000000000000000000030b12942912cee5a719edec2dd147224fcc373a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000000000000000000000000000000000000000000014

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061013e5760003560e01c80630a6f93e6146101435780631154e8081461017b578063126082cf146101b5578063185051c1146101bd5780631ab8fe04146101eb57806324ccbe30146101f35780632591d4831461022b5780632c166c411461025957806333156639146102765780633976e5661461029357806342588a671461036157806342773c2c1461037e57806346ea87af146103865780634882fa13146103c057806351a6de0d146103ee5780635c3bca361461041c57806361d0756914610439578063627395eb14610441578063704b6c0214610467578063717cf5d61461048d578063781cc3d3146104b3578063996a7a1e146104d0578063adc7ea37146104fe578063e30569e51461051b578063edaafe2014610538578063f851a44014610540575b600080fd5b6101696004803603602081101561015957600080fd5b50356001600160a01b0316610564565b60408051918252519081900360200190f35b6101b36004803603606081101561019157600080fd5b506001600160a01b038135811691602081013590911690604001351515610576565b005b6101696106a3565b6101b3600480360360408110156101d357600080fd5b506001600160a01b03813516906020013515156106a9565b610169610752565b6101b36004803603606081101561020957600080fd5b506001600160a01b038135811691602081013590911690604001351515610758565b6101b36004803603604081101561024157600080fd5b506001600160a01b038135169060200135151561085d565b6101b36004803603602081101561026f57600080fd5b50356109c2565b6101b36004803603602081101561028c57600080fd5b5035610aa1565b6101b3600480360360608110156102a957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102d357600080fd5b8201836020820111156102e557600080fd5b803590602001918460208302840111600160201b8311171561030657600080fd5b919390929091602081019035600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460208302840111600160201b8311171561035657600080fd5b509092509050610b82565b6101b36004803603602081101561037757600080fd5b5035610f21565b610169610ff4565b6103ac6004803603602081101561039c57600080fd5b50356001600160a01b0316610ffa565b604080519115158252519081900360200190f35b6101b3600480360360408110156103d657600080fd5b506001600160a01b038135169060200135151561100f565b6101b36004803603604081101561040457600080fd5b506001600160a01b038135811691602001351661110b565b6101b36004803603602081101561043257600080fd5b5035611263565b610169611334565b6101b36004803603602081101561045757600080fd5b50356001600160a01b031661133b565b6101b36004803603602081101561047d57600080fd5b50356001600160a01b0316611429565b6101b3600480360360208110156104a357600080fd5b50356001600160a01b031661151d565b6101b3600480360360208110156104c957600080fd5b5035611638565b6101b3600480360360408110156104e657600080fd5b506001600160a01b038135811691602001351661168d565b6101b36004803603602081101561051457600080fd5b50356117ba565b6101696004803603602081101561053157600080fd5b503561188a565b61016961189c565b6105486118a2565b604080516001600160a01b039092168252519081900360200190f35b60046020526000908152604090205481565b6001546001600160a01b031633146105bf5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516939b2ba2430b7323632b960b11b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e83015283151560f81b60528301528251603381840301815260539092019092528051910120610623816118b1565b61062c81611948565b836001600160a01b0316639cb7de4b84846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b5050505050505050565b61271081565b6001546001600160a01b031633146106f25760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b6001600160a01b038216600081815260036020908152604091829020805460ff1916851515908117909155825190815291517f0c7e57410cc008b0b1abd8a03240abc3921d41be4ca09611330825622d5866cf9281900390910190a25050565b60055481565b6001546001600160a01b031633146107a15760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516939b2ba2430b7323632b960b11b6020808301919091526001600160601b0319606087811b8216602a85015286901b16603e83015283151560f81b60528301528251603381840301815260539092019092528051910120610805816119d9565b604080516001600160a01b03808716825285166020820152831515818301526060810183905290517f1929c4e13b0dbbad7856b9ce1fc9dca98c7bf7cedd56e22c04dd60ad1d34fe4b9181900360800190a150505050565b6001546001600160a01b031633146108a65760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051787365744973476c6f62616c53686f727444617461526561647960381b6020808301919091526001600160601b0319606086901b16603983015283151560f81b604d8301528251602e818403018152604e909201909252805191012061090f816118b1565b61091881611948565b826001600160a01b0316633d30cabf836040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b15801561096057600080fd5b505af1158015610974573d6000803e3d6000fd5b5050604080516001600160a01b0387168152851515602082015281517f177de4361fc37a0e8defe8ac0c685d3472789b507959897eec32350c9d2c36669450908190039091019150a1505050565b6001546001600160a01b03163314610a0b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051777365744d61784176657261676550726963654368616e676560401b60208083019190915260388083018590528351808403909101815260589092019092528051910120610a5c816118b1565b610a6581611948565b60068290556040805183815290517fe846c28c10eef345d8d4fea8b403bfac624c32c3e64ce0b666f23404f2edb5149181900360200190a15050565b6001546001600160a01b03163314610aea5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080517973657441766572616765507269636555706461746544656c617960301b602080830191909152603a80830185905283518084039091018152605a9092019092528051910120610b3d816118b1565b610b4681611948565b60058290556040805183815290517fa043b6b847902bb85c2a2575e9bce3a077bcaad8ec888ac941f50a6f4acdbb3d9181900360200190a15050565b3360009081526003602052604090205460ff1680610baa57506001546001600160a01b031633145b610be55760405162461bcd60e51b8152600401808060200182810382526028815260200180611d4c6028913960400191505060405180910390fd5b60408051633d30cabf60e01b815260006004820181905291516001600160a01b03881692633d30cabf926024808201939182900301818387803b158015610c2b57600080fd5b505af1158015610c3f573d6000803e3d6000fd5b5050505060005b83811015610e5c576000858583818110610c5c57fe5b905060200201356001600160a01b031690506000876001600160a01b03166362749803836040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610cbd57600080fd5b505afa158015610cd1573d6000803e3d6000fd5b505050506040513d6020811015610ce757600080fd5b505190506000858585818110610cf957fe5b9050602002013590506000828211610d1a57610d158383611a7b565b610d24565b610d248284611a7b565b600654909150610d4084610d3a84612710611ac6565b90611b1f565b10610d7c5760405162461bcd60e51b8152600401808060200182810382526025815260200180611e6f6025913960400191505060405180910390fd5b6005546001600160a01b038516600090815260046020526040902054610da191611b5e565b421015610df5576040805162461bcd60e51b815260206004820181905260248201527f53686f727473547261636b657254696d656c6f636b3a20746f6f206561726c79604482015290519081900360640190fd5b6001600160a01b038416600081815260046020908152604091829020429055815186815290810185905281517fa6a58ff784b1e07988de90568885d7bbd8e5485c3ec4344195c7306108553256929181900390910190a2505060019092019150610c469050565b50846001600160a01b031663bbd97187858585856040518563ffffffff1660e01b81526004018080602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610f0257600080fd5b505af1158015610f16573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b03163314610f6a5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080517973657441766572616765507269636555706461746544656c617960301b602080830191909152603a80830185905283518084039091018152605a9092019092528051910120610fbd816119d9565b6040805183815290517fc226c48cee6a025ab009e01969a2e89f1ce4d455cfa2900745b2237cb0bb8d619181900360200190a15050565b60065481565b60036020526000908152604090205460ff1681565b6001546001600160a01b031633146110585760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051787365744973476c6f62616c53686f727444617461526561647960381b6020808301919091526001600160601b0319606086901b16603983015283151560f81b604d8301528251602e818403018152604e90920190925280519101206110c1816119d9565b604080516001600160a01b0385168152831515602082015281517f362e5bba25647700de1a7562fc07672df837bef17125e07a6f79abea31ee5a48929181900390910190a1505050565b6001546001600160a01b031633146111545760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e90920190925280519101206111a9816118b1565b6111b281611948565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561120157600080fd5b505af1158015611215573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015281517f53351836099c03ffc3b1727d8abd4b0222afa87d4ed76ae3102d51369ef7f7859450908190039091019150a1505050565b6001546001600160a01b031633146112ac5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051777365744d61784176657261676550726963654368616e676560401b602080830191909152603880830185905283518084039091018152605890920190925280519101206112fd816119d9565b6040805183815290517f21f68305d262b9ce144019f5d9f755a2dd1b5c2d35996cd4b649c285d7525cd19181900360200190a15050565b6206978081565b6001546001600160a01b031633146113845760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b60408051633d30cabf60e01b815260006004820181905291516001600160a01b03841692633d30cabf926024808201939182900301818387803b1580156113ca57600080fd5b505af11580156113de573d6000803e3d6000fd5b5050604080516001600160a01b03851681526000602082015281517f177de4361fc37a0e8defe8ac0c685d3472789b507959897eec32350c9d2c36669450908190039091019150a150565b6001546001600160a01b031633146114725760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b604080516739b2ba20b236b4b760c11b6020808301919091526001600160601b0319606085901b1660288301528251601c818403018152603c90920190925280519101206114bf816118b1565b6114c881611948565b600180546001600160a01b0384166001600160a01b0319909116811790915560408051918252517f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a19181900360200190a15050565b6001546001600160a01b031633146115665760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b6001600160a01b0381166115ab5760405162461bcd60e51b8152600401808060200182810382526024815260200180611df56024913960400191505060405180910390fd5b604080516739b2ba20b236b4b760c11b6020808301919091526001600160601b0319606085901b1660288301528251601c818403018152603c90920190925280519101206115f8816119d9565b604080516001600160a01b038416815290517fbccacda50126e9efa231593d2a9d4394d7cda7909ab2e14d2ae878ab2a306b3f9181900360200190a15050565b6001546001600160a01b031633146116815760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b61168a81611948565b50565b6001546001600160a01b031633146116d65760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b6001600160a01b03811661171b5760405162461bcd60e51b8152600401808060200182810382526022815260200180611cb36022913960400191505060405180910390fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611770816119d9565b604080516001600160a01b0380861682528416602082015281517f84f5d90471bb5811423318895e49ef4de52f5a6f4dac67af85e4202410bb66a4929181900390910190a1505050565b6001546001600160a01b031633146118035760405162461bcd60e51b8152600401808060200182810382526026815260200180611d266026913960400191505060405180910390fd5b620697808111156118455760405162461bcd60e51b8152600401808060200182810382526025815260200180611e196025913960400191505060405180910390fd5b60025481116118855760405162461bcd60e51b8152600401808060200182810382526031815260200180611e3e6031913960400191505060405180910390fd5b600255565b60006020819052908152604090205481565b60025481565b6001546001600160a01b031681565b6000818152602081905260409020546118fb5760405162461bcd60e51b815260040180806020018281038252602b815260200180611cfb602b913960400191505060405180910390fd5b60008181526020819052604090205442101561168a5760405162461bcd60e51b8152600401808060200182810382526031815260200180611dc46031913960400191505060405180910390fd5b6000818152602081905260409020546119925760405162461bcd60e51b8152600401808060200182810382526026815260200180611cd56026913960400191505060405180910390fd5b60008181526020818152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b60008181526020819052604090205415611a245760405162461bcd60e51b815260040180806020018281038252602f815260200180611d74602f913960400191505060405180910390fd5b600254611a32904290611b5e565b6000828152602081815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b6000611abd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb6565b90505b92915050565b600082611ad557506000611ac0565b82820282848281611ae257fe5b0414611abd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611da36021913960400191505060405180910390fd5b6000611abd83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611c4d565b600082820183811015611abd576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60008184841115611c455760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c0a578181015183820152602001611bf2565b50505050905090810190601f168015611c375780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611c9c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611c0a578181015183820152602001611bf2565b506000838581611ca857fe5b049594505050505056fe53686f727473547261636b657254696d656c6f636b3a20696e76616c696420676f7653686f727473547261636b657254696d656c6f636b3a20696e76616c6964205f616374696f6e53686f727473547261636b657254696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c656453686f727473547261636b657254696d656c6f636b3a2061646d696e20666f7262696464656e53686f727473547261636b657254696d656c6f636b3a2068616e646c657220666f7262696464656e53686f727473547261636b657254696d656c6f636b3a20616374696f6e20616c7265616479207369676e616c6c6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753686f727473547261636b657254696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656453686f727473547261636b657254696d656c6f636b3a20696e76616c69642061646d696e53686f727473547261636b657254696d656c6f636b3a20696e76616c69642062756666657253686f727473547261636b657254696d656c6f636b3a206275666665722063616e6e6f742062652064656372656173656453686f727473547261636b657254696d656c6f636b3a20746f6f20626967206368616e6765a2646970667358221220d8701994d2fcdb54b36b230082de74350c11d57e412f9531086cc75032e607e464736f6c634300060c0033

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

00000000000000000000000030b12942912cee5a719edec2dd147224fcc373a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000000000000000000000000000000000000000000014

-----Decoded View---------------
Arg [0] : _admin (address): 0x30B12942912Cee5A719edec2dD147224fCC373A0
Arg [1] : _buffer (uint256): 0
Arg [2] : _averagePriceUpdateDelay (uint256): 300
Arg [3] : _maxAveragePriceChange (uint256): 20

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000030b12942912cee5a719edec2dd147224fcc373a0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 000000000000000000000000000000000000000000000000000000000000012c
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000014


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits

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.