ETH Price: $2,089.60 (-0.16%)

Contract

0xB63cac384247597756545b500253ff8E607a8020
 

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Stake246565442026-03-14 15:12:5910 hrs ago1773501179IN
OlympusDAO: Staking v2
0 ETH0.000015120.14423383
Unstake246540412026-03-14 6:50:4719 hrs ago1773471047IN
OlympusDAO: Staking v2
0 ETH0.000175932.03317887
Unstake246531502026-03-14 3:52:1122 hrs ago1773460331IN
OlympusDAO: Staking v2
0 ETH0.000174852.02913157
Unstake246530032026-03-14 3:22:4722 hrs ago1773458567IN
OlympusDAO: Staking v2
0 ETH0.000140322.0315682
Unstake246527002026-03-14 2:21:4723 hrs ago1773454907IN
OlympusDAO: Staking v2
0 ETH0.000032341.03018701
Unstake246472942026-03-13 8:17:1141 hrs ago1773389831IN
OlympusDAO: Staking v2
0 ETH0.000027360.3009149
Unstake246454772026-03-13 2:12:3547 hrs ago1773367955IN
OlympusDAO: Staking v2
0 ETH0.000011860.13774179
Unstake246433522026-03-12 19:03:472 days ago1773342227IN
OlympusDAO: Staking v2
0 ETH0.00018322.12594452
Unstake246418732026-03-12 14:06:232 days ago1773324383IN
OlympusDAO: Staking v2
0 ETH0.000207442.3973455
Unstake246391932026-03-12 5:07:472 days ago1773292067IN
OlympusDAO: Staking v2
0 ETH0.000002430.03531445
Stake246376732026-03-12 0:02:353 days ago1773273755IN
OlympusDAO: Staking v2
0 ETH0.000012390.14128167
Stake246376702026-03-12 0:01:593 days ago1773273719IN
OlympusDAO: Staking v2
0 ETH0.000014850.14172963
Unstake246292322026-03-10 19:44:354 days ago1773171875IN
OlympusDAO: Staking v2
0 ETH0.000169752.07754526
Unstake246285302026-03-10 17:22:594 days ago1773163379IN
OlympusDAO: Staking v2
0 ETH0.000086791.00730529
Unstake246198662026-03-09 12:18:115 days ago1773058691IN
OlympusDAO: Staking v2
0 ETH0.000175882.04105516
Unstake246179602026-03-09 5:55:235 days ago1773035723IN
OlympusDAO: Staking v2
0 ETH0.000006980.08105255
Unstake246169122026-03-09 2:25:355 days ago1773023135IN
OlympusDAO: Staking v2
0 ETH0.000002560.03713527
Unstake246162652026-03-09 0:15:596 days ago1773015359IN
OlympusDAO: Staking v2
0 ETH0.000098630.80387179
Unstake246162282026-03-09 0:08:356 days ago1773014915IN
OlympusDAO: Staking v2
0 ETH0.000121750.99230811
Unstake246162002026-03-09 0:02:356 days ago1773014555IN
OlympusDAO: Staking v2
0 ETH0.000127681.04066197
Unstake246161272026-03-08 23:47:476 days ago1773013667IN
OlympusDAO: Staking v2
0 ETH0.000003250.04718137
Unstake246160752026-03-08 23:37:116 days ago1773013031IN
OlympusDAO: Staking v2
0 ETH0.000005580.08090439
Unstake246157932026-03-08 22:40:116 days ago1773009611IN
OlympusDAO: Staking v2
0 ETH0.000023660.30772793
Stake246148232026-03-08 19:25:356 days ago1772997935IN
OlympusDAO: Staking v2
0 ETH0.000214642.04768842
Unstake246074512026-03-07 18:46:117 days ago1772909171IN
OlympusDAO: Staking v2
0 ETH0.000005160.05995617
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer158011792022-10-22 4:13:111239 days ago1666411991
OlympusDAO: Staking v2
0.01209248 ETH
Transfer157213292022-10-11 0:37:231251 days ago1665448643
OlympusDAO: Staking v2
0.00219123 ETH
Transfer155754772022-09-20 15:07:111271 days ago1663686431
OlympusDAO: Staking v2
0.00346574 ETH
Transfer153965372022-08-23 12:27:331299 days ago1661257653
OlympusDAO: Staking v2
0.01550777 ETH
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:
OlympusStaking

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-12-14
*/

// SPDX-License-Identifier: AGPL-3.0-or-later

// File: interfaces/IOlympusAuthority.sol


pragma solidity =0.7.5;

interface IOlympusAuthority {
    /* ========== EVENTS ========== */
    
    event GovernorPushed(address indexed from, address indexed to, bool _effectiveImmediately);
    event GuardianPushed(address indexed from, address indexed to, bool _effectiveImmediately);    
    event PolicyPushed(address indexed from, address indexed to, bool _effectiveImmediately);    
    event VaultPushed(address indexed from, address indexed to, bool _effectiveImmediately);    

    event GovernorPulled(address indexed from, address indexed to);
    event GuardianPulled(address indexed from, address indexed to);
    event PolicyPulled(address indexed from, address indexed to);
    event VaultPulled(address indexed from, address indexed to);

    /* ========== VIEW ========== */
    
    function governor() external view returns (address);
    function guardian() external view returns (address);
    function policy() external view returns (address);
    function vault() external view returns (address);
}
// File: types/OlympusAccessControlled.sol


pragma solidity >=0.7.5;


abstract contract OlympusAccessControlled {

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

    event AuthorityUpdated(IOlympusAuthority indexed authority);

    string UNAUTHORIZED = "UNAUTHORIZED"; // save gas

    /* ========== STATE VARIABLES ========== */

    IOlympusAuthority public authority;


    /* ========== Constructor ========== */

    constructor(IOlympusAuthority _authority) {
        authority = _authority;
        emit AuthorityUpdated(_authority);
    }
    

    /* ========== MODIFIERS ========== */
    
    modifier onlyGovernor() {
        require(msg.sender == authority.governor(), UNAUTHORIZED);
        _;
    }
    
    modifier onlyGuardian() {
        require(msg.sender == authority.guardian(), UNAUTHORIZED);
        _;
    }
    
    modifier onlyPolicy() {
        require(msg.sender == authority.policy(), UNAUTHORIZED);
        _;
    }

    modifier onlyVault() {
        require(msg.sender == authority.vault(), UNAUTHORIZED);
        _;
    }
    
    /* ========== GOV ONLY ========== */
    
    function setAuthority(IOlympusAuthority _newAuthority) external onlyGovernor {
        authority = _newAuthority;
        emit AuthorityUpdated(_newAuthority);
    }
}

