ETH Price: $2,058.35 (-0.90%)
Gas: 0.18 Gwei

Contract

0x9E04B84BfDCd26d740F2dD6ddbEdd6971C2Cf0d0
 

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
Unfarm160139002022-11-20 21:26:111207 days ago1668979571IN
0x9E04B84B...71C2Cf0d0
0 ETH0.001205310.92849555
Unfarm129836082021-08-08 9:31:491677 days ago1628415109IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0033260930.15775516
Unfarm128973612021-07-25 19:44:001690 days ago1627242240IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0008399314
Farm128690582021-07-21 9:47:471695 days ago1626860867IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0004868311
Farm128690582021-07-21 9:47:471695 days ago1626860867IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0017108511
Unfarm127091522021-06-26 10:32:451720 days ago1624703565IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0007539911
Farm126426752021-06-16 1:52:111730 days ago1623808331IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0024881216.00000145
Farm124733322021-05-20 20:04:391756 days ago1621541079IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0105753668
Unfarm124411652021-05-15 20:24:171761 days ago1621110257IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0041996570
Farm123578932021-05-03 0:10:241774 days ago1620000624IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0051992437
Farm121720902021-04-04 8:35:251803 days ago1617525325IN
0x9E04B84B...71C2Cf0d0
0 ETH0.01572714117
Unfarm120352222021-03-14 7:05:401824 days ago1615705540IN
0x9E04B84B...71C2Cf0d0
0 ETH0.00733839102
Unfarm118927492021-02-20 8:28:261846 days ago1613809706IN
0x9E04B84B...71C2Cf0d0
0 ETH0.00973415135.3
Unfarm118888142021-02-19 17:53:071847 days ago1613757187IN
0x9E04B84B...71C2Cf0d0
0 ETH0.01127787175
Unfarm118680022021-02-16 13:05:221850 days ago1613480722IN
0x9E04B84B...71C2Cf0d0
0 ETH0.01050397146
Unfarm117642122021-01-31 14:02:011866 days ago1612101721IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0092809129
Unfarm117270842021-01-25 20:35:351871 days ago1611606935IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0048333775
Unfarm117119642021-01-23 12:58:371874 days ago1611406717IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0045026146.00000145
Unfarm117119502021-01-23 12:56:551874 days ago1611406615IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0043823644.77151216
Unfarm117119162021-01-23 12:49:341874 days ago1611406174IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0045026146
Unfarm117111582021-01-23 10:03:191874 days ago1611396199IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0022100
Farm117079692021-01-22 22:19:501874 days ago1611353990IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0085169457
Unfarm116939572021-01-20 18:21:511876 days ago1611166911IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0027066942
Unfarm116864012021-01-19 14:54:011878 days ago1611068041IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0054097795
Unfarm116037102021-01-06 22:13:211890 days ago1609971201IN
0x9E04B84B...71C2Cf0d0
0 ETH0.0067951100
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:
Farming

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2020-11-29
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.5.16;

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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) {
        // 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;
    }

    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;

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves.

        // A Solidity high level call has three parts:
        //  1. The target address is checked to verify it contains contract code
        //  2. The call itself is made, and success asserted
        //  3. The return value is decoded, which in turn checks the size of the returned data.
        // solhint-disable-next-line max-line-length
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract ReentrancyGuard {
    bool private _notEntered;

    constructor () internal {

        _notEntered = true;
    }

    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_notEntered, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _notEntered = false;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _notEntered = true;
    }
}

contract FarmingTokenWrapper is ReentrancyGuard {

    using SafeMath for uint256;
    using SafeERC20 for IERC20;

    IERC20 public farmingToken;

    uint256 private _totalSupply;
    mapping(address => uint256) private _balances;

    constructor(address _farmingToken) internal {
        farmingToken = IERC20(_farmingToken);
    }

    function totalSupply()
        public
        view
        returns (uint256)
    {
        return _totalSupply;
    }

    function balanceOf(address _account)
        public
        view
        returns (uint256)
    {
        return _balances[_account];
    }

    function _farm(address _beneficiary, uint256 _amount)
        internal
        nonReentrant
    {
        _totalSupply = _totalSupply.add(_amount);
        _balances[_beneficiary] = _balances[_beneficiary].add(_amount);
        farmingToken.safeTransferFrom(msg.sender, address(this), _amount);
    }

    function _withdraw(uint256 _amount)
        internal
        nonReentrant
    {
        _totalSupply = _totalSupply.sub(_amount);
        _balances[msg.sender] = _balances[msg.sender].sub(_amount);
        farmingToken.safeTransfer(msg.sender, _amount);
    }
}

interface IRewardsDistributionRecipient {
    // function notifyRewardAmount(uint256 reward) external;
    function getRewardToken() external view returns (IERC20);
}

