ETH Price: $3,361.21 (-1.62%)
Gas: 6 Gwei

Contract

0xB63cac384247597756545b500253ff8E607a8020
 
Transaction Hash
Method
Block
From
To
Value
Unstake201767672024-06-26 15:29:353 hrs ago1719415775IN
0xB63cac38...E607a8020
0 ETH0.0011003912.7712268
Wrap201767472024-06-26 15:25:353 hrs ago1719415535IN
0xB63cac38...E607a8020
0 ETH0.0015632815.948659
Wrap201762802024-06-26 13:51:474 hrs ago1719409907IN
0xB63cac38...E607a8020
0 ETH0.000235716.08064663
Wrap201762802024-06-26 13:51:474 hrs ago1719409907IN
0xB63cac38...E607a8020
0 ETH0.000595956.08064663
Wrap201758012024-06-26 12:15:356 hrs ago1719404135IN
0xB63cac38...E607a8020
0 ETH0.000719457.34078697
Wrap201723862024-06-26 0:49:3517 hrs ago1719362975IN
0xB63cac38...E607a8020
0 ETH0.00026122.66517822
Unstake201712712024-06-25 21:06:1121 hrs ago1719349571IN
0xB63cac38...E607a8020
0 ETH0.000343033.98124805
Unstake201712682024-06-25 21:05:3521 hrs ago1719349535IN
0xB63cac38...E607a8020
0 ETH0.000397584.61502875
Unstake201711682024-06-25 20:45:3521 hrs ago1719348335IN
0xB63cac38...E607a8020
0 ETH0.000412285.97079248
Unstake201705602024-06-25 18:42:4724 hrs ago1719340967IN
0xB63cac38...E607a8020
0 ETH0.000656527.61970148
Wrap201701072024-06-25 17:11:4725 hrs ago1719335507IN
0xB63cac38...E607a8020
0 ETH0.001167937
Unstake201700902024-06-25 17:08:2325 hrs ago1719335303IN
0xB63cac38...E607a8020
0 ETH0.000637529.23123176
Wrap201682992024-06-25 11:08:2331 hrs ago1719313703IN
0xB63cac38...E607a8020
0 ETH0.000365893.73329384
Unstake201678532024-06-25 9:38:3533 hrs ago1719308315IN
0xB63cac38...E607a8020
0 ETH0.000367044.2593173
Wrap201637652024-06-24 19:55:3546 hrs ago1719258935IN
0xB63cac38...E607a8020
0 ETH0.000690327.04270784
Wrap201591172024-06-24 4:20:232 days ago1719202823IN
0xB63cac38...E607a8020
0 ETH0.000257382.62581119
Unstake201591092024-06-24 4:18:472 days ago1719202727IN
0xB63cac38...E607a8020
0 ETH0.000447134.91626672
Unstake201584852024-06-24 2:12:112 days ago1719195131IN
0xB63cac38...E607a8020
0 ETH0.000150311.73754791
Unstake201571992024-06-23 21:54:232 days ago1719179663IN
0xB63cac38...E607a8020
0 ETH0.000138432.00456839
Stake201569892024-06-23 21:11:352 days ago1719177095IN
0xB63cac38...E607a8020
0 ETH0.000308882.9467965
Stake201559902024-06-23 17:50:113 days ago1719165011IN
0xB63cac38...E607a8020
0 ETH0.000290893.31524593
Wrap201557162024-06-23 16:55:113 days ago1719161711IN
0xB63cac38...E607a8020
0 ETH0.000413044.21389827
Unstake201555972024-06-23 16:31:233 days ago1719160283IN
0xB63cac38...E607a8020
0 ETH0.000598766.9502711
Unstake201555262024-06-23 16:16:593 days ago1719159419IN
0xB63cac38...E607a8020
0 ETH0.000501917.26633307
Wrap201555202024-06-23 16:15:473 days ago1719159347IN
0xB63cac38...E607a8020
0 ETH0.000734547.4938029
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
158011792022-10-22 4:13:11613 days ago1666411991
0xB63cac38...E607a8020
0.01209248 ETH
157213292022-10-11 0:37:23624 days ago1665448643
0xB63cac38...E607a8020
0.00219123 ETH
155754772022-09-20 15:07:11645 days ago1663686431
0xB63cac38...E607a8020
0.00346574 ETH
153965372022-08-23 12:27:33673 days ago1661257653
0xB63cac38...E607a8020
0.01550777 ETH
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

Contract Source Code (Solidity)

/**
 *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

[{"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 Transaction Difficulty 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
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.