// File: interfaces/IDistributor.sol


pragma solidity >=0.7.5;

interface IDistributor {
    function distribute() external;

    function bounty() external view returns (uint256);

    function retrieveBounty() external returns (uint256);

    function nextRewardAt(uint256 _rate) external view returns (uint256);

    function nextRewardFor(address _recipient) external view returns (uint256);

    function setBounty(uint256 _bounty) external;

    function addRecipient(address _recipient, uint256 _rewardRate) external;

    function removeRecipient(uint256 _index) external;

    function setAdjustment(
        uint256 _index,
        bool _add,
        uint256 _rate,
        uint256 _target
    ) external;
}

// File: interfaces/IERC20.sol


pragma solidity >=0.7.5;

interface IERC20 {
  /**
   * @dev Returns the amount of tokens in existence.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns the amount of tokens owned by `account`.
   */
  function balanceOf(address account) external view returns (uint256);

  /**
   * @dev Moves `amount` tokens from the caller's account to `recipient`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transfer(address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Returns the remaining number of tokens that `spender` will be
   * allowed to spend on behalf of `owner` through {transferFrom}. This is
   * zero by default.
   *
   * This value changes when {approve} or {transferFrom} are called.
   */
  function allowance(address owner, address spender) external view returns (uint256);

  /**
   * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * IMPORTANT: Beware that changing an allowance with this method brings the risk
   * that someone may use both the old and the new allowance by unfortunate
   * transaction ordering. One possible solution to mitigate this race
   * condition is to first reduce the spender's allowance to 0 and set the
   * desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   * Emits an {Approval} event.
   */
  function approve(address spender, uint256 amount) external returns (bool);

  /**
   * @dev Moves `amount` tokens from `sender` to `recipient` using the
   * allowance mechanism. `amount` is then deducted from the caller's
   * allowance.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Emitted when `value` tokens are moved from one account (`from`) to
   * another (`to`).
   *
   * Note that `value` may be zero.
   */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
   * @dev Emitted when the allowance of a `spender` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: interfaces/IgOHM.sol


pragma solidity >=0.7.5;


interface IgOHM is IERC20 {
  function mint(address _to, uint256 _amount) external;

  function burn(address _from, uint256 _amount) external;

  function index() external view returns (uint256);

  function balanceFrom(uint256 _amount) external view returns (uint256);

  function balanceTo(uint256 _amount) external view returns (uint256);

  function migrate( address _staking, address _sOHM ) external;
}

// File: interfaces/IsOHM.sol


pragma solidity >=0.7.5;


interface IsOHM is IERC20 {
    function rebase( uint256 ohmProfit_, uint epoch_) external returns (uint256);

    function circulatingSupply() external view returns (uint256);

    function gonsForBalance( uint amount ) external view returns ( uint );

    function balanceForGons( uint gons ) external view returns ( uint );

    function index() external view returns ( uint );

    function toG(uint amount) external view returns (uint);

    function fromG(uint amount) external view returns (uint);

     function changeDebt(
        uint256 amount,
        address debtor,
        bool add
    ) external;

    function debtBalances(address _address) external view returns (uint256);

}

// File: libraries/SafeERC20.sol


pragma solidity >=0.7.5;


/// @notice Safe IERC20 and ETH transfer library that safely handles missing return values.
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v3-periphery/blob/main/contracts/libraries/TransferHelper.sol)
/// Taken from Solmate
library SafeERC20 {
    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(
            abi.encodeWithSelector(IERC20.transferFrom.selector, from, to, amount)
        );

        require(success && (data.length == 0 || abi.decode(data, (bool))), "TRANSFER_FROM_FAILED");
    }

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(
            abi.encodeWithSelector(IERC20.transfer.selector, to, amount)
        );

        require(success && (data.length == 0 || abi.decode(data, (bool))), "TRANSFER_FAILED");
    }

    function safeApprove(
        IERC20 token,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(
            abi.encodeWithSelector(IERC20.approve.selector, to, amount)
        );

        require(success && (data.length == 0 || abi.decode(data, (bool))), "APPROVE_FAILED");
    }

    function safeTransferETH(address to, uint256 amount) internal {
        (bool success, ) = to.call{value: amount}(new bytes(0));

        require(success, "ETH_TRANSFER_FAILED");
    }
}
// File: libraries/SafeMath.sol


pragma solidity ^0.7.5;


// TODO(zx): Replace all instances of SafeMath with OZ implementation
library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by 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;
    }

    // Only used in the  BondingCalculator.sol
    function sqrrt(uint256 a) internal pure returns (uint c) {
        if (a > 3) {
            c = a;
            uint b = add( div( a, 2), 1 );
            while (b < c) {
                c = b;
                b = div( add( div( a, b ), b), 2 );
            }
        } else if (a != 0) {
            c = 1;
        }
    }

}
// File: Staking.sol


pragma solidity ^0.7.5;