contract RewardsDistributionRecipient is IRewardsDistributionRecipient {

    // @abstract
    // function notifyRewardAmount(uint256 reward) external;
    function getRewardToken() external view returns (IERC20);

    // This address has the ability to distribute the rewards
    address public rewardsDistributor;

    /** @dev Recipient is a module, governed by mStable governance */
    constructor(address _rewardsDistributor) 
        internal
    {
        rewardsDistributor = _rewardsDistributor;
    }

    /**
     * @dev Only the rewards distributor can notify about rewards
     */
    modifier onlyRewardsDistributor() {
        require(msg.sender == rewardsDistributor, "Caller is not reward distributor");
        _;
    }
}

library StableMath {

    using SafeMath for uint256;

    uint256 private constant FULL_SCALE = 1e18;

    uint256 private constant RATIO_SCALE = 1e8;

    function getFullScale() internal pure returns (uint256) {
        return FULL_SCALE;
    }

    function getRatioScale() internal pure returns (uint256) {
        return RATIO_SCALE;
    }

    function scaleInteger(uint256 x)
        internal
        pure
        returns (uint256)
    {
        return x.mul(FULL_SCALE);
    }

    function mulTruncate(uint256 x, uint256 y)
        internal
        pure
        returns (uint256)
    {
        return mulTruncateScale(x, y, FULL_SCALE);
    }

    function mulTruncateScale(uint256 x, uint256 y, uint256 scale)
        internal
        pure
        returns (uint256)
    {
        // e.g. assume scale = fullScale
        // z = 10e18 * 9e17 = 9e36
        uint256 z = x.mul(y);
        // return 9e38 / 1e18 = 9e18
        return z.div(scale);
    }

    function mulTruncateCeil(uint256 x, uint256 y)
        internal
        pure
        returns (uint256)
    {
        // e.g. 8e17 * 17268172638 = 138145381104e17
        uint256 scaled = x.mul(y);
        // e.g. 138145381104e17 + 9.99...e17 = 138145381113.99...e17
        uint256 ceil = scaled.add(FULL_SCALE.sub(1));
        // e.g. 13814538111.399...e18 / 1e18 = 13814538111
        return ceil.div(FULL_SCALE);
    }

    function divPrecisely(uint256 x, uint256 y)
        internal
        pure
        returns (uint256)
    {
        // e.g. 8e18 * 1e18 = 8e36
        uint256 z = x.mul(FULL_SCALE);
        // e.g. 8e36 / 10e18 = 8e17
        return z.div(y);
    }

    function mulRatioTruncate(uint256 x, uint256 ratio)
        internal
        pure
        returns (uint256 c)
    {
        return mulTruncateScale(x, ratio, RATIO_SCALE);
    }

    function mulRatioTruncateCeil(uint256 x, uint256 ratio)
        internal
        pure
        returns (uint256)
    {
        // e.g. How much mAsset should I burn for this bAsset (x)?
        // 1e18 * 1e8 = 1e26
        uint256 scaled = x.mul(ratio);
        // 1e26 + 9.99e7 = 100..00.999e8
        uint256 ceil = scaled.add(RATIO_SCALE.sub(1));
        // return 100..00.999e8 / 1e8 = 1e18
        return ceil.div(RATIO_SCALE);
    }

    function divRatioPrecisely(uint256 x, uint256 ratio)
        internal
        pure
        returns (uint256 c)
    {
        // e.g. 1e14 * 1e8 = 1e22
        uint256 y = x.mul(RATIO_SCALE);
        // return 1e22 / 1e12 = 1e10
        return y.div(ratio);
    }

    function min(uint256 x, uint256 y)
        internal
        pure
        returns (uint256)
    {
        return x > y ? y : x;
    }

    function max(uint256 x, uint256 y)
        internal
        pure
        returns (uint256)
    {
        return x > y ? x : y;
    }

    function clamp(uint256 x, uint256 upperBound)
        internal
        pure
        returns (uint256)
    {
        return x > upperBound ? upperBound : x;
    }
}

