ETH Price: $1,897.29 (-3.37%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw118487992021-02-13 14:23:271840 days ago1613226207IN
0xed06CaE6...dB674E45b
0 ETH0.0258773100.00000051
Withdraw118453982021-02-13 1:37:041841 days ago1613180224IN
0xed06CaE6...dB674E45b
0 ETH0.03519149136
Withdraw118393572021-02-12 3:23:341842 days ago1613100214IN
0xed06CaE6...dB674E45b
0 ETH0.03415803132
Withdraw118325842021-02-11 2:30:461843 days ago1613010646IN
0xed06CaE6...dB674E45b
0 ETH0.0258761100
Withdraw118222962021-02-09 12:39:321845 days ago1612874372IN
0xed06CaE6...dB674E45b
0 ETH0.0258761100
Withdraw118218432021-02-09 11:00:081845 days ago1612868408IN
0xed06CaE6...dB674E45b
0 ETH0.039213180
Deposit118212512021-02-09 8:46:311845 days ago1612860391IN
0xed06CaE6...dB674E45b
0 ETH0.04006821183
Withdraw118210282021-02-09 8:00:551845 days ago1612857655IN
0xed06CaE6...dB674E45b
0 ETH0.04140368160
Withdraw118140662021-02-08 6:07:291846 days ago1612764449IN
0xed06CaE6...dB674E45b
0 ETH0.0193875889
Withdraw118116672021-02-07 21:08:111846 days ago1612732091IN
0xed06CaE6...dB674E45b
0 ETH0.02768871107
Withdraw118106922021-02-07 17:33:311846 days ago1612719211IN
0xed06CaE6...dB674E45b
0 ETH0.00625791171
Withdraw118088642021-02-07 11:00:251847 days ago1612695625IN
0xed06CaE6...dB674E45b
0 ETH0.0258255499.8
Withdraw118080672021-02-07 7:53:241847 days ago1612684404IN
0xed06CaE6...dB674E45b
0 ETH0.0206946195
Withdraw118078922021-02-07 7:14:401847 days ago1612682080IN
0xed06CaE6...dB674E45b
0 ETH0.02645255102.223
Withdraw118042602021-02-06 18:03:231847 days ago1612634603IN
0xed06CaE6...dB674E45b
0 ETH0.02253468120
Withdraw118042382021-02-06 17:59:231847 days ago1612634363IN
0xed06CaE6...dB674E45b
0 ETH0.03105276120
Withdraw118023362021-02-06 10:53:351848 days ago1612608815IN
0xed06CaE6...dB674E45b
0 ETH0.03725985144
Withdraw118006802021-02-06 4:50:271848 days ago1612587027IN
0xed06CaE6...dB674E45b
0 ETH0.03272055126.445
Withdraw117943982021-02-05 5:38:251849 days ago1612503505IN
0xed06CaE6...dB674E45b
0 ETH0.04890809189
Withdraw117902102021-02-04 14:04:211849 days ago1612447461IN
0xed06CaE6...dB674E45b
0 ETH0.02768742107
Withdraw117830602021-02-03 11:38:201851 days ago1612352300IN
0xed06CaE6...dB674E45b
0 ETH0.03700453143
Set Reward Per B...117798732021-02-02 23:52:031851 days ago1612309923IN
0xed06CaE6...dB674E45b
0 ETH0.00590122108
Withdraw117465972021-01-28 20:52:161856 days ago1611867136IN
0xed06CaE6...dB674E45b
0 ETH0.0025470560.5
Withdraw117465962021-01-28 20:52:031856 days ago1611867123IN
0xed06CaE6...dB674E45b
0 ETH0.0208490878
Withdraw117366032021-01-27 8:00:261858 days ago1611734426IN
0xed06CaE6...dB674E45b
0 ETH0.0173742465
View all transactions

View more zero value Internal Transactions in Advanced View mode

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Staking

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-12-22
*/

/*

website: volts.finance

  ______   __                               
 /      \ /  |                              
/$$$$$$  |$$ |____   _____  ____    _______ 
$$ |  $$ |$$      \ /     \/    \  /       |
$$ |  $$ |$$$$$$$  |$$$$$$ $$$$  |/$$$$$$$/ 
$$ |  $$ |$$ |  $$ |$$ | $$ | $$ |$$      \ 
$$ \__$$ |$$ |  $$ |$$ | $$ | $$ | $$$$$$  |
$$    $$/ $$ |  $$ |$$ | $$ | $$ |/     $$/ 
 $$$$$$/  $$/   $$/ $$/  $$/  $$/ $$$$$$$/  


OHMS staking contract of the Volts-Ecosystem

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.2;

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface OHMS {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) external view returns(uint256);
    function tokenFromReflection(uint256 rAmount) external view returns(uint256);
}

contract Staking is Ownable {

    struct User {
        uint256 reflectionBalance;
        uint256 paidReflection;
        uint256 ohmsBalance;
    }

    address[] private userArray;

    using SafeMath for uint256;

    mapping (address => User) public users;

    uint256 public reflectionTillNowPerToken = 0;
    uint256 public lastUpdatedBlock;
    uint256 public rewardPerBlock;
    uint256 public scale = 1e18;

    // init with 1 instead of 0 to avoid division by zero
    uint256 public totalStakedReflection = 1;
    uint256 public totalRewardReflection = 0;
    uint256 public totalStakedToken = 1;
    uint256 public totalOhmsReward = 0;
    
    OHMS public ohms;

    event Deposit(address user, uint256 amount);
    event Restake(address user, uint256 amount);
    event Withdraw(address user, uint256 amount);
    event EmergencyWithdraw(address user, uint256 amount);
    event RewardClaimed(address user, uint256 amount);
    event RewardPerBlockChanged(uint256 oldValue, uint256 newValue);

    constructor (address _ohms, uint256 _rewardPerBlock) public {
        ohms = OHMS(_ohms);
        rewardPerBlock = _rewardPerBlock;
        lastUpdatedBlock = block.number;
    }

    // Sets the rewards in OHMS per block
    function setRewardPerBlock(uint256 _rewardPerBlock) public onlyOwner {
        update();
        emit RewardPerBlockChanged(rewardPerBlock, _rewardPerBlock);
        rewardPerBlock = _rewardPerBlock;
    }

    // Returns the amount of OHMS rewarded to stakers per block
    function getRewardPerBlock() external view returns (uint256){
        return rewardPerBlock;
    }

    // View function to see user's true OHMS balance including fees
    function getUserDepositAmount(address _user) public view returns (uint256){
        User storage user = users [_user];
        return ohms.tokenFromReflection(user.reflectionBalance);
    }

    // View function to see a user's staked OHMS balance. i.e number of OHMS belonging to them in the contract that are currently earning rewards
    function getActiveUserDepositAmount(address _user) public view returns (uint256){
        User storage user = users [_user];
        return user.ohmsBalance;
    }

    function getClaimableFees(address _user) external view returns (uint256){
        uint256 total = getUserDepositAmount(_user);
        uint256 staked = getActiveUserDepositAmount(_user);
        return total.sub(staked);
    }

    // View function to return the total number of OHMS staked in the contract that are currently earning rewards
    function getActiveTotalStaked() external view returns (uint256){
        return totalStakedToken;
    }

    //  View function to see true amount of OHMS staked in the contract in including fees
    function getTotalStaked() external view returns (uint256){
        return ohms.tokenFromReflection(totalStakedReflection);
    }

    // View function to get the amount staked in the contract in reflections.
    function getTotalStakedReflection() external view returns (uint256){
        return totalStakedReflection;
    }

    // View function to get the remaining reward balance in the contract in OHMS.
    function getTotalRemainingReward() external view returns (uint256){
        return ohms.tokenFromReflection(totalRewardReflection);
    }

    // View function to get the remaining reward balance in the contract in reflections.
    function getTotalRewardReflection() external view returns (uint256){
        return totalRewardReflection;
    }


    // Update reward variables of the pool to be up-to-date.
    function update() public {
        if (block.number <= lastUpdatedBlock) {
            return;
        }
        uint256 rewardAmount = (block.number - lastUpdatedBlock).mul(rewardPerBlock);
        totalOhmsReward = totalOhmsReward.add(rewardAmount);
        uint256 reflectionRewardAmount = ohms.reflectionFromToken(rewardAmount, false).div(1000);

        reflectionTillNowPerToken = reflectionTillNowPerToken.add(reflectionRewardAmount.div(totalStakedToken));
        lastUpdatedBlock = block.number;
    }
 
    // View function to see pending reward on frontend.
    function pendingReward(address _user) external view returns (uint256) {
        User storage user = users[_user];
        uint256 accReflectionPerToken = reflectionTillNowPerToken;

        if (block.number > lastUpdatedBlock) {
            uint256 rewardAmount = (block.number - lastUpdatedBlock).mul(rewardPerBlock);
            uint256 reflectionRewardAmount = (ohms.reflectionFromToken(rewardAmount, false)).div(1000);
            accReflectionPerToken = accReflectionPerToken.add(reflectionRewardAmount.div(totalStakedToken));
        }
        return ohms.tokenFromReflection((user.ohmsBalance.mul(accReflectionPerToken).sub(user.paidReflection)).mul(1000));
    }

    function deposit(uint256 amount) public {
        User storage user = users[msg.sender];
        update();
        userArray.push(address(msg.sender));

        if (user.ohmsBalance > 0) {
            uint256 _pendingReflection = (user.ohmsBalance.mul(reflectionTillNowPerToken).sub(user.paidReflection)).mul(1000);
            uint256 _ohmsReward = ohms.tokenFromReflection(_pendingReflection);
            
            if(totalRewardReflection.sub(_pendingReflection) > 0){
                if(_ohmsReward > 0){                
                    totalRewardReflection = totalRewardReflection.sub(_pendingReflection);
                    ohms.transfer(address(msg.sender), _ohmsReward);
                    emit RewardClaimed(msg.sender, _ohmsReward);
                }
            }
        }

        uint256 reflectionAmount = ohms.reflectionFromToken(amount, true);

        if(amount > 0){
            user.reflectionBalance = user.reflectionBalance.add(reflectionAmount);
            totalStakedReflection = totalStakedReflection.add(reflectionAmount);
            ohms.transferFrom(address(msg.sender), address(this), amount);
            emit Deposit(msg.sender, amount);
        }

        activate();
        user.paidReflection = user.ohmsBalance.mul(reflectionTillNowPerToken);

    }

    function withdraw(uint256 amount) public {
        User storage user = users[msg.sender];
        require(user.reflectionBalance >= ohms.reflectionFromToken(amount, false), "withdraw amount exceeds deposited amount");
        update();

        uint256 _pendingReward = (user.ohmsBalance.mul(reflectionTillNowPerToken).sub(user.paidReflection)).mul(1000);
        uint256 _ohmsReward = ohms.tokenFromReflection(_pendingReward);

        if(totalRewardReflection > _pendingReward){
            if(_ohmsReward > 0){                
                totalRewardReflection = totalRewardReflection.sub(_pendingReward);
                ohms.transfer(address(msg.sender), _ohmsReward);
                emit RewardClaimed(msg.sender, _ohmsReward);
            }
        }

        uint256 reflectionAmount = ohms.reflectionFromToken(amount, false);

        if (amount > 0) {
            user.reflectionBalance = user.reflectionBalance.sub(reflectionAmount);
            totalStakedReflection = totalStakedReflection.sub(reflectionAmount);
            ohms.transfer(address(msg.sender), amount);
            emit Withdraw(msg.sender, amount);
        }
        
        activate();
        user.paidReflection = user.ohmsBalance.mul(reflectionTillNowPerToken);
    }

    // Withdraw without caring about rewards. EMERGENCY ONLY.
    function emergencyWithdraw() public {
        User storage user = users[msg.sender];

        totalStakedReflection = totalStakedReflection.sub(user.reflectionBalance);
        uint256 ohmsAmount = ohms.tokenFromReflection(user.reflectionBalance);
        ohms.transfer(address(msg.sender), ohmsAmount);

        emit EmergencyWithdraw(msg.sender, ohmsAmount);

        user.reflectionBalance = 0;
        user.paidReflection = 0;
        user.ohmsBalance = 0;
    }

    // Send OHMS rewards to the contract for staking
    function sendRewards(uint256 amount) public {
        ohms.transferFrom(address(msg.sender), address(this), amount);
        uint256 reflectionAmount = ohms.reflectionFromToken(amount, true);
        totalRewardReflection = totalRewardReflection.add(reflectionAmount);
    }

    function restakeRewards() public {
        User storage user = users[msg.sender];
        update();
        uint256 _pendingReward = (user.ohmsBalance.mul(reflectionTillNowPerToken).sub(user.paidReflection)).mul(1000);

        if(totalRewardReflection > _pendingReward){
            user.reflectionBalance = user.reflectionBalance.add(_pendingReward);
            totalStakedReflection = totalStakedReflection.add(_pendingReward);
            totalRewardReflection = totalRewardReflection.sub(_pendingReward);
            emit Restake(msg.sender, ohms.tokenFromReflection(_pendingReward));
        }

        activate();
        user.paidReflection = user.ohmsBalance.mul(reflectionTillNowPerToken);

    }


    function activate() public {
        User storage user = users[msg.sender];
        uint256 trueOhmsBalance = ohms.tokenFromReflection(user.reflectionBalance);
        
        if(trueOhmsBalance >= user.ohmsBalance){
            uint256 difference = trueOhmsBalance.sub(user.ohmsBalance);
            totalStakedToken = totalStakedToken.add(difference);
        }
        else {
            uint256 difference = user.ohmsBalance.sub(trueOhmsBalance);
            totalStakedToken = totalStakedToken.sub(difference);
        }  

        user.ohmsBalance = trueOhmsBalance;  
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_ohms","type":"address"},{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Restake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"RewardPerBlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"activate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActiveTotalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getActiveUserDepositAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getClaimableFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalRemainingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalRewardReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalStakedReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserDepositAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdatedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ohms","outputs":[{"internalType":"contract OHMS","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionTillNowPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restakeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"}],"name":"setRewardPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalOhmsReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"reflectionBalance","type":"uint256"},{"internalType":"uint256","name":"paidReflection","type":"uint256"},{"internalType":"uint256","name":"ohmsBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600355670de0b6b3a76400006006556001600755600060085560016009556000600a5534801561003557600080fd5b50604051611b6b380380611b6b8339818101604052604081101561005857600080fd5b508051602090910151600061006b6100e2565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b0319166001600160a01b039390931692909217909155600555436004556100e6565b3390565b611a76806100f56000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a87430ba1161010f578063db2e21bc116100a2578063f2fde38b11610071578063f2fde38b146103dc578063f40f0f5214610402578063f51e181a14610428578063f90ce5ba14610430576101e5565b8063db2e21bc146103bc578063e25403a7146103c4578063e334924a146103cc578063e9f769ba146103d4576101e5565b8063bb872b4a116100de578063bb872b4a14610369578063cb6d8ee614610386578063cd80d3501461038e578063d5ac87d0146103b4576101e5565b8063a87430ba146102e3578063ada07fa014610327578063b678ef7f14610344578063b6b55f251461034c576101e5565b806349df8d33116101875780638da5cb5b116101565780638da5cb5b146102c35780638e968a0b146102cb57806390dc682f146102d3578063a2e62045146102db576101e5565b806349df8d33146102855780636a6f66e61461028d578063715018a6146102b35780638ae39cac146102bb576101e5565b80630f15f4c0116101c35780630f15f4c014610232578063217b50ec1461023c5780632e1a7d4d146102605780633d8527ba1461027d576101e5565b806306189237146101ea5780630917e776146102045780630cec2a761461020c575b600080fd5b6101f2610438565b60408051918252519081900360200190f35b6101f261043e565b6101f26004803603602081101561022257600080fd5b50356001600160a01b03166104be565b61023a610550565b005b610244610648565b604080516001600160a01b039092168252519081900360200190f35b61023a6004803603602081101561027657600080fd5b5035610657565b61023a610a48565b6101f2610ba6565b6101f2600480360360208110156102a357600080fd5b50356001600160a01b0316610bac565b61023a610bd9565b6101f2610c8d565b610244610c93565b6101f2610ca2565b6101f2610cf1565b61023a610cf7565b610309600480360360208110156102f957600080fd5b50356001600160a01b0316610df2565b60408051938452602084019290925282820152519081900360600190f35b61023a6004803603602081101561033d57600080fd5b5035610e12565b6101f2610f2e565b61023a6004803603602081101561036257600080fd5b5035610f34565b61023a6004803603602081101561037f57600080fd5b50356112b8565b6101f261136c565b6101f2600480360360208110156103a457600080fd5b50356001600160a01b0316611372565b6101f2611391565b61023a611397565b6101f2611504565b6101f261150a565b6101f2611510565b61023a600480360360208110156103f257600080fd5b50356001600160a01b0316611516565b6101f26004803603602081101561041857600080fd5b50356001600160a01b0316611620565b6101f2611785565b6101f261178b565b60085481565b600b5460075460408051632d83811960e01b81526004810192909252516000926001600160a01b031691632d838119916024808301926020929190829003018186803b15801561048d57600080fd5b505afa1580156104a1573d6000803e3d6000fd5b505050506040513d60208110156104b757600080fd5b5051905090565b6001600160a01b038082166000908152600260209081526040808320600b5481548351632d83811960e01b81526004810191909152925194959194911692632d8381199260248082019391829003018186803b15801561051d57600080fd5b505afa158015610531573d6000803e3d6000fd5b505050506040513d602081101561054757600080fd5b50519392505050565b336000908152600260209081526040808320600b5481548351632d83811960e01b8152600481019190915292519194936001600160a01b0390911692632d8381199260248083019392829003018186803b1580156105ad57600080fd5b505afa1580156105c1573d6000803e3d6000fd5b505050506040513d60208110156105d757600080fd5b50516002830154909150811061061957600061060083600201548361179190919063ffffffff16565b60095490915061061090826117dc565b60095550610640565b600282015460009061062b9083611791565b60095490915061063b9082611791565b600955505b600290910155565b600b546001600160a01b031681565b336000908152600260209081526040808320600b548251634549b03960e01b8152600481018790526024810195909552915190936001600160a01b0390921692634549b0399260448082019391829003018186803b1580156106b857600080fd5b505afa1580156106cc573d6000803e3d6000fd5b505050506040513d60208110156106e257600080fd5b5051815410156107235760405162461bcd60e51b81526004018080602001828103825260288152602001806119d26028913960400191505060405180910390fd5b61072b610cf7565b60006107606103e861075a8460010154610754600354876002015461183690919063ffffffff16565b90611791565b90611836565b600b5460408051632d83811960e01b81526004810184905290519293506000926001600160a01b0390921691632d83811991602480820192602092909190829003018186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d60208110156107dc57600080fd5b50516008549091508210156108bd5780156108bd576008546107fe9083611791565b600855600b546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561085557600080fd5b505af1158015610869573d6000803e3d6000fd5b505050506040513d602081101561087f57600080fd5b5050604080513381526020810183905281517f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241929181900390910190a15b600b5460408051634549b03960e01b815260048101879052600060248201819052915191926001600160a01b031691634549b03991604480820192602092909190829003018186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d602081101561093c57600080fd5b505190508415610a205783546109529082611791565b84556007546109619082611791565b600755600b546040805163a9059cbb60e01b81523360048201526024810188905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156109b857600080fd5b505af11580156109cc573d6000803e3d6000fd5b505050506040513d60208110156109e257600080fd5b5050604080513381526020810187905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a15b610a28610550565b6003546002850154610a3991611836565b84600101819055505050505050565b336000908152600260205260409020610a5f610cf7565b6000610a886103e861075a8460010154610754600354876002015461183690919063ffffffff16565b9050806008541115610b81578154610aa090826117dc565b8255600754610aaf90826117dc565b600755600854610abf9082611791565b600855600b5460408051632d83811960e01b81526004810184905290517f4fe526a50bbc264f1931b4baa4bc8f2bb80e72c36bb8c57802d4a7c1bfd09e2b9233926001600160a01b0390911691632d83811991602480820192602092909190829003018186803b158015610b3257600080fd5b505afa158015610b46573d6000803e3d6000fd5b505050506040513d6020811015610b5c57600080fd5b5051604080516001600160a01b03909316835260208301919091528051918290030190a15b610b89610550565b6003546002830154610b9a91611836565b82600101819055505050565b60055490565b600080610bb8836104be565b90506000610bc584611372565b9050610bd18282611791565b949350505050565b610be161188f565b6000546001600160a01b03908116911614610c43576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60055481565b6000546001600160a01b031690565b600b5460085460408051632d83811960e01b81526004810192909252516000926001600160a01b031691632d838119916024808301926020929190829003018186803b15801561048d57600080fd5b60075490565b6004544311610d0557610df0565b6000610d20600554600454430361183690919063ffffffff16565b600a54909150610d3090826117dc565b600a55600b5460408051634549b03960e01b81526004810184905260006024820181905291519192610dc3926103e8926001600160a01b0390921691634549b039916044808301926020929190829003018186803b158015610d9157600080fd5b505afa158015610da5573d6000803e3d6000fd5b505050506040513d6020811015610dbb57600080fd5b505190611893565b9050610de6610ddd6009548361189390919063ffffffff16565b600354906117dc565b6003555050436004555b565b600260208190526000918252604090912080546001820154919092015483565b600b54604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610e6c57600080fd5b505af1158015610e80573d6000803e3d6000fd5b505050506040513d6020811015610e9657600080fd5b5050600b5460408051634549b03960e01b8152600481018490526001602482015290516000926001600160a01b031691634549b039916044808301926020929190829003018186803b158015610eeb57600080fd5b505afa158015610eff573d6000803e3d6000fd5b505050506040513d6020811015610f1557600080fd5b5051600854909150610f2790826117dc565b6008555050565b60075481565b336000908152600260205260409020610f4b610cf7565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319163317905560028101541561112b576000610fbf6103e861075a8460010154610754600354876002015461183690919063ffffffff16565b600b5460408051632d83811960e01b81526004810184905290519293506000926001600160a01b0390921691632d83811991602480820192602092909190829003018186803b15801561101157600080fd5b505afa158015611025573d6000803e3d6000fd5b505050506040513d602081101561103b57600080fd5b50516008549091506000906110509084611791565b1115611128578015611128576008546110699083611791565b600855600b546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b505050506040513d60208110156110ea57600080fd5b5050604080513381526020810183905281517f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241929181900390910190a15b50505b600b5460408051634549b03960e01b8152600481018590526001602482015290516000926001600160a01b031691634549b039916044808301926020929190829003018186803b15801561117e57600080fd5b505afa158015611192573d6000803e3d6000fd5b505050506040513d60208110156111a857600080fd5b5051905082156112925781546111be90826117dc565b82556007546111cd90826117dc565b600755600b54604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561122a57600080fd5b505af115801561123e573d6000803e3d6000fd5b505050506040513d602081101561125457600080fd5b5050604080513381526020810185905281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b61129a610550565b60035460028301546112ab91611836565b8260010181905550505050565b6112c061188f565b6000546001600160a01b03908116911614611322576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61132a610cf7565b600554604080519182526020820183905280517f79a5349732f93288abbb68e251c3dfc325bf3ee6fde7786d919155d39733e0f59281900390910190a1600555565b60095481565b6001600160a01b03166000908152600260208190526040909120015490565b60085490565b33600090815260026020526040902080546007546113b491611791565b600755600b54815460408051632d83811960e01b81526004810192909252516000926001600160a01b031691632d838119916024808301926020929190829003018186803b15801561140557600080fd5b505afa158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b5051600b546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b15801561148857600080fd5b505af115801561149c573d6000803e3d6000fd5b505050506040513d60208110156114b257600080fd5b5050604080513381526020810183905281517f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695929181900390910190a150600080825560018201819055600290910155565b60035481565b600a5481565b60095490565b61151e61188f565b6000546001600160a01b03908116911614611580576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166115c55760405162461bcd60e51b81526004018080602001828103825260268152602001806119fa6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526002602052604081206003546004544311156116e8576000611660600554600454430361183690919063ffffffff16565b600b5460408051634549b03960e01b815260048101849052600060248201819052915193945090926116c2926103e8926001600160a01b0390911691634549b03991604480820192602092909190829003018186803b158015610d9157600080fd5b90506116e36116dc6009548361189390919063ffffffff16565b84906117dc565b925050505b600b54600183015460028401546001600160a01b0390921691632d8381199161171d916103e89161075a916107549088611836565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d602081101561177b57600080fd5b5051949350505050565b60065481565b60045481565b60006117d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d5565b90505b92915050565b6000828201838110156117d3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082611845575060006117d6565b8282028284828161185257fe5b04146117d35760405162461bcd60e51b8152600401808060200182810382526021815260200180611a206021913960400191505060405180910390fd5b3390565b60006117d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061196c565b600081848411156119645760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611929578181015183820152602001611911565b50505050905090810190601f1680156119565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836119bb5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611929578181015183820152602001611911565b5060008385816119c757fe5b049594505050505056fe776974686472617720616d6f756e742065786365656473206465706f736974656420616d6f756e744f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220d8a2bc465e1253e8bb2fa2d59e741f8f3d529b910bb031af5e18a90aa581fd3264736f6c634300060c00330000000000000000000000005026b766628621af6ac315705c21a21cd52172070000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a87430ba1161010f578063db2e21bc116100a2578063f2fde38b11610071578063f2fde38b146103dc578063f40f0f5214610402578063f51e181a14610428578063f90ce5ba14610430576101e5565b8063db2e21bc146103bc578063e25403a7146103c4578063e334924a146103cc578063e9f769ba146103d4576101e5565b8063bb872b4a116100de578063bb872b4a14610369578063cb6d8ee614610386578063cd80d3501461038e578063d5ac87d0146103b4576101e5565b8063a87430ba146102e3578063ada07fa014610327578063b678ef7f14610344578063b6b55f251461034c576101e5565b806349df8d33116101875780638da5cb5b116101565780638da5cb5b146102c35780638e968a0b146102cb57806390dc682f146102d3578063a2e62045146102db576101e5565b806349df8d33146102855780636a6f66e61461028d578063715018a6146102b35780638ae39cac146102bb576101e5565b80630f15f4c0116101c35780630f15f4c014610232578063217b50ec1461023c5780632e1a7d4d146102605780633d8527ba1461027d576101e5565b806306189237146101ea5780630917e776146102045780630cec2a761461020c575b600080fd5b6101f2610438565b60408051918252519081900360200190f35b6101f261043e565b6101f26004803603602081101561022257600080fd5b50356001600160a01b03166104be565b61023a610550565b005b610244610648565b604080516001600160a01b039092168252519081900360200190f35b61023a6004803603602081101561027657600080fd5b5035610657565b61023a610a48565b6101f2610ba6565b6101f2600480360360208110156102a357600080fd5b50356001600160a01b0316610bac565b61023a610bd9565b6101f2610c8d565b610244610c93565b6101f2610ca2565b6101f2610cf1565b61023a610cf7565b610309600480360360208110156102f957600080fd5b50356001600160a01b0316610df2565b60408051938452602084019290925282820152519081900360600190f35b61023a6004803603602081101561033d57600080fd5b5035610e12565b6101f2610f2e565b61023a6004803603602081101561036257600080fd5b5035610f34565b61023a6004803603602081101561037f57600080fd5b50356112b8565b6101f261136c565b6101f2600480360360208110156103a457600080fd5b50356001600160a01b0316611372565b6101f2611391565b61023a611397565b6101f2611504565b6101f261150a565b6101f2611510565b61023a600480360360208110156103f257600080fd5b50356001600160a01b0316611516565b6101f26004803603602081101561041857600080fd5b50356001600160a01b0316611620565b6101f2611785565b6101f261178b565b60085481565b600b5460075460408051632d83811960e01b81526004810192909252516000926001600160a01b031691632d838119916024808301926020929190829003018186803b15801561048d57600080fd5b505afa1580156104a1573d6000803e3d6000fd5b505050506040513d60208110156104b757600080fd5b5051905090565b6001600160a01b038082166000908152600260209081526040808320600b5481548351632d83811960e01b81526004810191909152925194959194911692632d8381199260248082019391829003018186803b15801561051d57600080fd5b505afa158015610531573d6000803e3d6000fd5b505050506040513d602081101561054757600080fd5b50519392505050565b336000908152600260209081526040808320600b5481548351632d83811960e01b8152600481019190915292519194936001600160a01b0390911692632d8381199260248083019392829003018186803b1580156105ad57600080fd5b505afa1580156105c1573d6000803e3d6000fd5b505050506040513d60208110156105d757600080fd5b50516002830154909150811061061957600061060083600201548361179190919063ffffffff16565b60095490915061061090826117dc565b60095550610640565b600282015460009061062b9083611791565b60095490915061063b9082611791565b600955505b600290910155565b600b546001600160a01b031681565b336000908152600260209081526040808320600b548251634549b03960e01b8152600481018790526024810195909552915190936001600160a01b0390921692634549b0399260448082019391829003018186803b1580156106b857600080fd5b505afa1580156106cc573d6000803e3d6000fd5b505050506040513d60208110156106e257600080fd5b5051815410156107235760405162461bcd60e51b81526004018080602001828103825260288152602001806119d26028913960400191505060405180910390fd5b61072b610cf7565b60006107606103e861075a8460010154610754600354876002015461183690919063ffffffff16565b90611791565b90611836565b600b5460408051632d83811960e01b81526004810184905290519293506000926001600160a01b0390921691632d83811991602480820192602092909190829003018186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d60208110156107dc57600080fd5b50516008549091508210156108bd5780156108bd576008546107fe9083611791565b600855600b546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561085557600080fd5b505af1158015610869573d6000803e3d6000fd5b505050506040513d602081101561087f57600080fd5b5050604080513381526020810183905281517f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241929181900390910190a15b600b5460408051634549b03960e01b815260048101879052600060248201819052915191926001600160a01b031691634549b03991604480820192602092909190829003018186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d602081101561093c57600080fd5b505190508415610a205783546109529082611791565b84556007546109619082611791565b600755600b546040805163a9059cbb60e01b81523360048201526024810188905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156109b857600080fd5b505af11580156109cc573d6000803e3d6000fd5b505050506040513d60208110156109e257600080fd5b5050604080513381526020810187905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a15b610a28610550565b6003546002850154610a3991611836565b84600101819055505050505050565b336000908152600260205260409020610a5f610cf7565b6000610a886103e861075a8460010154610754600354876002015461183690919063ffffffff16565b9050806008541115610b81578154610aa090826117dc565b8255600754610aaf90826117dc565b600755600854610abf9082611791565b600855600b5460408051632d83811960e01b81526004810184905290517f4fe526a50bbc264f1931b4baa4bc8f2bb80e72c36bb8c57802d4a7c1bfd09e2b9233926001600160a01b0390911691632d83811991602480820192602092909190829003018186803b158015610b3257600080fd5b505afa158015610b46573d6000803e3d6000fd5b505050506040513d6020811015610b5c57600080fd5b5051604080516001600160a01b03909316835260208301919091528051918290030190a15b610b89610550565b6003546002830154610b9a91611836565b82600101819055505050565b60055490565b600080610bb8836104be565b90506000610bc584611372565b9050610bd18282611791565b949350505050565b610be161188f565b6000546001600160a01b03908116911614610c43576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60055481565b6000546001600160a01b031690565b600b5460085460408051632d83811960e01b81526004810192909252516000926001600160a01b031691632d838119916024808301926020929190829003018186803b15801561048d57600080fd5b60075490565b6004544311610d0557610df0565b6000610d20600554600454430361183690919063ffffffff16565b600a54909150610d3090826117dc565b600a55600b5460408051634549b03960e01b81526004810184905260006024820181905291519192610dc3926103e8926001600160a01b0390921691634549b039916044808301926020929190829003018186803b158015610d9157600080fd5b505afa158015610da5573d6000803e3d6000fd5b505050506040513d6020811015610dbb57600080fd5b505190611893565b9050610de6610ddd6009548361189390919063ffffffff16565b600354906117dc565b6003555050436004555b565b600260208190526000918252604090912080546001820154919092015483565b600b54604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610e6c57600080fd5b505af1158015610e80573d6000803e3d6000fd5b505050506040513d6020811015610e9657600080fd5b5050600b5460408051634549b03960e01b8152600481018490526001602482015290516000926001600160a01b031691634549b039916044808301926020929190829003018186803b158015610eeb57600080fd5b505afa158015610eff573d6000803e3d6000fd5b505050506040513d6020811015610f1557600080fd5b5051600854909150610f2790826117dc565b6008555050565b60075481565b336000908152600260205260409020610f4b610cf7565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319163317905560028101541561112b576000610fbf6103e861075a8460010154610754600354876002015461183690919063ffffffff16565b600b5460408051632d83811960e01b81526004810184905290519293506000926001600160a01b0390921691632d83811991602480820192602092909190829003018186803b15801561101157600080fd5b505afa158015611025573d6000803e3d6000fd5b505050506040513d602081101561103b57600080fd5b50516008549091506000906110509084611791565b1115611128578015611128576008546110699083611791565b600855600b546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b505050506040513d60208110156110ea57600080fd5b5050604080513381526020810183905281517f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241929181900390910190a15b50505b600b5460408051634549b03960e01b8152600481018590526001602482015290516000926001600160a01b031691634549b039916044808301926020929190829003018186803b15801561117e57600080fd5b505afa158015611192573d6000803e3d6000fd5b505050506040513d60208110156111a857600080fd5b5051905082156112925781546111be90826117dc565b82556007546111cd90826117dc565b600755600b54604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561122a57600080fd5b505af115801561123e573d6000803e3d6000fd5b505050506040513d602081101561125457600080fd5b5050604080513381526020810185905281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b61129a610550565b60035460028301546112ab91611836565b8260010181905550505050565b6112c061188f565b6000546001600160a01b03908116911614611322576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61132a610cf7565b600554604080519182526020820183905280517f79a5349732f93288abbb68e251c3dfc325bf3ee6fde7786d919155d39733e0f59281900390910190a1600555565b60095481565b6001600160a01b03166000908152600260208190526040909120015490565b60085490565b33600090815260026020526040902080546007546113b491611791565b600755600b54815460408051632d83811960e01b81526004810192909252516000926001600160a01b031691632d838119916024808301926020929190829003018186803b15801561140557600080fd5b505afa158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b5051600b546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b15801561148857600080fd5b505af115801561149c573d6000803e3d6000fd5b505050506040513d60208110156114b257600080fd5b5050604080513381526020810183905281517f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695929181900390910190a150600080825560018201819055600290910155565b60035481565b600a5481565b60095490565b61151e61188f565b6000546001600160a01b03908116911614611580576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166115c55760405162461bcd60e51b81526004018080602001828103825260268152602001806119fa6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526002602052604081206003546004544311156116e8576000611660600554600454430361183690919063ffffffff16565b600b5460408051634549b03960e01b815260048101849052600060248201819052915193945090926116c2926103e8926001600160a01b0390911691634549b03991604480820192602092909190829003018186803b158015610d9157600080fd5b90506116e36116dc6009548361189390919063ffffffff16565b84906117dc565b925050505b600b54600183015460028401546001600160a01b0390921691632d8381199161171d916103e89161075a916107549088611836565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d602081101561177b57600080fd5b5051949350505050565b60065481565b60045481565b60006117d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d5565b90505b92915050565b6000828201838110156117d3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082611845575060006117d6565b8282028284828161185257fe5b04146117d35760405162461bcd60e51b8152600401808060200182810382526021815260200180611a206021913960400191505060405180910390fd5b3390565b60006117d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061196c565b600081848411156119645760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611929578181015183820152602001611911565b50505050905090810190601f1680156119565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836119bb5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611929578181015183820152602001611911565b5060008385816119c757fe5b049594505050505056fe776974686472617720616d6f756e742065786365656473206465706f736974656420616d6f756e744f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220d8a2bc465e1253e8bb2fa2d59e741f8f3d529b910bb031af5e18a90aa581fd3264736f6c634300060c0033

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

0000000000000000000000005026b766628621af6ac315705c21a21cd52172070000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _ohms (address): 0x5026b766628621AF6Ac315705C21a21cd5217207
Arg [1] : _rewardPerBlock (uint256): 0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005026b766628621af6ac315705c21a21cd5217207
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

9449:9787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9998:40;;;:::i;:::-;;;;;;;;;;;;;;;;12268:130;;;:::i;11190:192::-;;;;;;;;;;;;;;;;-1:-1:-1;11190:192:0;-1:-1:-1;;;;;11190:192:0;;:::i;18636:595::-;;;:::i;:::-;;10134:16;;;:::i;:::-;;;;-1:-1:-1;;;;;10134:16:0;;;;;;;;;;;;;;15723:1284;;;;;;;;;;;;;;;;-1:-1:-1;15723:1284:0;;:::i;17904:722::-;;;:::i;11013:100::-;;;:::i;11711:230::-;;;;;;;;;;;;;;;;-1:-1:-1;11711:230:0;-1:-1:-1;;;;;11711:230:0;;:::i;8422:148::-;;;:::i;9820:29::-;;;:::i;7780:79::-;;;:::i;12690:139::-;;;:::i;12485:114::-;;;:::i;13113:520::-;;;:::i;9684:38::-;;;;;;;;;;;;;;;;-1:-1:-1;9684:38:0;-1:-1:-1;;;;;9684:38:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;17618:278;;;;;;;;;;;;;;;;-1:-1:-1;17618:278:0;;:::i;9951:40::-;;;:::i;14387:1328::-;;;;;;;;;;;;;;;;-1:-1:-1;14387:1328:0;;:::i;10731:209::-;;;;;;;;;;;;;;;;-1:-1:-1;10731:209:0;;:::i;10045:35::-;;;:::i;11537:166::-;;;;;;;;;;;;;;;;-1:-1:-1;11537:166:0;-1:-1:-1;;;;;11537:166:0;;:::i;12927:114::-;;;:::i;17078:478::-;;;:::i;9731:44::-;;;:::i;10087:34::-;;;:::i;12064:105::-;;;:::i;8725:244::-;;;;;;;;;;;;;;;;-1:-1:-1;8725:244:0;-1:-1:-1;;;;;8725:244:0;;:::i;13699:680::-;;;;;;;;;;;;;;;;-1:-1:-1;13699:680:0;-1:-1:-1;;;;;13699:680:0;;:::i;9856:27::-;;;:::i;9782:31::-;;;:::i;9998:40::-;;;;:::o;12268:130::-;12343:4;;12368:21;;12343:47;;;-1:-1:-1;;;12343:47:0;;;;;;;;;;12317:7;;-1:-1:-1;;;;;12343:4:0;;:24;;:47;;;;;;;;;;;;;;:4;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12343:47:0;;-1:-1:-1;12268:130:0;:::o;11190:192::-;-1:-1:-1;;;;;11295:13:0;;;11256:7;11295:13;;;:5;:13;;;;;;;;11326:4;;11351:22;;11326:48;;-1:-1:-1;;;11326:48:0;;;;;;;;;;;11256:7;;11295:13;;11326:4;;;:24;;:48;;;;;;;;;;;:4;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11326:48:0;;11190:192;-1:-1:-1;;;11190:192:0:o;18636:595::-;18700:10;18674:17;18694;;;:5;:17;;;;;;;;18748:4;;18773:22;;18748:48;;-1:-1:-1;;;18748:48:0;;;;;;;;;;;18694:17;;18674;-1:-1:-1;;;;;18748:4:0;;;;:24;;:48;;;;;18694:17;18748:48;;;;;:4;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18748:48:0;18839:16;;;;18748:48;;-1:-1:-1;18820:35:0;;18817:356;;18871:18;18892:37;18912:4;:16;;;18892:15;:19;;:37;;;;:::i;:::-;18963:16;;18871:58;;-1:-1:-1;18963:32:0;;18871:58;18963:20;:32::i;:::-;18944:16;:51;-1:-1:-1;18817:356:0;;;19058:16;;;;19037:18;;19058:37;;19079:15;19058:20;:37::i;:::-;19129:16;;19037:58;;-1:-1:-1;19129:32:0;;19037:58;19129:20;:32::i;:::-;19110:16;:51;-1:-1:-1;18817:356:0;19187:16;;;;:34;18636:595::o;10134:16::-;;;-1:-1:-1;;;;;10134:16:0;;:::o;15723:1284::-;15801:10;15775:17;15795;;;:5;:17;;;;;;;;15857:4;;:39;;-1:-1:-1;;;15857:39:0;;;;;;;;;;;;;;;;;15795:17;;-1:-1:-1;;;;;15857:4:0;;;;:24;;:39;;;;;;;;;;;:4;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15857:39:0;15831:22;;:65;;15823:118;;;;-1:-1:-1;;;15823:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15952:8;:6;:8::i;:::-;15973:22;15998:84;16077:4;15999:72;16051:4;:19;;;15999:47;16020:25;;15999:4;:16;;;:20;;:47;;;;:::i;:::-;:51;;:72::i;:::-;15998:78;;:84::i;:::-;16115:4;;:40;;;-1:-1:-1;;;16115:40:0;;;;;;;;;;15973:109;;-1:-1:-1;16093:19:0;;-1:-1:-1;;;;;16115:4:0;;;;:24;;:40;;;;;;;;;;;;;;;:4;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16115:40:0;16171:21;;16115:40;;-1:-1:-1;16171:38:0;-1:-1:-1;16168:331:0;;;16228:15;;16225:263;;16303:21;;:41;;16329:14;16303:25;:41::i;:::-;16279:21;:65;16363:4;;:47;;;-1:-1:-1;;;16363:47:0;;16385:10;16363:47;;;;;;;;;;;;-1:-1:-1;;;;;16363:4:0;;;;:13;;:47;;;;;;;;;;;;;;;:4;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16434:38:0;;;16448:10;16434:38;;16363:47;16434:38;;;;;;;;;;;;;;;;;;16225:263;16538:4;;:39;;;-1:-1:-1;;;16538:39:0;;;;;;;;16511:24;16538:39;;;;;;;;16511:24;;-1:-1:-1;;;;;16538:4:0;;:24;;:39;;;;;;;;;;;;;;;:4;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16538:39:0;;-1:-1:-1;16594:10:0;;16590:299;;16646:22;;:44;;16673:16;16646:26;:44::i;:::-;16621:69;;16729:21;;:43;;16755:16;16729:25;:43::i;:::-;16705:21;:67;16787:4;;:42;;;-1:-1:-1;;;16787:42:0;;16809:10;16787:42;;;;;;;;;;;;-1:-1:-1;;;;;16787:4:0;;;;:13;;:42;;;;;;;;;;;;;;;:4;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16849:28:0;;;16858:10;16849:28;;16787:42;16849:28;;;;;;;;;;;;;;;;;;16590:299;16909:10;:8;:10::i;:::-;16973:25;;16952:16;;;;:47;;:20;:47::i;:::-;16930:4;:19;;:69;;;;15723:1284;;;;;:::o;17904:722::-;17974:10;17948:17;17968;;;:5;:17;;;;;17996:8;:6;:8::i;:::-;18015:22;18040:84;18119:4;18041:72;18093:4;:19;;;18041:47;18062:25;;18041:4;:16;;;:20;;:47;;;;:::i;18040:84::-;18015:109;;18164:14;18140:21;;:38;18137:377;;;18219:22;;:42;;18246:14;18219:26;:42::i;:::-;18194:67;;18300:21;;:41;;18326:14;18300:25;:41::i;:::-;18276:21;:65;18380:21;;:41;;18406:14;18380:25;:41::i;:::-;18356:21;:65;18461:4;;:40;;;-1:-1:-1;;;18461:40:0;;;;;;;;;;18441:61;;18449:10;;-1:-1:-1;;;;;18461:4:0;;;;:24;;:40;;;;;;;;;;;;;;;:4;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18461:40:0;18441:61;;;-1:-1:-1;;;;;18441:61:0;;;;;18461:40;18441:61;;;;;;;;;;;;;;;18137:377;18526:10;:8;:10::i;:::-;18590:25;;18569:16;;;;:47;;:20;:47::i;:::-;18547:4;:19;;:69;;;;17904:722;;:::o;11013:100::-;11091:14;;11013:100;:::o;11711:230::-;11775:7;11794:13;11810:27;11831:5;11810:20;:27::i;:::-;11794:43;;11848:14;11865:33;11892:5;11865:26;:33::i;:::-;11848:50;-1:-1:-1;11916:17:0;:5;11848:50;11916:9;:17::i;:::-;11909:24;11711:230;-1:-1:-1;;;;11711:230:0:o;8422:148::-;8002:12;:10;:12::i;:::-;7992:6;;-1:-1:-1;;;;;7992:6:0;;;:22;;;7984:67;;;;;-1:-1:-1;;;7984:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8529:1:::1;8513:6:::0;;8492:40:::1;::::0;-1:-1:-1;;;;;8513:6:0;;::::1;::::0;8492:40:::1;::::0;8529:1;;8492:40:::1;8560:1;8543:19:::0;;-1:-1:-1;;;;;;8543:19:0::1;::::0;;8422:148::o;9820:29::-;;;;:::o;7780:79::-;7818:7;7845:6;-1:-1:-1;;;;;7845:6:0;7780:79;:::o;12690:139::-;12774:4;;12799:21;;12774:47;;;-1:-1:-1;;;12774:47:0;;;;;;;;;;12748:7;;-1:-1:-1;;;;;12774:4:0;;:24;;:47;;;;;;;;;;;;;;:4;:47;;;;;;;;;;12485:114;12570:21;;12485:114;:::o;13113:520::-;13169:16;;13153:12;:32;13149:71;;13202:7;;13149:71;13230:20;13253:53;13291:14;;13269:16;;13254:12;:31;13253:37;;:53;;;;:::i;:::-;13335:15;;13230:76;;-1:-1:-1;13335:33:0;;13230:76;13335:19;:33::i;:::-;13317:15;:51;13412:4;;:45;;;-1:-1:-1;;;13412:45:0;;;;;;;;13379:30;13412:45;;;;;;;;13379:30;;13412:55;;13462:4;;-1:-1:-1;;;;;13412:4:0;;;;:24;;:45;;;;;;;;;;;;;;:4;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13412:45:0;;:49;:55::i;:::-;13379:88;;13508:75;13538:44;13565:16;;13538:22;:26;;:44;;;;:::i;:::-;13508:25;;;:29;:75::i;:::-;13480:25;:103;-1:-1:-1;;13613:12:0;13594:16;:31;13113:520;:::o;9684:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17618:278::-;17673:4;;:61;;;-1:-1:-1;;;17673:61:0;;17699:10;17673:61;;;;17720:4;17673:61;;;;;;;;;;;;-1:-1:-1;;;;;17673:4:0;;;;:17;;:61;;;;;;;;;;;;;;;:4;;:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17772:4:0;;:38;;;-1:-1:-1;;;17772:38:0;;;;;;;;:4;:38;;;;;;17745:24;;-1:-1:-1;;;;;17772:4:0;;:24;;:38;;;;;17673:61;;17772:38;;;;;;;:4;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17772:38:0;17845:21;;17772:38;;-1:-1:-1;17845:43:0;;17772:38;17845:25;:43::i;:::-;17821:21;:67;-1:-1:-1;;17618:278:0:o;9951:40::-;;;;:::o;14387:1328::-;14464:10;14438:17;14458;;;:5;:17;;;;;14486:8;:6;:8::i;:::-;14505:9;:35;;;;;;;-1:-1:-1;14505:35:0;;;;;;;;-1:-1:-1;;;;;;14505:35:0;14528:10;14505:35;;;14557:16;;;;:20;14553:645;;14594:26;14623:84;14702:4;14624:72;14676:4;:19;;;14624:47;14645:25;;14624:4;:16;;;:20;;:47;;;;:::i;14623:84::-;14744:4;;:44;;;-1:-1:-1;;;14744:44:0;;;;;;;;;;14594:113;;-1:-1:-1;14722:19:0;;-1:-1:-1;;;;;14744:4:0;;;;:24;;:44;;;;;;;;;;;;;;;:4;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14744:44:0;14820:21;;14744:44;;-1:-1:-1;14868:1:0;;14820:45;;14846:18;14820:25;:45::i;:::-;:49;14817:370;;;14892:15;;14889:283;;14971:21;;:45;;14997:18;14971:25;:45::i;:::-;14947:21;:69;15039:4;;:47;;;-1:-1:-1;;;15039:47:0;;15061:10;15039:47;;;;;;;;;;;;-1:-1:-1;;;;;15039:4:0;;;;:13;;:47;;;;;;;;;;;;;;;:4;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15114:38:0;;;15128:10;15114:38;;15039:47;15114:38;;;;;;;;;;;;;;;;;;14889:283;14553:645;;;15237:4;;:38;;;-1:-1:-1;;;15237:38:0;;;;;;;;:4;:38;;;;;;15210:24;;-1:-1:-1;;;;;15237:4:0;;:24;;:38;;;;;;;;;;;;;;:4;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15237:38:0;;-1:-1:-1;15291:10:0;;15288:315;;15342:22;;:44;;15369:16;15342:26;:44::i;:::-;15317:69;;15425:21;;:43;;15451:16;15425:25;:43::i;:::-;15401:21;:67;15483:4;;:61;;;-1:-1:-1;;;15483:61:0;;15509:10;15483:61;;;;15530:4;15483:61;;;;;;;;;;;;-1:-1:-1;;;;;15483:4:0;;;;:17;;:61;;;;;;;;;;;;;;;:4;;:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15564:27:0;;;15572:10;15564:27;;15483:61;15564:27;;;;;;;;;;;;;;;;;;15288:315;15615:10;:8;:10::i;:::-;15679:25;;15658:16;;;;:47;;:20;:47::i;:::-;15636:4;:19;;:69;;;;14387:1328;;;:::o;10731:209::-;8002:12;:10;:12::i;:::-;7992:6;;-1:-1:-1;;;;;7992:6:0;;;:22;;;7984:67;;;;;-1:-1:-1;;;7984:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10811:8:::1;:6;:8::i;:::-;10857:14;::::0;10835:54:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;10900:14;:32:::0;10731:209::o;10045:35::-;;;;:::o;11537:166::-;-1:-1:-1;;;;;11648:13:0;11609:7;11648:13;;;:5;:13;;;;;;;;11679:16;;;11537:166::o;12927:114::-;13012:21;;12927:114;:::o;17078:478::-;17151:10;17125:17;17145;;;:5;:17;;;;;17225:22;;17199:21;;:49;;:25;:49::i;:::-;17175:21;:73;17280:4;;17305:22;;17280:48;;;-1:-1:-1;;;17280:48:0;;;;;;;;;;17259:18;;-1:-1:-1;;;;;17280:4:0;;:24;;:48;;;;;;;;;;;;;;:4;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17280:48:0;17339:4;;:46;;;-1:-1:-1;;;17339:46:0;;17361:10;17339:46;;;;;;;;;;;;17280:48;;-1:-1:-1;;;;;;17339:4:0;;;;:13;;:46;;;;;17280:48;;17339:46;;;;;;;;:4;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17403:41:0;;;17421:10;17403:41;;17339:46;17403:41;;;;;;;;;;;;;;;;;;-1:-1:-1;17482:1:0;17457:26;;;17494:19;;;:23;;;17528:16;;;;:20;17078:478::o;9731:44::-;;;;:::o;10087:34::-;;;;:::o;12064:105::-;12145:16;;12064:105;:::o;8725:244::-;8002:12;:10;:12::i;:::-;7992:6;;-1:-1:-1;;;;;7992:6:0;;;:22;;;7984:67;;;;;-1:-1:-1;;;7984:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8814:22:0;::::1;8806:73;;;;-1:-1:-1::0;;;8806:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8916:6;::::0;;8895:38:::1;::::0;-1:-1:-1;;;;;8895:38:0;;::::1;::::0;8916:6;::::1;::::0;8895:38:::1;::::0;::::1;8944:6;:17:::0;;-1:-1:-1;;;;;;8944:17:0::1;-1:-1:-1::0;;;;;8944:17:0;;;::::1;::::0;;;::::1;::::0;;8725:244::o;13699:680::-;-1:-1:-1;;;;;13800:12:0;;13760:7;13800:12;;;:5;:12;;;;;13855:25;;13912:16;;13897:12;:31;13893:355;;;13945:20;13968:53;14006:14;;13984:16;;13969:12;:31;13968:37;;:53;;;;:::i;:::-;14070:4;;:45;;;-1:-1:-1;;;14070:45:0;;;;;;;;14036:30;14070:45;;;;;;;;13945:76;;-1:-1:-1;14036:30:0;;14069:57;;14121:4;;-1:-1:-1;;;;;14070:4:0;;;;:24;;:45;;;;;;;;;;;;;;;:4;:45;;;;;;;;;;14069:57;14036:90;;14165:71;14191:44;14218:16;;14191:22;:26;;:44;;;;:::i;:::-;14165:21;;:25;:71::i;:::-;14141:95;;13893:355;;;14265:4;;;14339:19;;;14291:16;;;;-1:-1:-1;;;;;14265:4:0;;;;:24;;14290:80;;14365:4;;14291:68;;:43;;14312:21;14291:20;:43::i;14290:80::-;14265:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14265:106:0;;13699:680;-1:-1:-1;;;;13699:680:0:o;9856:27::-;;;;:::o;9782:31::-;;;;:::o;1870:136::-;1928:7;1955:43;1959:1;1962;1955:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1948:50;;1870:136;;;;;:::o;1406:181::-;1464:7;1496:5;;;1520:6;;;;1512:46;;;;;-1:-1:-1;;;1512:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2760:471;2818:7;3063:6;3059:47;;-1:-1:-1;3093:1:0;3086:8;;3059:47;3130:5;;;3134:1;3130;:5;:1;3154:5;;;;;:10;3146:56;;;;-1:-1:-1;;;3146:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6409:106;6497:10;6409:106;:::o;3707:132::-;3765:7;3792:39;3796:1;3799;3792:39;;;;;;;;;;;;;;;;;:3;:39::i;2309:192::-;2395:7;2431:12;2423:6;;;;2415:29;;;;-1:-1:-1;;;2415:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2467:5:0;;;2309:192::o;4335:278::-;4421:7;4456:12;4449:5;4441:28;;;;-1:-1:-1;;;4441:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4480:9;4496:1;4492;:5;;;;;;;4335:278;-1:-1:-1;;;;;4335:278:0:o

Swarm Source

ipfs://d8a2bc465e1253e8bb2fa2d59e741f8f3d529b910bb031af5e18a90aa581fd32

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

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