contract OlympusStaking is OlympusAccessControlled {
    /* ========== DEPENDENCIES ========== */

    using SafeMath for uint256;
    using SafeERC20 for IERC20;
    using SafeERC20 for IsOHM;
    using SafeERC20 for IgOHM;

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

    event DistributorSet(address distributor);
    event WarmupSet(uint256 warmup);

    /* ========== DATA STRUCTURES ========== */

    struct Epoch {
        uint256 length; // in seconds
        uint256 number; // since inception
        uint256 end; // timestamp
        uint256 distribute; // amount
    }

    struct Claim {
        uint256 deposit; // if forfeiting
        uint256 gons; // staked balance
        uint256 expiry; // end of warmup period
        bool lock; // prevents malicious delays for claim
    }

    /* ========== STATE VARIABLES ========== */

    IERC20 public immutable OHM;
    IsOHM public immutable sOHM;
    IgOHM public immutable gOHM;

    Epoch public epoch;

    IDistributor public distributor;

    mapping(address => Claim) public warmupInfo;
    uint256 public warmupPeriod;
    uint256 private gonsInWarmup;

    /* ========== CONSTRUCTOR ========== */

    constructor(
        address _ohm,
        address _sOHM,
        address _gOHM,
        uint256 _epochLength,
        uint256 _firstEpochNumber,
        uint256 _firstEpochTime,
        address _authority
    ) OlympusAccessControlled(IOlympusAuthority(_authority)) {
        require(_ohm != address(0), "Zero address: OHM");
        OHM = IERC20(_ohm);
        require(_sOHM != address(0), "Zero address: sOHM");
        sOHM = IsOHM(_sOHM);
        require(_gOHM != address(0), "Zero address: gOHM");
        gOHM = IgOHM(_gOHM);

        epoch = Epoch({length: _epochLength, number: _firstEpochNumber, end: _firstEpochTime, distribute: 0});
    }

    /* ========== MUTATIVE FUNCTIONS ========== */

    /**
     * @notice stake OHM to enter warmup
     * @param _to address
     * @param _amount uint
     * @param _claim bool
     * @param _rebasing bool
     * @return uint
     */
    function stake(
        address _to,
        uint256 _amount,
        bool _rebasing,
        bool _claim
    ) external returns (uint256) {
        OHM.safeTransferFrom(msg.sender, address(this), _amount);
        _amount = _amount.add(rebase()); // add bounty if rebase occurred
        if (_claim && warmupPeriod == 0) {
            return _send(_to, _amount, _rebasing);
        } else {
            Claim memory info = warmupInfo[_to];
            if (!info.lock) {
                require(_to == msg.sender, "External deposits for account are locked");
            }

            warmupInfo[_to] = Claim({
                deposit: info.deposit.add(_amount),
                gons: info.gons.add(sOHM.gonsForBalance(_amount)),
                expiry: epoch.number.add(warmupPeriod),
                lock: info.lock
            });

            gonsInWarmup = gonsInWarmup.add(sOHM.gonsForBalance(_amount));

            return _amount;
        }
    }

    /**
     * @notice retrieve stake from warmup
     * @param _to address
     * @param _rebasing bool
     * @return uint
     */
    function claim(address _to, bool _rebasing) public returns (uint256) {
        Claim memory info = warmupInfo[_to];

        if (!info.lock) {
            require(_to == msg.sender, "External claims for account are locked");
        }

        if (epoch.number >= info.expiry && info.expiry != 0) {
            delete warmupInfo[_to];

            gonsInWarmup = gonsInWarmup.sub(info.gons);

            return _send(_to, sOHM.balanceForGons(info.gons), _rebasing);
        }
        return 0;
    }

    /**
     * @notice forfeit stake and retrieve OHM
     * @return uint
     */
    function forfeit() external returns (uint256) {
        Claim memory info = warmupInfo[msg.sender];
        delete warmupInfo[msg.sender];

        gonsInWarmup = gonsInWarmup.sub(info.gons);

        OHM.safeTransfer(msg.sender, info.deposit);

        return info.deposit;
    }

    /**
     * @notice prevent new deposits or claims from ext. address (protection from malicious activity)
     */
    function toggleLock() external {
        warmupInfo[msg.sender].lock = !warmupInfo[msg.sender].lock;
    }

    /**
     * @notice redeem sOHM for OHMs
     * @param _to address
     * @param _amount uint
     * @param _trigger bool
     * @param _rebasing bool
     * @return amount_ uint
     */
    function unstake(
        address _to,
        uint256 _amount,
        bool _trigger,
        bool _rebasing
    ) external returns (uint256 amount_) {
        amount_ = _amount;
        uint256 bounty;
        if (_trigger) {
            bounty = rebase();
        }
        if (_rebasing) {
            sOHM.safeTransferFrom(msg.sender, address(this), _amount);
            amount_ = amount_.add(bounty);
        } else {
            gOHM.burn(msg.sender, _amount); // amount was given in gOHM terms
            amount_ = gOHM.balanceFrom(amount_).add(bounty); // convert amount to OHM terms & add bounty
        }

        require(amount_ <= OHM.balanceOf(address(this)), "Insufficient OHM balance in contract");
        OHM.safeTransfer(_to, amount_);
    }

    /**
     * @notice convert _amount sOHM into gBalance_ gOHM
     * @param _to address
     * @param _amount uint
     * @return gBalance_ uint
     */
    function wrap(address _to, uint256 _amount) external returns (uint256 gBalance_) {
        sOHM.safeTransferFrom(msg.sender, address(this), _amount);
        gBalance_ = gOHM.balanceTo(_amount);
        gOHM.mint(_to, gBalance_);
    }

    /**
     * @notice convert _amount gOHM into sBalance_ sOHM
     * @param _to address
     * @param _amount uint
     * @return sBalance_ uint
     */
    function unwrap(address _to, uint256 _amount) external returns (uint256 sBalance_) {
        gOHM.burn(msg.sender, _amount);
        sBalance_ = gOHM.balanceFrom(_amount);
        sOHM.safeTransfer(_to, sBalance_);
    }

    /**
     * @notice trigger rebase if epoch over
     * @return uint256
     */
    function rebase() public returns (uint256) {
        uint256 bounty;
        if (epoch.end <= block.timestamp) {
            sOHM.rebase(epoch.distribute, epoch.number);

            epoch.end = epoch.end.add(epoch.length);
            epoch.number++;

            if (address(distributor) != address(0)) {
                distributor.distribute();
                bounty = distributor.retrieveBounty(); // Will mint ohm for this contract if there exists a bounty
            }
            uint256 balance = OHM.balanceOf(address(this));
            uint256 staked = sOHM.circulatingSupply();
            if (balance <= staked.add(bounty)) {
                epoch.distribute = 0;
            } else {
                epoch.distribute = balance.sub(staked).sub(bounty);
            }
        }
        return bounty;
    }

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

    /**
     * @notice send staker their amount as sOHM or gOHM
     * @param _to address
     * @param _amount uint
     * @param _rebasing bool
     */
    function _send(
        address _to,
        uint256 _amount,
        bool _rebasing
    ) internal returns (uint256) {
        if (_rebasing) {
            sOHM.safeTransfer(_to, _amount); // send as sOHM (equal unit as OHM)
            return _amount;
        } else {
            gOHM.mint(_to, gOHM.balanceTo(_amount)); // send as gOHM (convert units from OHM)
            return gOHM.balanceTo(_amount);
        }
    }

    /* ========== VIEW FUNCTIONS ========== */

    /**
     * @notice returns the sOHM index, which tracks rebase growth
     * @return uint
     */
    function index() public view returns (uint256) {
        return sOHM.index();
    }

    /**
     * @notice total supply in warmup
     */
    function supplyInWarmup() public view returns (uint256) {
        return sOHM.balanceForGons(gonsInWarmup);
    }

    /**
     * @notice seconds until the next epoch begins
     */
    function secondsToNextEpoch() external view returns (uint256) {
        return epoch.end.sub(block.timestamp);
    }

    /* ========== MANAGERIAL FUNCTIONS ========== */

    /**
     * @notice sets the contract address for LP staking
     * @param _distributor address
     */
    function setDistributor(address _distributor) external onlyGovernor {
        distributor = IDistributor(_distributor);
        emit DistributorSet(_distributor);
    }

    /**
     * @notice set warmup period for new stakers
     * @param _warmupPeriod uint
     */
    function setWarmupLength(uint256 _warmupPeriod) external onlyGovernor {
        warmupPeriod = _warmupPeriod;
        emit WarmupSet(_warmupPeriod);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_ohm","type":"address"},{"internalType":"address","name":"_sOHM","type":"address"},{"internalType":"address","name":"_gOHM","type":"address"},{"internalType":"uint256","name":"_epochLength","type":"uint256"},{"internalType":"uint256","name":"_firstEpochNumber","type":"uint256"},{"internalType":"uint256","name":"_firstEpochTime","type":"uint256"},{"internalType":"address","name":"_authority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IOlympusAuthority","name":"authority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"distributor","type":"address"}],"name":"DistributorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"warmup","type":"uint256"}],"name":"WarmupSet","type":"event"},{"inputs":[],"name":"OHM","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract IOlympusAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bool","name":"_rebasing","type":"bool"}],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract IDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"number","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"distribute","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forfeit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gOHM","outputs":[{"internalType":"contract IgOHM","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sOHM","outputs":[{"internalType":"contract IsOHM","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"secondsToNextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IOlympusAuthority","name":"_newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_distributor","type":"address"}],"name":"setDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_warmupPeriod","type":"uint256"}],"name":"setWarmupLength","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_rebasing","type":"bool"},{"internalType":"bool","name":"_claim","type":"bool"}],"name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supplyInWarmup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_trigger","type":"bool"},{"internalType":"bool","name":"_rebasing","type":"bool"}],"name":"unstake","outputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unwrap","outputs":[{"internalType":"uint256","name":"sBalance_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"warmupInfo","outputs":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"uint256","name":"gons","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"lock","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"warmupPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"wrap","outputs":[{"internalType":"uint256","name":"gBalance_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60e06040526040518060400160405280600c81526020017f554e415554484f52495a45440000000000000000000000000000000000000000815250600090805190602001906200005192919062000445565b503480156200005f57600080fd5b50604051620031a4380380620031a4833981810160405260e08110156200008557600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad60405160405180910390a250600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415620001fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5a65726f20616464726573733a204f484d00000000000000000000000000000081525060200191505060405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415620002d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20616464726573733a20734f484d000000000000000000000000000081525060200191505060405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415620003b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5a65726f20616464726573733a20674f484d000000000000000000000000000081525060200191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250506040518060800160405280858152602001848152602001838152602001600081525060026000820151816000015560208201518160010155604082015181600201556060820151816003015590505050505050505050620004fb565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200047d5760008555620004c9565b82601f106200049857805160ff1916838001178555620004c9565b82800160010185558215620004c9579182015b82811115620004c8578251825591602001919060010190620004ab565b5b509050620004d89190620004dc565b5090565b5b80821115620004f7576000816000905550600101620004dd565b5090565b60805160601c60a05160601c60c05160601c612bf6620005ae6000398061067f528061082652806108cf528061138552806114325280611b255280611bd352806125b352806125f052806127075250806106a352806106c9528061077e528061098252806112185280611324528061168f52806119d15280611ade5280611ea4528061201452806125655250806114ef528061160e528061165d528061190b5280611cd6528061220f5250612bf66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80639483c1d7116100b8578063bf7e214f1161007c578063bf7e214f14610555578063bfe1092814610589578063d866c9d8146105bd578063deac361a14610637578063f3d86e4a14610655578063ff9413d81461067357610142565b80639483c1d714610409578063990966d514610427578063a6c41fec146104a1578063af14052c146104d5578063bf376c7a146104f357610142565b80636746f4c21161010a5780636746f4c21461024d57806375619ab5146102bc5780637a9e5e4b14610300578063900cf0cf146103445780639238d5921461037757806392fd2daf146103a557610142565b80630cd3058514610147578063150799251461017b57806320138641146101af5780632986c0e5146101cd57806339f47693146101eb575b600080fd5b61014f61067d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101836106a1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b76106c5565b6040518082815260200191505060405180910390f35b6101d561077a565b6040518082815260200191505060405180910390f35b6102376004803603604081101561020157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610822565b6040518082815260200191505060405180910390f35b61028f6004803603602081101561026357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109cc565b60405180858152602001848152602001838152602001821515815260200194505050505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a09565b005b6103426004803603602081101561031657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c31565b005b61034c610e4f565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6103a36004803603602081101561038d57600080fd5b8101908080359060200190929190505050610e6d565b005b6103f3600480360360408110156103bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611045565b6040518082815260200191505060405180910390f35b6104116112e0565b6040518082815260200191505060405180910390f35b61048b6004803603608081101561043d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035151590602001909291908035151590602001909291905050506112fe565b6040518082815260200191505060405180910390f35b6104a961165b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104dd61167f565b6040518082815260200191505060405180910390f35b61053f6004803603604081101561050957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ad4565b6040518082815260200191505060405180910390f35b61055d611c80565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610591611ca6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610621600480360360808110156105d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803515159060200190929190505050611ccc565b6040518082815260200191505060405180910390f35b61063f6120e2565b6040518082815260200191505060405180910390f35b61065d6120e8565b6040518082815260200191505060405180910390f35b61067b61225e565b005b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637965d56d6009546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561073a57600080fd5b505afa15801561074e573d6000803e3d6000fd5b505050506040513d602081101561076457600080fd5b8101908080519060200190929190505050905090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632986c0e56040518163ffffffff1660e01b815260040160206040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d602081101561080c57600080fd5b8101908080519060200190929190505050905090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156108b557600080fd5b505af11580156108c9573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8248768836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d602081101561096857600080fd5b810190808051906020019092919050505090506109c683827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b92915050565b60076020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614600090610b9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610b905780601f10610b6557610100808354040283529160200191610b90565b820191906000526020600020905b815481529060010190602001808311610b7357829003601f168201915b50509250505060405180910390fd5b5080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f86719c518c7d99ac94b3d405d462ea876ba5cd0a978461dc9a7c9862a948588681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d6020811015610cc357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614600090610dc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610db85780601f10610d8d57610100808354040283529160200191610db8565b820191906000526020600020905b815481529060010190602001808311610d9b57829003601f168201915b50509250505060405180910390fd5b5080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad60405160405180910390a250565b60028060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed557600080fd5b505afa158015610ee9573d6000803e3d6000fd5b505050506040513d6020811015610eff57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614600090611003576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610ff45780601f10610fc957610100808354040283529160200191610ff4565b820191906000526020600020905b815481529060010190602001808311610fd757829003601f168201915b50509250505060405180910390fd5b50806008819055507fac17d51c35ac71d3eddc155985908430e88946d51e2f6093e93c1c0aba08f6c4816040518082815260200191505060405180910390a150565b600061104f612b24565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff16151515158152505090508060600151611162573373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b776026913960400191505060405180910390fd5b5b80604001516002600101541015801561118057506000816040015114155b156112d457600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff0219169055505061120c816020015160095461250c90919063ffffffff16565b6009819055506112cc847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637965d56d84602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561128b57600080fd5b505afa15801561129f573d6000803e3d6000fd5b505050506040513d60208110156112b557600080fd5b810190808051906020019092919050505085612556565b9150506112da565b60009150505b92915050565b60006112f942600280015461250c90919063ffffffff16565b905090565b6000839050600083156113165761131361167f565b90505b8215611383576113693330877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166127bb909392919063ffffffff16565b61137c81836129dc90919063ffffffff16565b91506114ed565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561141457600080fd5b505af1158015611428573d6000803e3d6000fd5b505050506114ea817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8248768856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114a157600080fd5b505afa1580156114b5573d6000803e3d6000fd5b505050506040513d60208110156114cb57600080fd5b81019080805190602001909291905050506129dc90919063ffffffff16565b91505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561157457600080fd5b505afa158015611588573d6000803e3d6000fd5b505050506040513d602081101561159e57600080fd5b8101908080519060200190929190505050821115611607576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b9d6024913960400191505060405180910390fd5b61165286837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b50949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008042600280015411611acd577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663058ecdb46002600301546002600101546040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b15801561171257600080fd5b505af1158015611726573d6000803e3d6000fd5b505050506040513d602081101561173c57600080fd5b81019080805190602001909291905050505061176a60026000015460028001546129dc90919063ffffffff16565b6002800181905550600260010160008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190757600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4fc6b6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561184757600080fd5b505af115801561185b573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e7187e8a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156118c957600080fd5b505af11580156118dd573d6000803e3d6000fd5b505050506040513d60208110156118f357600080fd5b810190808051906020019092919050505090505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561199057600080fd5b505afa1580156119a4573d6000803e3d6000fd5b505050506040513d60208110156119ba57600080fd5b8101908080519060200190929190505050905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639358928b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a3557600080fd5b505afa158015611a49573d6000803e3d6000fd5b505050506040513d6020811015611a5f57600080fd5b81019080805190602001909291905050509050611a8583826129dc90919063ffffffff16565b8211611a9b576000600260030181905550611aca565b611ac083611ab2838561250c90919063ffffffff16565b61250c90919063ffffffff16565b6002600301819055505b50505b8091505090565b6000611b233330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166127bb909392919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166366a5236c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b9457600080fd5b505afa158015611ba8573d6000803e3d6000fd5b505050506040513d6020811015611bbe57600080fd5b810190808051906020019092919050505090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1984836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611c6257600080fd5b505af1158015611c76573d6000803e3d6000fd5b5050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d1b3330867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166127bb909392919063ffffffff16565b611d35611d2661167f565b856129dc90919063ffffffff16565b9350818015611d4657506000600854145b15611d5d57611d56858585612556565b90506120da565b611d65612b24565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff16151515158152505090508060600151611e78573373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b4f6028913960400191505060405180910390fd5b5b6040518060800160405280611e9a8784600001516129dc90919063ffffffff16565b8152602001611f617f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631bd39674896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611f1357600080fd5b505afa158015611f27573d6000803e3d6000fd5b505050506040513d6020811015611f3d57600080fd5b810190808051906020019092919050505084602001516129dc90919063ffffffff16565b8152602001611f806008546002600101546129dc90919063ffffffff16565b815260200182606001511515815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050506120cf7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631bd39674876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208357600080fd5b505afa158015612097573d6000803e3d6000fd5b505050506040513d60208110156120ad57600080fd5b81019080805190602001909291905050506009546129dc90919063ffffffff16565b600981905550849150505b949350505050565b60085481565b60006120f2612b24565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1615151515815250509050600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff021916905550506121fe816020015160095461250c90919063ffffffff16565b6009819055506122533382600001517f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b806000015191505090565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1615600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548160ff021916908315150217905550565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8585604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106123ec57805182526020820191506020810190506020830392506123c9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461244e576040519150601f19603f3d011682016040523d82523d6000602084013e612453565b606091505b50915091508180156124935750600081511480612492575080806020019051602081101561248057600080fd5b81019080805190602001909291905050505b5b612505576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5452414e534645525f4641494c4544000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050565b600061254e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a64565b905092915050565b600081156125b1576125a984847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b8290506127b4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f19857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166366a5236c876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561265f57600080fd5b505afa158015612673573d6000803e3d6000fd5b505050506040513d602081101561268957600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156126ed57600080fd5b505af1158015612701573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166366a5236c846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561277657600080fd5b505afa15801561278a573d6000803e3d6000fd5b505050506040513d60208110156127a057600080fd5b810190808051906020019092919050505090505b9392505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b868686604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106128bb5780518252602082019150602081019050602083039250612898565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461291d576040519150601f19603f3d011682016040523d82523d6000602084013e612922565b606091505b50915091508180156129625750600081511480612961575080806020019051602081101561294f57600080fd5b81019080805190602001909291905050505b5b6129d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5452414e534645525f46524f4d5f4641494c454400000000000000000000000081525060200191505060405180910390fd5b505050505050565b600080828401905083811015612a5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290612b11576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ad6578082015181840152602081019050612abb565b50505050905090810190601f168015612b035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6040518060800160405280600081526020016000815260200160008152602001600015158152509056fe45787465726e616c206465706f7369747320666f72206163636f756e7420617265206c6f636b656445787465726e616c20636c61696d7320666f72206163636f756e7420617265206c6f636b6564496e73756666696369656e74204f484d2062616c616e636520696e20636f6e7472616374a2646970667358221220939fb5d2fc16bb2d83af9e08025d8b6c177278433ef1affba457ac759d925bf164736f6c6343000705003300000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d500000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd4600000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000003010000000000000000000000000000000000000000000000000000000061b8f7c00000000000000000000000001c21f8ea7e39e2ba00bc12d2968d63f4acb38b7a

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80639483c1d7116100b8578063bf7e214f1161007c578063bf7e214f14610555578063bfe1092814610589578063d866c9d8146105bd578063deac361a14610637578063f3d86e4a14610655578063ff9413d81461067357610142565b80639483c1d714610409578063990966d514610427578063a6c41fec146104a1578063af14052c146104d5578063bf376c7a146104f357610142565b80636746f4c21161010a5780636746f4c21461024d57806375619ab5146102bc5780637a9e5e4b14610300578063900cf0cf146103445780639238d5921461037757806392fd2daf146103a557610142565b80630cd3058514610147578063150799251461017b57806320138641146101af5780632986c0e5146101cd57806339f47693146101eb575b600080fd5b61014f61067d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101836106a1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b76106c5565b6040518082815260200191505060405180910390f35b6101d561077a565b6040518082815260200191505060405180910390f35b6102376004803603604081101561020157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610822565b6040518082815260200191505060405180910390f35b61028f6004803603602081101561026357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109cc565b60405180858152602001848152602001838152602001821515815260200194505050505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a09565b005b6103426004803603602081101561031657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c31565b005b61034c610e4f565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6103a36004803603602081101561038d57600080fd5b8101908080359060200190929190505050610e6d565b005b6103f3600480360360408110156103bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611045565b6040518082815260200191505060405180910390f35b6104116112e0565b6040518082815260200191505060405180910390f35b61048b6004803603608081101561043d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035151590602001909291908035151590602001909291905050506112fe565b6040518082815260200191505060405180910390f35b6104a961165b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104dd61167f565b6040518082815260200191505060405180910390f35b61053f6004803603604081101561050957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ad4565b6040518082815260200191505060405180910390f35b61055d611c80565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610591611ca6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610621600480360360808110156105d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803515159060200190929190505050611ccc565b6040518082815260200191505060405180910390f35b61063f6120e2565b6040518082815260200191505060405180910390f35b61065d6120e8565b6040518082815260200191505060405180910390f35b61067b61225e565b005b7f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f81565b7f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46081565b60007f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff16637965d56d6009546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561073a57600080fd5b505afa15801561074e573d6000803e3d6000fd5b505050506040513d602081101561076457600080fd5b8101908080519060200190929190505050905090565b60007f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff16632986c0e56040518163ffffffff1660e01b815260040160206040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d602081101561080c57600080fd5b8101908080519060200190929190505050905090565b60007f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156108b557600080fd5b505af11580156108c9573d6000803e3d6000fd5b505050507f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff1663a8248768836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d602081101561096857600080fd5b810190808051906020019092919050505090506109c683827f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b92915050565b60076020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614600090610b9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610b905780601f10610b6557610100808354040283529160200191610b90565b820191906000526020600020905b815481529060010190602001808311610b7357829003601f168201915b50509250505060405180910390fd5b5080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f86719c518c7d99ac94b3d405d462ea876ba5cd0a978461dc9a7c9862a948588681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d6020811015610cc357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614600090610dc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610db85780601f10610d8d57610100808354040283529160200191610db8565b820191906000526020600020905b815481529060010190602001808311610d9b57829003601f168201915b50509250505060405180910390fd5b5080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad60405160405180910390a250565b60028060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed557600080fd5b505afa158015610ee9573d6000803e3d6000fd5b505050506040513d6020811015610eff57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614600090611003576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610ff45780601f10610fc957610100808354040283529160200191610ff4565b820191906000526020600020905b815481529060010190602001808311610fd757829003601f168201915b50509250505060405180910390fd5b50806008819055507fac17d51c35ac71d3eddc155985908430e88946d51e2f6093e93c1c0aba08f6c4816040518082815260200191505060405180910390a150565b600061104f612b24565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff16151515158152505090508060600151611162573373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b776026913960400191505060405180910390fd5b5b80604001516002600101541015801561118057506000816040015114155b156112d457600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff0219169055505061120c816020015160095461250c90919063ffffffff16565b6009819055506112cc847f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff16637965d56d84602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561128b57600080fd5b505afa15801561129f573d6000803e3d6000fd5b505050506040513d60208110156112b557600080fd5b810190808051906020019092919050505085612556565b9150506112da565b60009150505b92915050565b60006112f942600280015461250c90919063ffffffff16565b905090565b6000839050600083156113165761131361167f565b90505b8215611383576113693330877f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff166127bb909392919063ffffffff16565b61137c81836129dc90919063ffffffff16565b91506114ed565b7f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561141457600080fd5b505af1158015611428573d6000803e3d6000fd5b505050506114ea817f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff1663a8248768856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114a157600080fd5b505afa1580156114b5573d6000803e3d6000fd5b505050506040513d60208110156114cb57600080fd5b81019080805190602001909291905050506129dc90919063ffffffff16565b91505b7f00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561157457600080fd5b505afa158015611588573d6000803e3d6000fd5b505050506040513d602081101561159e57600080fd5b8101908080519060200190929190505050821115611607576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b9d6024913960400191505060405180910390fd5b61165286837f00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d573ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b50949350505050565b7f00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d581565b60008042600280015411611acd577f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff1663058ecdb46002600301546002600101546040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b15801561171257600080fd5b505af1158015611726573d6000803e3d6000fd5b505050506040513d602081101561173c57600080fd5b81019080805190602001909291905050505061176a60026000015460028001546129dc90919063ffffffff16565b6002800181905550600260010160008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190757600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4fc6b6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561184757600080fd5b505af115801561185b573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e7187e8a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156118c957600080fd5b505af11580156118dd573d6000803e3d6000fd5b505050506040513d60208110156118f357600080fd5b810190808051906020019092919050505090505b60007f00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561199057600080fd5b505afa1580156119a4573d6000803e3d6000fd5b505050506040513d60208110156119ba57600080fd5b8101908080519060200190929190505050905060007f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff16639358928b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a3557600080fd5b505afa158015611a49573d6000803e3d6000fd5b505050506040513d6020811015611a5f57600080fd5b81019080805190602001909291905050509050611a8583826129dc90919063ffffffff16565b8211611a9b576000600260030181905550611aca565b611ac083611ab2838561250c90919063ffffffff16565b61250c90919063ffffffff16565b6002600301819055505b50505b8091505090565b6000611b233330847f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff166127bb909392919063ffffffff16565b7f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff166366a5236c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b9457600080fd5b505afa158015611ba8573d6000803e3d6000fd5b505050506040513d6020811015611bbe57600080fd5b810190808051906020019092919050505090507f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff166340c10f1984836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611c6257600080fd5b505af1158015611c76573d6000803e3d6000fd5b5050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d1b3330867f00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d573ffffffffffffffffffffffffffffffffffffffff166127bb909392919063ffffffff16565b611d35611d2661167f565b856129dc90919063ffffffff16565b9350818015611d4657506000600854145b15611d5d57611d56858585612556565b90506120da565b611d65612b24565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff16151515158152505090508060600151611e78573373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b4f6028913960400191505060405180910390fd5b5b6040518060800160405280611e9a8784600001516129dc90919063ffffffff16565b8152602001611f617f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff16631bd39674896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611f1357600080fd5b505afa158015611f27573d6000803e3d6000fd5b505050506040513d6020811015611f3d57600080fd5b810190808051906020019092919050505084602001516129dc90919063ffffffff16565b8152602001611f806008546002600101546129dc90919063ffffffff16565b815260200182606001511515815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050506120cf7f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff16631bd39674876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208357600080fd5b505afa158015612097573d6000803e3d6000fd5b505050506040513d60208110156120ad57600080fd5b81019080805190602001909291905050506009546129dc90919063ffffffff16565b600981905550849150505b949350505050565b60085481565b60006120f2612b24565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1615151515815250509050600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff021916905550506121fe816020015160095461250c90919063ffffffff16565b6009819055506122533382600001517f00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d573ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b806000015191505090565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1615600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548160ff021916908315150217905550565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8585604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106123ec57805182526020820191506020810190506020830392506123c9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461244e576040519150601f19603f3d011682016040523d82523d6000602084013e612453565b606091505b50915091508180156124935750600081511480612492575080806020019051602081101561248057600080fd5b81019080805190602001909291905050505b5b612505576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5452414e534645525f4641494c4544000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050565b600061254e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a64565b905092915050565b600081156125b1576125a984847f00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd46073ffffffffffffffffffffffffffffffffffffffff1661230a9092919063ffffffff16565b8290506127b4565b7f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff166340c10f19857f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff166366a5236c876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561265f57600080fd5b505afa158015612673573d6000803e3d6000fd5b505050506040513d602081101561268957600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156126ed57600080fd5b505af1158015612701573d6000803e3d6000fd5b505050507f0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f73ffffffffffffffffffffffffffffffffffffffff166366a5236c846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561277657600080fd5b505afa15801561278a573d6000803e3d6000fd5b505050506040513d60208110156127a057600080fd5b810190808051906020019092919050505090505b9392505050565b600060608573ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b868686604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106128bb5780518252602082019150602081019050602083039250612898565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461291d576040519150601f19603f3d011682016040523d82523d6000602084013e612922565b606091505b50915091508180156129625750600081511480612961575080806020019051602081101561294f57600080fd5b81019080805190602001909291905050505b5b6129d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5452414e534645525f46524f4d5f4641494c454400000000000000000000000081525060200191505060405180910390fd5b505050505050565b600080828401905083811015612a5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290612b11576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ad6578082015181840152602081019050612abb565b50505050905090810190601f168015612b035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6040518060800160405280600081526020016000815260200160008152602001600015158152509056fe45787465726e616c206465706f7369747320666f72206163636f756e7420617265206c6f636b656445787465726e616c20636c61696d7320666f72206163636f756e7420617265206c6f636b6564496e73756666696369656e74204f484d2062616c616e636520696e20636f6e7472616374a2646970667358221220939fb5d2fc16bb2d83af9e08025d8b6c177278433ef1affba457ac759d925bf164736f6c63430007050033

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

00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d500000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd4600000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000003010000000000000000000000000000000000000000000000000000000061b8f7c00000000000000000000000001c21f8ea7e39e2ba00bc12d2968d63f4acb38b7a

-----Decoded View---------------
Arg [0] : _ohm (address): 0x64aa3364F17a4D01c6f1751Fd97C2BD3D7e7f1D5
Arg [1] : _sOHM (address): 0x04906695D6D12CF5459975d7C3C03356E4Ccd460
Arg [2] : _gOHM (address): 0x0ab87046fBb341D058F17CBC4c1133F25a20a52f
Arg [3] : _epochLength (uint256): 28800
Arg [4] : _firstEpochNumber (uint256): 769
Arg [5] : _firstEpochTime (uint256): 1639512000
Arg [6] : _authority (address): 0x1c21F8EA7e39E2BA00BC12d2968D63F4acb38b7A

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 00000000000000000000000064aa3364f17a4d01c6f1751fd97c2bd3d7e7f1d5
Arg [1] : 00000000000000000000000004906695d6d12cf5459975d7c3c03356e4ccd460
Arg [2] : 0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f
Arg [3] : 0000000000000000000000000000000000000000000000000000000000007080
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000301
Arg [5] : 0000000000000000000000000000000000000000000000000000000061b8f7c0
Arg [6] : 0000000000000000000000001c21f8ea7e39e2ba00bc12d2968d63f4acb38b7a


Deployed Bytecode Sourcemap

10610:9027:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11555:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11521;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18710:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18560:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16577:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11658:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19196:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2303:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11591:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19477:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13877:515;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18903:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15217:783;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11487:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16896:842;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16169:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1491:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11618:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12748:982;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11708:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14486:289;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14903:108;;;:::i;:::-;;11555:27;;;:::o;11521:::-;;;:::o;18710:115::-;18757:7;18784:4;:19;;;18804:12;;18784:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18777:40;;18710:115;:::o;18560:85::-;18598:7;18625:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18618:19;;18560:85;:::o;16577:224::-;16641:17;16671:4;:9;;;16681:10;16693:7;16671:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16724:4;:16;;;16741:7;16724:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16712:37;;16760:33;16778:3;16783:9;16760:4;:17;;;;:33;;;;;:::i;:::-;16577:224;;;;:::o;11658:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19196:171::-;1830:9;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:34;;:10;:34;;;1852:12;1808:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19302:12:::1;19275:11;;:40;;;;;;;;;;;;;;;;;;19331:28;19346:12;19331:28;;;;;;;;;;;;;;;;;;;;19196:171:::0;:::o;2303:168::-;1830:9;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:34;;:10;:34;;;1852:12;1808:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2403:13:::1;2391:9;;:25;;;;;;;;;;;;;;;;;;2449:13;2432:31;;;;;;;;;;;;2303:168:::0;:::o;11591:18::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;19477:157::-;1830:9;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:34;;:10;:34;;;1852:12;1808:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19573:13:::1;19558:12;:28;;;;19602:24;19612:13;19602:24;;;;;;;;;;;;;;;;;;19477:157:::0;:::o;13877:515::-;13937:7;13957:17;;:::i;:::-;13977:10;:15;13988:3;13977:15;;;;;;;;;;;;;;;13957:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14010:4;:9;;;14005:111;;14051:10;14044:17;;:3;:17;;;14036:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14005:111;14148:4;:11;;;14132:5;:12;;;:27;;:47;;;;;14178:1;14163:4;:11;;;:16;;14132:47;14128:238;;;14203:10;:15;14214:3;14203:15;;;;;;;;;;;;;;;;14196:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14250:27;14267:4;:9;;;14250:12;;:16;;:27;;;;:::i;:::-;14235:12;:42;;;;14301:53;14307:3;14312:4;:19;;;14332:4;:9;;;14312:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14344:9;14301:5;:53::i;:::-;14294:60;;;;;14128:238;14383:1;14376:8;;;13877:515;;;;;:::o;18903:118::-;18956:7;18983:30;18997:15;18983:5;:9;;;:13;;:30;;;;:::i;:::-;18976:37;;18903:118;:::o;15217:783::-;15356:15;15394:7;15384:17;;15412:14;15441:8;15437:58;;;15475:8;:6;:8::i;:::-;15466:17;;15437:58;15509:9;15505:346;;;15535:57;15557:10;15577:4;15584:7;15535:4;:21;;;;:57;;;;;;:::i;:::-;15617:19;15629:6;15617:7;:11;;:19;;;;:::i;:::-;15607:29;;15505:346;;;15669:4;:9;;;15679:10;15691:7;15669:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15758:37;15788:6;15758:4;:16;;;15775:7;15758:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;15748:47;;15505:346;15882:3;:13;;;15904:4;15882:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15871:7;:39;;15863:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15962:30;15979:3;15984:7;15962:3;:16;;;;:30;;;;;:::i;:::-;15217:783;;;;;;;:::o;11487:27::-;;;:::o;16896:842::-;16930:7;16950:14;16992:15;16979:5;:9;;;:28;16975:732;;17024:4;:11;;;17036:5;:16;;;17054:5;:12;;;17024:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17096:27;17110:5;:12;;;17096:5;:9;;;:13;;:27;;;;:::i;:::-;17084:5;:9;;:39;;;;17138:5;:12;;;:14;;;;;;;;;;;;;17205:1;17173:34;;17181:11;;;;;;;;;;;17173:34;;;17169:215;;17228:11;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17280:11;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17271:37;;17169:215;17398:15;17416:3;:13;;;17438:4;17416:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:46;;17459:14;17476:4;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17459:41;;17530:18;17541:6;17530;:10;;:18;;;;:::i;:::-;17519:7;:29;17515:181;;17588:1;17569:5;:16;;:20;;;;17515:181;;;17649:31;17673:6;17649:19;17661:6;17649:7;:11;;:19;;;;:::i;:::-;:23;;:31;;;;:::i;:::-;17630:5;:16;;:50;;;;17515:181;16975:732;;;17724:6;17717:13;;;16896:842;:::o;16169:239::-;16231:17;16261:57;16283:10;16303:4;16310:7;16261:4;:21;;;;:57;;;;;;:::i;:::-;16341:4;:14;;;16356:7;16341:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16329:35;;16375:4;:9;;;16385:3;16390:9;16375:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16169:239;;;;:::o;1491:34::-;;;;;;;;;;;;;:::o;11618:31::-;;;;;;;;;;;;;:::o;12748:982::-;12883:7;12903:56;12924:10;12944:4;12951:7;12903:3;:20;;;;:56;;;;;;:::i;:::-;12980:21;12992:8;:6;:8::i;:::-;12980:7;:11;;:21;;;;:::i;:::-;12970:31;;13049:6;:27;;;;;13075:1;13059:12;;:17;13049:27;13045:678;;;13100:30;13106:3;13111:7;13120:9;13100:5;:30::i;:::-;13093:37;;;;13045:678;13163:17;;:::i;:::-;13183:10;:15;13194:3;13183:15;;;;;;;;;;;;;;;13163:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13218:4;:9;;;13213:121;;13263:10;13256:17;;:3;:17;;;13248:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13213:121;13368:234;;;;;;;;13402:25;13419:7;13402:4;:12;;;:16;;:25;;;;:::i;:::-;13368:234;;;;13452:43;13466:4;:19;;;13486:7;13466:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13452:4;:9;;;:13;;:43;;;;:::i;:::-;13368:234;;;;13522:30;13539:12;;13522:5;:12;;;:16;;:30;;;;:::i;:::-;13368:234;;;;13577:4;:9;;;13368:234;;;;;13350:10;:15;13361:3;13350:15;;;;;;;;;;;;;;;:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13634:46;13651:4;:19;;;13671:7;13651:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13634:12;;:16;;:46;;;;:::i;:::-;13619:12;:61;;;;13704:7;13697:14;;;12748:982;;;;;;;:::o;11708:27::-;;;;:::o;14486:289::-;14523:7;14543:17;;:::i;:::-;14563:10;:22;14574:10;14563:22;;;;;;;;;;;;;;;14543:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14603:10;:22;14614:10;14603:22;;;;;;;;;;;;;;;;14596:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14653:27;14670:4;:9;;;14653:12;;:16;;:27;;;;:::i;:::-;14638:12;:42;;;;14693;14710:10;14722:4;:12;;;14693:3;:16;;;;:42;;;;;:::i;:::-;14755:4;:12;;;14748:19;;;14486:289;:::o;14903:108::-;14976:10;:22;14987:10;14976:22;;;;;;;;;;;;;;;:27;;;;;;;;;;;;14975:28;14945:10;:22;14956:10;14945:22;;;;;;;;;;;;;;;:27;;;:58;;;;;;;;;;;;;;;;;;14903:108::o;7842:365::-;7961:12;7975:17;8004:5;7996:19;;8053:24;;;8079:2;8083:6;8030:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7960:141;;;;8122:7;:57;;;;;8149:1;8134:4;:11;:16;:44;;;;8165:4;8154:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8134:44;8122:57;8114:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7842:365;;;;;:::o;9130:136::-;9188:7;9215:43;9219:1;9222;9215:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;9208:50;;9130:136;;;;:::o;17960:436::-;18073:7;18097:9;18093:296;;;18123:31;18141:3;18146:7;18123:4;:17;;;;:31;;;;;:::i;:::-;18212:7;18205:14;;;;18093:296;18252:4;:9;;;18262:3;18267:4;:14;;;18282:7;18267:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18354:4;:14;;;18369:7;18354:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18347:30;;17960:436;;;;;;:::o;7427:407::-;7573:12;7587:17;7616:5;7608:19;;7665:28;;;7695:4;7701:2;7705:6;7642:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7608:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7572:151;;;;7744:7;:57;;;;;7771:1;7756:4;:11;:16;:44;;;;7787:4;7776:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7756:44;7744:57;7736:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7427:407;;;;;;:::o;8941:181::-;8999:7;9019:9;9035:1;9031;:5;9019:17;;9060:1;9055;:6;;9047:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9113:1;9106:8;;;8941:181;;;;:::o;9274:192::-;9360:7;9393:1;9388;:6;;9396:12;9380:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9420:9;9436:1;9432;:5;9420:17;;9457:1;9450:8;;;9274:192;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://939fb5d2fc16bb2d83af9e08025d8b6c177278433ef1affba457ac759d925bf1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0xB63cac384247597756545b500253ff8E607a8020
Loading...
Loading
[ Download: CSV Export  ]
[ 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.