contract Farming is FarmingTokenWrapper, RewardsDistributionRecipient {

    using StableMath for uint256;

    IERC20 public rewardsToken;

    uint256 public constant ONE_DAY = 86400; // in seconds

    uint256 public rewardPercent = 1; // 1%
    // Timestamp of farming duration
    uint256 public farmingDuration = 0;
    
    // Amount the user has farmed
    mapping(address => uint256) public userFarmedTokens;
    // Reward the user will get after farming period ends
    mapping(address => uint256) public rewards;
    // Rewards paid to user
    mapping(address => uint256) public userRewardsPaid;
    // Farm starting timestamp
    mapping(address => uint256) public farmStarted;
    // Farm ending timestamp
    mapping(address => uint256) public farmEnded;

    event RewardAdded(uint256 reward);
    event Staked(address indexed user, uint256 amount, address payer);
    event Withdrawn(address indexed user, uint256 amount);
    event RewardPaid(address indexed user, uint256 reward);

    /***************************************
                    CONSTRUCTOR
    ****************************************/

    constructor (
        address _farmingToken,
        address _rewardsToken,
        address _rewardsDistributor,
        uint256 _farmingDurationDays
    )
        public
        FarmingTokenWrapper(_farmingToken)
        RewardsDistributionRecipient(_rewardsDistributor)
    {
        rewardsToken = IERC20(_rewardsToken);
        farmingDuration = _farmingDurationDays.mul(ONE_DAY);
    }
    
    /***************************************
                    MODIFIERS
    ****************************************/

    modifier isAccount(address _account) {
        require(!Address.isContract(_account), "Only external owned accounts allowed");
        _;
    }
    
    /***************************************
                    ACTIONS
    ****************************************/

    function farm(uint256 _amount)
        external
    {
        _farm(msg.sender, _amount);
    }

    function _farm(address _beneficiary, uint256 _amount)
        internal
        isAccount(_beneficiary)
    {
        require(_amount >= 1, "Minimum staking amount is 1");
        
        super._farm(_beneficiary, _amount);
        
        userFarmedTokens[_beneficiary] = userFarmedTokens[_beneficiary].add(_amount);
        uint256 __userAmount = userFarmedTokens[_beneficiary];
        
        // calculation is on the basis:
        // (tokenAmount * 3hr * rewardPercent * 10**21) / 10**27
        // e.g: (50 * 3*3600 * 1% * 10**21) / 10**27 = 0.54 

        uint256 _rewardAmount = (__userAmount.mul(3 * 3600 * (rewardPercent.mul(10**21)))).div(10**27);
        rewards[_beneficiary] = _rewardAmount;
        farmStarted[_beneficiary] = block.timestamp;
        farmEnded[_beneficiary] = (block.timestamp).add(farmingDuration);

        emit Staked(_beneficiary, _amount, msg.sender);
    }

    function unfarm() 
        external 
    {
        require(block.timestamp >= farmEnded[msg.sender], "Reward cannot be claimed before 30 days");
        
        withdraw(balanceOf(msg.sender));
        claimReward();
        
        farmStarted[msg.sender] = 0;
        farmEnded[msg.sender] = 0;
    }

    function withdraw(uint256 _amount)
        public
        isAccount(msg.sender)
    {
        require(_amount > 0, "Cannot withdraw 0");
        require(block.timestamp >= farmEnded[msg.sender], "Reward cannot be claimed before 30 days");
        userFarmedTokens[msg.sender] = userFarmedTokens[msg.sender].sub(_amount);
        _withdraw(_amount);
        emit Withdrawn(msg.sender, _amount);
    }

    function claimReward()
        public
        isAccount(msg.sender)
    {
        require(block.timestamp >= farmEnded[msg.sender], "Reward cannot be claimed before 30 days");
        uint256 reward = rewards[msg.sender];
        if (reward > 0) {
            rewards[msg.sender] = 0;
            rewardsToken.transfer(msg.sender, reward);
            userRewardsPaid[msg.sender] = userRewardsPaid[msg.sender].add(reward);
            emit RewardPaid(msg.sender, reward);
        }
    }


    /***************************************
                    GETTERS
    ****************************************/

    function getRewardToken()
        external
        view
        returns (IERC20)
    {
        return rewardsToken;
    }

    function earned(address _account)
        public
        view
        returns (uint256)
    {
        return rewards[_account];
    }

    function tokensFarmed(address _account)
        public
        view
        returns (uint256)
    {
        return userFarmedTokens[_account];
    }


    /***************************************
                    ADMIN
    ****************************************/

    function sendRewardTokens(uint256 _amount) 
        public 
        onlyRewardsDistributor 
    {
        require(rewardsToken.transferFrom(msg.sender, address(this), _amount), "Transfering not approved!");
    }
    
    function withdrawRewardTokens(address receiver, uint256 _amount) 
        public 
        onlyRewardsDistributor 
    {
        require(rewardsToken.transfer(receiver, _amount), "Not enough tokens on contract!");
    }
    
    function withdrawFarmTokens(address receiver, uint256 _amount) 
        public 
        onlyRewardsDistributor 
    {
        require(farmingToken.transfer(receiver, _amount), "Not enough tokens on contract!");
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_farmingToken","type":"address"},{"internalType":"address","name":"_rewardsToken","type":"address"},{"internalType":"address","name":"_rewardsDistributor","type":"address"},{"internalType":"uint256","name":"_farmingDurationDays","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"payer","type":"address"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"constant":true,"inputs":[],"name":"ONE_DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"farm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"farmEnded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"farmStarted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"farmingDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"farmingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsDistributor","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendRewardTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"tokensFarmed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unfarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userFarmedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewardsPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawFarmTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawRewardTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052600160055560006006553480156200001b57600080fd5b506040516200280038038062002800833981810160405260808110156200004157600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050818460016000806101000a81548160ff02191690831515021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200016e62015180826200017e60201b620020141790919060201c565b6006819055505050505062000209565b60008083141562000193576000905062000203565b6000828402905082848281620001a557fe5b0414620001fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620027df6021913960400191505060405180910390fd5b809150505b92915050565b6125c680620002196000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c806369940d79116100c3578063a12438d71161007c578063a12438d71461057f578063ad24dce7146105d7578063b88a802f14610621578063d03020511461062b578063d1af0c7d14610649578063e1ea88d6146106935761014c565b806369940d79146103c157806369d43c881461040b57806370a0823114610463578063860be752146104bb578063863e76db146105135780638f3bbb9f146105315761014c565b80632aec65b3116101155780632aec65b3146102955780632e1a7d4d146102e3578063367e6bc6146103115780633f2a55401461033f578063538a85a114610389578063661ed721146103b75761014c565b80628cc262146101515780630700037d146101a95780630c7d67631461020157806318160ddd1461021f578063294ed8cf1461023d575b600080fd5b6101936004803603602081101561016757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106eb565b6040518082815260200191505060405180910390f35b6101eb600480360360208110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610734565b6040518082815260200191505060405180910390f35b61020961074c565b6040518082815260200191505060405180910390f35b610227610752565b6040518082815260200191505060405180910390f35b61027f6004803603602081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061075c565b6040518082815260200191505060405180910390f35b6102e1600480360360408110156102ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610774565b005b61030f600480360360208110156102f957600080fd5b8101908080359060200190929190505050610991565b005b61033d6004803603602081101561032757600080fd5b8101908080359060200190929190505050610bef565b005b610347610e3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103b56004803603602081101561039f57600080fd5b8101908080359060200190929190505050610e65565b005b6103bf610e72565b005b6103c9610faf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044d6004803603602081101561042157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd9565b6040518082815260200191505060405180910390f35b6104a56004803603602081101561047957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff1565b6040518082815260200191505060405180910390f35b6104fd600480360360208110156104d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061103a565b6040518082815260200191505060405180910390f35b61051b611083565b6040518082815260200191505060405180910390f35b61057d6004803603604081101561054757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061108a565b005b6105c16004803603602081101561059557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b6040518082815260200191505060405180910390f35b6105df6112bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106296112e5565b005b61063361163c565b6040518082815260200191505060405180910390f35b610651611642565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d5600480360360208110156106a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611668565b6040518082815260200191505060405180910390f35b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60086020528060005260406000206000915090505481565b60065481565b6000600154905090565b600a6020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f7420726577617264206469737472696275746f7281525060200191505060405180910390fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156108e057600080fd5b505af11580156108f4573d6000803e3d6000fd5b505050506040513d602081101561090a57600080fd5b810190808051906020019092919050505061098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f7420656e6f75676820746f6b656e73206f6e20636f6e747261637421000081525060200191505060405180910390fd5b5050565b3361099b81611680565b156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124fc6024913960400191505060405180910390fd5b60008211610a67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421015610aff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806125206027913960400191505060405180910390fd5b610b5182600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cb90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9d82611715565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f7420726577617264206469737472696275746f7281525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b505050506040513d6020811015610db957600080fd5b8101908080519060200190929190505050610e3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5472616e73666572696e67206e6f7420617070726f766564210000000000000081525060200191505060405180910390fd5b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e6f33826118ca565b50565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421015610f0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806125206027913960400191505060405180910390fd5b610f1b610f1633610ff1565b610991565b610f236112e5565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915090505481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6201518081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f7420726577617264206469737472696275746f7281525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b505050506040513d602081101561122057600080fd5b81019080805190602001909291905050506112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f7420656e6f75676820746f6b656e73206f6e20636f6e747261637421000081525060200191505060405180910390fd5b5050565b60096020528060005260406000206000915090505481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b336112ef81611680565b15611345576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124fc6024913960400191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544210156113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806125206027913960400191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611638576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561151857600080fd5b505af115801561152c573d6000803e3d6000fd5b505050506040513d602081101561154257600080fd5b8101908080519060200190929190505050506115a681600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4390919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b5050565b60055481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156116c257506000801b8214155b92505050919050565b600061170d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ccb565b905092915050565b6000809054906101000a900460ff16611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055506117c5816001546116cb90919063ffffffff16565b60018190555061181d81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ad3382600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d8b9092919063ffffffff16565b60016000806101000a81548160ff02191690831515021790555050565b816118d481611680565b1561192a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124fc6024913960400191505060405180910390fd5b60018210156119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4d696e696d756d207374616b696e6720616d6f756e742069732031000000000081525060200191505060405180910390fd5b6119ab8383611e5c565b6119fd82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4390919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611ad86b033b2e3c9fd0803ce8000000611aca611ab7683635c9adc5dea0000060055461201490919063ffffffff16565b612a30028561201490919063ffffffff16565b61209a90919063ffffffff16565b905080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b7760065442611c4390919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f9f9e4044c5742cca66ca090b21552bac14645e68bad7a92364a9d9ff18111a1c8533604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a25050505050565b600080828401905083811015611cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290611d78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d3d578082015181840152602081019050611d22565b50505050905090810190601f168015611d6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b611e57838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506120e4565b505050565b6000809054906101000a900460ff16611edd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff021916908315150217905550611f0c81600154611c4390919063ffffffff16565b600181905550611f6481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff6333083600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661232f909392919063ffffffff16565b60016000806101000a81548160ff0219169083151502179055505050565b6000808314156120275760009050612094565b600082840290508284828161203857fe5b041461208f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125476021913960400191505060405180910390fd5b809150505b92915050565b60006120dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612435565b905092915050565b6121038273ffffffffffffffffffffffffffffffffffffffff16611680565b612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106121c457805182526020820191506020810190506020830392506121a1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612226576040519150601f19603f3d011682016040523d82523d6000602084013e61222b565b606091505b5091509150816122a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115612329578080602001905160208110156122c257600080fd5b8101908080519060200190929190505050612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612568602a913960400191505060405180910390fd5b5b50505050565b61242f848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506120e4565b50505050565b600080831182906124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a657808201518184015260208101905061248b565b50505050905090810190601f1680156124d35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816124ed57fe5b04905080915050939250505056fe4f6e6c792065787465726e616c206f776e6564206163636f756e747320616c6c6f7765645265776172642063616e6e6f7420626520636c61696d6564206265666f72652033302064617973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820384bc01f2bcb15d573edc6f1c67af1d949e16f42e78f94aa600077d9f92b54fb64736f6c63430005110032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7700000000000000000000000059e7b5db9be0bdd26fa048d39e01fee456ab674e000000000000000000000000f0a0f3a6fa6bed75345171a5ea18abcadf6453ba000000000000000000000000fa9d74951863685248fb3c188a0cb65bfcd2a7490000000000000000000000000000000000000000000000000000000000000007

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014c5760003560e01c806369940d79116100c3578063a12438d71161007c578063a12438d71461057f578063ad24dce7146105d7578063b88a802f14610621578063d03020511461062b578063d1af0c7d14610649578063e1ea88d6146106935761014c565b806369940d79146103c157806369d43c881461040b57806370a0823114610463578063860be752146104bb578063863e76db146105135780638f3bbb9f146105315761014c565b80632aec65b3116101155780632aec65b3146102955780632e1a7d4d146102e3578063367e6bc6146103115780633f2a55401461033f578063538a85a114610389578063661ed721146103b75761014c565b80628cc262146101515780630700037d146101a95780630c7d67631461020157806318160ddd1461021f578063294ed8cf1461023d575b600080fd5b6101936004803603602081101561016757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106eb565b6040518082815260200191505060405180910390f35b6101eb600480360360208110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610734565b6040518082815260200191505060405180910390f35b61020961074c565b6040518082815260200191505060405180910390f35b610227610752565b6040518082815260200191505060405180910390f35b61027f6004803603602081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061075c565b6040518082815260200191505060405180910390f35b6102e1600480360360408110156102ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610774565b005b61030f600480360360208110156102f957600080fd5b8101908080359060200190929190505050610991565b005b61033d6004803603602081101561032757600080fd5b8101908080359060200190929190505050610bef565b005b610347610e3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103b56004803603602081101561039f57600080fd5b8101908080359060200190929190505050610e65565b005b6103bf610e72565b005b6103c9610faf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61044d6004803603602081101561042157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd9565b6040518082815260200191505060405180910390f35b6104a56004803603602081101561047957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff1565b6040518082815260200191505060405180910390f35b6104fd600480360360208110156104d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061103a565b6040518082815260200191505060405180910390f35b61051b611083565b6040518082815260200191505060405180910390f35b61057d6004803603604081101561054757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061108a565b005b6105c16004803603602081101561059557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b6040518082815260200191505060405180910390f35b6105df6112bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106296112e5565b005b61063361163c565b6040518082815260200191505060405180910390f35b610651611642565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d5600480360360208110156106a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611668565b6040518082815260200191505060405180910390f35b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60086020528060005260406000206000915090505481565b60065481565b6000600154905090565b600a6020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f7420726577617264206469737472696275746f7281525060200191505060405180910390fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156108e057600080fd5b505af11580156108f4573d6000803e3d6000fd5b505050506040513d602081101561090a57600080fd5b810190808051906020019092919050505061098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f7420656e6f75676820746f6b656e73206f6e20636f6e747261637421000081525060200191505060405180910390fd5b5050565b3361099b81611680565b156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124fc6024913960400191505060405180910390fd5b60008211610a67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421015610aff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806125206027913960400191505060405180910390fd5b610b5182600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cb90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9d82611715565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f7420726577617264206469737472696275746f7281525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b505050506040513d6020811015610db957600080fd5b8101908080519060200190929190505050610e3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5472616e73666572696e67206e6f7420617070726f766564210000000000000081525060200191505060405180910390fd5b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e6f33826118ca565b50565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421015610f0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806125206027913960400191505060405180910390fd5b610f1b610f1633610ff1565b610991565b610f236112e5565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915090505481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6201518081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f7420726577617264206469737472696275746f7281525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b505050506040513d602081101561122057600080fd5b81019080805190602001909291905050506112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4e6f7420656e6f75676820746f6b656e73206f6e20636f6e747261637421000081525060200191505060405180910390fd5b5050565b60096020528060005260406000206000915090505481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b336112ef81611680565b15611345576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124fc6024913960400191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544210156113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806125206027913960400191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611638576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561151857600080fd5b505af115801561152c573d6000803e3d6000fd5b505050506040513d602081101561154257600080fd5b8101908080519060200190929190505050506115a681600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4390919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b5050565b60055481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156116c257506000801b8214155b92505050919050565b600061170d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ccb565b905092915050565b6000809054906101000a900460ff16611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055506117c5816001546116cb90919063ffffffff16565b60018190555061181d81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ad3382600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d8b9092919063ffffffff16565b60016000806101000a81548160ff02191690831515021790555050565b816118d481611680565b1561192a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124fc6024913960400191505060405180910390fd5b60018210156119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4d696e696d756d207374616b696e6720616d6f756e742069732031000000000081525060200191505060405180910390fd5b6119ab8383611e5c565b6119fd82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4390919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611ad86b033b2e3c9fd0803ce8000000611aca611ab7683635c9adc5dea0000060055461201490919063ffffffff16565b612a30028561201490919063ffffffff16565b61209a90919063ffffffff16565b905080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b7760065442611c4390919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167f9f9e4044c5742cca66ca090b21552bac14645e68bad7a92364a9d9ff18111a1c8533604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a25050505050565b600080828401905083811015611cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290611d78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d3d578082015181840152602081019050611d22565b50505050905090810190601f168015611d6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b611e57838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506120e4565b505050565b6000809054906101000a900460ff16611edd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60008060006101000a81548160ff021916908315150217905550611f0c81600154611c4390919063ffffffff16565b600181905550611f6481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff6333083600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661232f909392919063ffffffff16565b60016000806101000a81548160ff0219169083151502179055505050565b6000808314156120275760009050612094565b600082840290508284828161203857fe5b041461208f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125476021913960400191505060405180910390fd5b809150505b92915050565b60006120dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612435565b905092915050565b6121038273ffffffffffffffffffffffffffffffffffffffff16611680565b612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106121c457805182526020820191506020810190506020830392506121a1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612226576040519150601f19603f3d011682016040523d82523d6000602084013e61222b565b606091505b5091509150816122a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115612329578080602001905160208110156122c257600080fd5b8101908080519060200190929190505050612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612568602a913960400191505060405180910390fd5b5b50505050565b61242f848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506120e4565b50505050565b600080831182906124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a657808201518184015260208101905061248b565b50505050905090810190601f1680156124d35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816124ed57fe5b04905080915050939250505056fe4f6e6c792065787465726e616c206f776e6564206163636f756e747320616c6c6f7765645265776172642063616e6e6f7420626520636c61696d6564206265666f72652033302064617973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820384bc01f2bcb15d573edc6f1c67af1d949e16f42e78f94aa600077d9f92b54fb64736f6c63430005110032

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

00000000000000000000000059e7b5db9be0bdd26fa048d39e01fee456ab674e000000000000000000000000f0a0f3a6fa6bed75345171a5ea18abcadf6453ba000000000000000000000000fa9d74951863685248fb3c188a0cb65bfcd2a7490000000000000000000000000000000000000000000000000000000000000007

-----Decoded View---------------
Arg [0] : _farmingToken (address): 0x59e7B5DB9Be0BDD26Fa048d39E01FEe456AB674E
Arg [1] : _rewardsToken (address): 0xf0A0F3A6FA6bED75345171a5EA18AbcadF6453BA
Arg [2] : _rewardsDistributor (address): 0xfa9d74951863685248fB3C188A0cb65bFcD2a749
Arg [3] : _farmingDurationDays (uint256): 7

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000059e7b5db9be0bdd26fa048d39e01fee456ab674e
Arg [1] : 000000000000000000000000f0a0f3a6fa6bed75345171a5ea18abcadf6453ba
Arg [2] : 000000000000000000000000fa9d74951863685248fb3c188a0cb65bfcd2a749
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000007


Deployed Bytecode Sourcemap

12347:5644:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12347:5644:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16870:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16870:139:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12842:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12842:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12643:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7430:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13009:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13009:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17767:221;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17767:221:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15686:408;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15686:408:0;;;;;;;;;;;;;;;;;:::i;:::-;;17303:217;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17303:217:0;;;;;;;;;;;;;;;;;:::i;:::-;;8762:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14330:99;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14330:99:0;;;;;;;;;;;;;;;;;:::i;:::-;;15364:314;;;:::i;:::-;;16735:127;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13092:44;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13092:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7561:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7561:144:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17017:154;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17017:154:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12498:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17532:223;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17532:223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12920:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12920:50:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7199:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16102:499;;;:::i;:::-;;12560:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12463:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12725:51;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12725:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16870:139;16952:7;16984;:17;16992:8;16984:17;;;;;;;;;;;;;;;;16977:24;;16870:139;;;:::o;12842:42::-;;;;;;;;;;;;;;;;;:::o;12643:34::-;;;;:::o;7430:123::-;7501:7;7533:12;;7526:19;;7430:123;:::o;13009:46::-;;;;;;;;;;;;;;;;;:::o;17767:221::-;9159:18;;;;;;;;;;;9145:32;;:10;:32;;;9137:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17905:12;;;;;;;;;;;:21;;;17927:8;17937:7;17905:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17905:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17905:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17905:40:0;;;;;;;;;;;;;;;;17897:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17767:221;;:::o;15686:408::-;15756:10;14105:28;14124:8;14105:18;:28::i;:::-;14104:29;14096:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15802:1;15792:7;:11;15784:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15863:9;:21;15873:10;15863:21;;;;;;;;;;;;;;;;15844:15;:40;;15836:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15970:41;16003:7;15970:16;:28;15987:10;15970:28;;;;;;;;;;;;;;;;:32;;:41;;;;:::i;:::-;15939:16;:28;15956:10;15939:28;;;;;;;;;;;;;;;:72;;;;16022:18;16032:7;16022:9;:18::i;:::-;16066:10;16056:30;;;16078:7;16056:30;;;;;;;;;;;;;;;;;;15686:408;;:::o;17303:217::-;9159:18;;;;;;;;;;;9145:32;;:10;:32;;;9137:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17421:12;;;;;;;;;;;:25;;;17447:10;17467:4;17474:7;17421:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17421:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17421:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17421:61:0;;;;;;;;;;;;;;;;17413:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17303:217;:::o;8762:33::-;;;;;;;;;;;;;:::o;14330:99::-;14395:26;14401:10;14413:7;14395:5;:26::i;:::-;14330:99;:::o;15364:314::-;15445:9;:21;15455:10;15445:21;;;;;;;;;;;;;;;;15426:15;:40;;15418:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15531:31;15540:21;15550:10;15540:9;:21::i;:::-;15531:8;:31::i;:::-;15573:13;:11;:13::i;:::-;15633:1;15607:11;:23;15619:10;15607:23;;;;;;;;;;;;;;;:27;;;;15669:1;15645:9;:21;15655:10;15645:21;;;;;;;;;;;;;;;:25;;;;15364:314::o;16735:127::-;16811:6;16842:12;;;;;;;;;;;16835:19;;16735:127;:::o;13092:44::-;;;;;;;;;;;;;;;;;:::o;7561:144::-;7646:7;7678:9;:19;7688:8;7678:19;;;;;;;;;;;;;;;;7671:26;;7561:144;;;:::o;17017:154::-;17105:7;17137:16;:26;17154:8;17137:26;;;;;;;;;;;;;;;;17130:33;;17017:154;;;:::o;12498:39::-;12532:5;12498:39;:::o;17532:223::-;9159:18;;;;;;;;;;;9145:32;;:10;:32;;;9137:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17672:12;;;;;;;;;;;:21;;;17694:8;17704:7;17672:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17672:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17672:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17672:40:0;;;;;;;;;;;;;;;;17664:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17532:223;;:::o;12920:50::-;;;;;;;;;;;;;;;;;:::o;7199:26::-;;;;;;;;;;;;;:::o;16102:499::-;16160:10;14105:28;14124:8;14105:18;:28::i;:::-;14104:29;14096:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16215:9;:21;16225:10;16215:21;;;;;;;;;;;;;;;;16196:15;:40;;16188:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16291:14;16308:7;:19;16316:10;16308:19;;;;;;;;;;;;;;;;16291:36;;16351:1;16342:6;:10;16338:256;;;16391:1;16369:7;:19;16377:10;16369:19;;;;;;;;;;;;;;;:23;;;;16407:12;;;;;;;;;;;:21;;;16429:10;16441:6;16407:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16407:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16407:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16407:41:0;;;;;;;;;;;;;;;;;16493:39;16525:6;16493:15;:27;16509:10;16493:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;16463:15;:27;16479:10;16463:27;;;;;;;;;;;;;;;:69;;;;16563:10;16552:30;;;16575:6;16552:30;;;;;;;;;;;;;;;;;;16338:256;14185:1;16102:499;:::o;12560:32::-;;;;:::o;12463:26::-;;;;;;;;;;;;;:::o;12725:51::-;;;;;;;;;;;;;;;;;:::o;2476:619::-;2536:4;2798:16;2825:19;2847:66;2825:88;;;;3016:7;3004:20;2992:32;;3056:11;3044:8;:23;;:42;;;;;3083:3;3071:15;;:8;:15;;3044:42;3036:51;;;;2476:619;;;:::o;978:136::-;1036:7;1063:43;1067:1;1070;1063:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1056:50;;978:136;;;;:::o;8028:266::-;6736:11;;;;;;;;;;;6728:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6875:5;6861:11;;:19;;;;;;;;;;;;;;;;;;8135:25;8152:7;8135:12;;:16;;:25;;;;:::i;:::-;8120:12;:40;;;;8195:34;8221:7;8195:9;:21;8205:10;8195:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;8171:9;:21;8181:10;8171:21;;;;;;;;;;;;;;;:58;;;;8240:46;8266:10;8278:7;8240:12;;;;;;;;;;;:25;;;;:46;;;;;:::i;:::-;7055:4;7041:11;;:18;;;;;;;;;;;;;;;;;;8028:266;:::o;14437:919::-;14528:12;14105:28;14124:8;14105:18;:28::i;:::-;14104:29;14096:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14577:1;14566:7;:12;;14558:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14631:34;14643:12;14657:7;14631:11;:34::i;:::-;14719:43;14754:7;14719:16;:30;14736:12;14719:30;;;;;;;;;;;;;;;;:34;;:43;;;;:::i;:::-;14686:16;:30;14703:12;14686:30;;;;;;;;;;;;;;;:76;;;;14773:20;14796:16;:30;14813:12;14796:30;;;;;;;;;;;;;;;;14773:53;;15018:21;15042:70;15105:6;15043:56;15072:25;15090:6;15072:13;;:17;;:25;;;;:::i;:::-;15060:8;:38;15043:12;:16;;:56;;;;:::i;:::-;15042:62;;:70;;;;:::i;:::-;15018:94;;15147:13;15123:7;:21;15131:12;15123:21;;;;;;;;;;;;;;;:37;;;;15199:15;15171:11;:25;15183:12;15171:25;;;;;;;;;;;;;;;:43;;;;15251:38;15273:15;;15252;15251:21;;:38;;;;:::i;:::-;15225:9;:23;15235:12;15225:23;;;;;;;;;;;;;;;:64;;;;15314:12;15307:41;;;15328:7;15337:10;15307:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;14185:1;;14437:919;;;:::o;789:181::-;847:7;867:9;883:1;879;:5;867:17;;908:1;903;:6;;895:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;961:1;954:8;;;789:181;;;;:::o;1122:192::-;1208:7;1241:1;1236;:6;;1244:12;1228:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1228:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1268:9;1284:1;1280;:5;1268:17;;1305:1;1298:8;;;1122:192;;;;;:::o;3708:176::-;3791:85;3810:5;3840;:14;;;:23;;;;3865:2;3869:5;3817:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3817:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3817:58:0;3791:18;:85::i;:::-;3708:176;;;:::o;7713:307::-;6736:11;;;;;;;;;;;6728:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6875:5;6861:11;;:19;;;;;;;;;;;;;;;;;;7838:25;7855:7;7838:12;;:16;;:25;;;;:::i;:::-;7823:12;:40;;;;7900:36;7928:7;7900:9;:23;7910:12;7900:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;7874:9;:23;7884:12;7874:23;;;;;;;;;;;;;;;:62;;;;7947:65;7977:10;7997:4;8004:7;7947:12;;;;;;;;;;;:29;;;;:65;;;;;;:::i;:::-;7055:4;7041:11;;:18;;;;;;;;;;;;;;;;;;7713:307;;:::o;1322:471::-;1380:7;1630:1;1625;:6;1621:47;;;1655:1;1648:8;;;;1621:47;1680:9;1696:1;1692;:5;1680:17;;1725:1;1720;1716;:5;;;;;;:10;1708:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1784:1;1777:8;;;1322:471;;;;;:::o;1801:132::-;1859:7;1886:39;1890:1;1893;1886:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1879:46;;1801:132;;;;:::o;5364:1114::-;5968:27;5976:5;5968:25;;;:27::i;:::-;5960:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6105:12;6119:23;6154:5;6146:19;;6166:4;6146:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6146:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;6104:67:0;;;;6190:7;6182:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6271:1;6251:10;:17;:21;6247:224;;;6393:10;6382:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6382:30:0;;;;;;;;;;;;;;;;6374:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6247:224;5364:1114;;;;:::o;3892:204::-;3993:95;4012:5;4042;:18;;;:27;;;;4071:4;4077:2;4081:5;4019:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4019:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;4019:68:0;3993:18;:95::i;:::-;3892:204;;;;:::o;1941:191::-;2027:7;2059:1;2055;:5;2062:12;2047:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2047:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2086:9;2102:1;2098;:5;;;;;;2086:17;;2123:1;2116:8;;;1941:191;;;;;:::o

Swarm Source

bzzr://384bc01f2bcb15d573edc6f1c67af1d949e16f42e78f94aa600077d9f92b54fb

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.