Contract Address Details

0x7e42F38549AE5B181D985a2a601E1BD44B56319f

Contract Name
CROBeansMiner
Creator
0x2afc12–e0e4b6 at 0x1625ab–9de2a3
Balance
0 CRO ( )
Tokens
Fetching tokens...
Transactions
1,980 Transactions
Transfers
1,144 Transfers
Gas Used
246,771,503
Last Balance Update
15708480
Contract name:
CROBeansMiner




Optimization enabled
true
Compiler version
v0.8.9+commit.e5eed63a




Optimization runs
200
EVM Version
default




Verified at
2022-05-22T14:39:05.154319Z

Constructor Arguments

0000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b6

Arg [0] (address) : 0x2afc1284b4b2420f7564cbeba57f87301be0e4b6
Arg [1] (address) : 0x2afc1284b4b2420f7564cbeba57f87301be0e4b6
Arg [2] (address) : 0x2afc1284b4b2420f7564cbeba57f87301be0e4b6
Arg [3] (address) : 0x2afc1284b4b2420f7564cbeba57f87301be0e4b6
Arg [4] (address) : 0x2afc1284b4b2420f7564cbeba57f87301be0e4b6
Arg [5] (address) : 0x2afc1284b4b2420f7564cbeba57f87301be0e4b6

              

Contract source code

// File: contracts/CROBeansMiner.sol


pragma solidity 0.8.9;

interface IToken {
    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 mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }


  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a / b;
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

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

contract CROBeansMiner {
    using SafeMath for uint256;

    IToken public token_USDC;
    address erctoken = 0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23; /** CRO mainnet **/
    uint256 public EGGS_TO_HIRE_1MINERS = 1080000;
    uint256 public PERCENTS_DIVIDER = 1000;
    uint256 public REFERRAL = 80;
    uint256 public TAX = 10;
    uint256 public MARKET_EGGS_DIVISOR = 2; // 50%
    uint256 public MARKET_EGGS_DIVISOR_SELL = 1; // 100%

    uint256 public MIN_INVEST_LIMIT = 50 * 1e18; /** 50 CRO  **/
    uint256 public WALLET_DEPOSIT_LIMIT = 50000 * 1e18; /** 50000 CRO  **/

	uint256 public COMPOUND_BONUS = 40; /** 2.5% **/
	uint256 public COMPOUND_BONUS_MAX_TIMES = 10; /** 10 times / 5 days. **/
    uint256 public COMPOUND_STEP = 12 * 60 * 60; /** every 12 hours. **/

    uint256 public WITHDRAWAL_TAX = 800;
    uint256 public COMPOUND_FOR_NO_TAX_WITHDRAWAL = 10; // compound days, for no tax withdrawal.

    uint256 public totalStaked;
    uint256 public totalDeposits;
    uint256 public totalCompound;
    uint256 public totalRefBonus;
    uint256 public totalWithdrawn;

    uint256 public marketEggs;
    uint256 PSN = 10000;
    uint256 PSNH = 5000;
    bool public contractStarted;

	uint256 public CUTOFF_STEP = 48 * 60 * 60; /** 48 hours  **/
	uint256 public WITHDRAW_COOLDOWN = 4 * 60 * 60; /** 4 hours  **/

    address public owner;
    address public dev1;
    address public dev2;
    address public dev3;
    address public prtnr1;
    address public prtnr2;
    address public mkt;

    struct User {
        uint256 initialDeposit;
        uint256 userDeposit;
        uint256 miners;
        uint256 claimedEggs;
        uint256 lastHatch;
        address referrer;
        uint256 referralsCount;
        uint256 referralEggRewards;
        uint256 totalWithdrawn;
        uint256 dailyCompoundBonus;
        uint256 lastWithdrawTime;
    }

    mapping(address => User) public users;

    constructor(address _dev1, address _dev2, address _dev3, address _prtnr1, address _prtnr2, address _mkt) {
		require(!isContract(_dev1) && !isContract(_dev2) && !isContract(_dev3) && !isContract(_prtnr1) && !isContract(_prtnr2) && !isContract(_mkt));
        owner = msg.sender;
        dev1 = _dev1;
        dev2 = _dev2;
        dev3 = _dev3;
        prtnr1 = _prtnr1;
        prtnr2 = _prtnr2;
        mkt = _mkt;
        token_USDC = IToken(erctoken);
    }

	function isContract(address addr) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }

    function hireMoreFarmers(bool isCompound) public {
        User storage user = users[msg.sender];
        require(contractStarted, "Contract not yet Started.");

        uint256 eggsUsed = getMyEggs();
        uint256 eggsForCompound = eggsUsed;

        if(isCompound) {
            uint256 dailyCompoundBonus = getDailyCompoundBonus(msg.sender, eggsForCompound);
            eggsForCompound = eggsForCompound.add(dailyCompoundBonus);
            uint256 eggsUsedValue = calculateEggSell(eggsForCompound);
            user.userDeposit = user.userDeposit.add(eggsUsedValue);
            totalCompound = totalCompound.add(eggsUsedValue);
        } 

        if(block.timestamp.sub(user.lastHatch) >= COMPOUND_STEP) {
            if(user.dailyCompoundBonus < COMPOUND_BONUS_MAX_TIMES) {
                user.dailyCompoundBonus = user.dailyCompoundBonus.add(1);
            }
        }
        
        user.miners = user.miners.add(eggsForCompound.div(EGGS_TO_HIRE_1MINERS));
        user.claimedEggs = 0;
        user.lastHatch = block.timestamp;

        marketEggs = marketEggs.add(eggsUsed.div(MARKET_EGGS_DIVISOR));
    }

    function sellCrops() public{
        require(contractStarted, "Contract not yet Started.");

        User storage user = users[msg.sender];
        uint256 hasEggs = getMyEggs();
        uint256 eggValue = calculateEggSell(hasEggs);
        
        /** 
            if user compound < to mandatory compound days**/
        if(user.dailyCompoundBonus < COMPOUND_FOR_NO_TAX_WITHDRAWAL){
            //daily compound bonus count will not reset and eggValue will be deducted with 60% feedback tax.
            eggValue = eggValue.sub(eggValue.mul(WITHDRAWAL_TAX).div(PERCENTS_DIVIDER));
        }else{
            //set daily compound bonus count to 0 and eggValue will remain without deductions
             user.dailyCompoundBonus = 0;   
        }
        
        user.lastWithdrawTime = block.timestamp;
        user.claimedEggs = 0;  
        user.lastHatch = block.timestamp;
        marketEggs = marketEggs.add(hasEggs.div(MARKET_EGGS_DIVISOR_SELL));
        
        if(getBalance() < eggValue) {
            eggValue = getBalance();
        }

        uint256 eggsPayout = eggValue.sub(payFees(eggValue));
        token_USDC.transfer(msg.sender, eggsPayout);
        user.totalWithdrawn = user.totalWithdrawn.add(eggsPayout);
        totalWithdrawn = totalWithdrawn.add(eggsPayout);
    }

    function hireFarmers(address ref, uint256 amount) public{
        require(contractStarted, "Contract not yet Started.");
        User storage user = users[msg.sender];
        require(amount >= MIN_INVEST_LIMIT, "Mininum investment not met.");
        require(user.initialDeposit.add(amount) <= WALLET_DEPOSIT_LIMIT, "Max deposit limit reached.");
        
        token_USDC.transferFrom(address(msg.sender), address(this), amount);
        uint256 eggsBought = calculateEggBuy(amount, getBalance().sub(amount));
        user.userDeposit = user.userDeposit.add(amount);
        user.initialDeposit = user.initialDeposit.add(amount);
        user.claimedEggs = user.claimedEggs.add(eggsBought);

        if (user.referrer == address(0)) {
            if (ref != msg.sender) {
                user.referrer = ref;
            }

            address upline1 = user.referrer;
            if (upline1 != address(0)) {
                users[upline1].referralsCount = users[upline1].referralsCount.add(1);
            }
        }
                
        if (user.referrer != address(0)) {
            address upline = user.referrer;
            if (upline != address(0)) {
                uint256 refRewards = amount.mul(REFERRAL).div(PERCENTS_DIVIDER);
                token_USDC.transfer(upline, refRewards);
                users[upline].referralEggRewards = users[upline].referralEggRewards.add(refRewards);
                totalRefBonus = totalRefBonus.add(refRewards);
            }
        }

        uint256 eggsPayout = payFees(amount);
        totalStaked = totalStaked.add(amount.sub(eggsPayout));
        totalDeposits = totalDeposits.add(1);
        hireMoreFarmers(false);
    }

    function payFees(uint256 eggValue) internal returns(uint256){
        uint256 tax = eggValue.mul(TAX).div(PERCENTS_DIVIDER);
        token_USDC.transfer(dev1, tax);
        token_USDC.transfer(dev2, tax);
        token_USDC.transfer(dev3, tax);
        token_USDC.transfer(prtnr1, tax);
        token_USDC.transfer(prtnr2, tax);
        token_USDC.transfer(mkt, tax);
        return tax.mul(6);
    }

    function getDailyCompoundBonus(address _adr, uint256 amount) public view returns(uint256){
        if(users[_adr].dailyCompoundBonus == 0) {
            return 0;
        } else {
            uint256 totalBonus = users[_adr].dailyCompoundBonus.mul(COMPOUND_BONUS); 
            uint256 result = amount.mul(totalBonus).div(PERCENTS_DIVIDER);
            return result;
        }
    }

    function getUserInfo(address _adr) public view returns(uint256 _initialDeposit, uint256 _userDeposit, uint256 _miners,
     uint256 _claimedEggs, uint256 _lastHatch, address _referrer, uint256 _referrals,
	 uint256 _totalWithdrawn, uint256 _referralEggRewards, uint256 _dailyCompoundBonus, uint256 _lastWithdrawTime) {
         _initialDeposit = users[_adr].initialDeposit;
         _userDeposit = users[_adr].userDeposit;
         _miners = users[_adr].miners;
         _claimedEggs = users[_adr].claimedEggs;
         _lastHatch = users[_adr].lastHatch;
         _referrer = users[_adr].referrer;
         _referrals = users[_adr].referralsCount;
         _totalWithdrawn = users[_adr].totalWithdrawn;
         _referralEggRewards = users[_adr].referralEggRewards;
         _dailyCompoundBonus = users[_adr].dailyCompoundBonus;
         _lastWithdrawTime = users[_adr].lastWithdrawTime;
	}

    function initialize(address addr, uint256 amount) public{
        if (!contractStarted) {
    		if (msg.sender == mkt) {
    		    require(marketEggs == 0);
    			contractStarted = true;
                marketEggs = 86400000000;
                hireFarmers(addr, amount);
    		} else revert("Contract not yet started.");
    	}
    }

    function getBalance() public view returns (uint256) {
        return token_USDC.balanceOf(address(this));
	}

    function getTimeStamp() public view returns (uint256) {
        return block.timestamp;
    }

    function getAvailableEarnings(address _adr) public view returns(uint256) {
        uint256 userEggs = users[_adr].claimedEggs.add(getEggsSinceLastHatch(_adr));
        return calculateEggSell(userEggs);
    }

    function calculateTrade(uint256 rt,uint256 rs, uint256 bs) public view returns(uint256){
        return SafeMath.div(SafeMath.mul(PSN, bs), SafeMath.add(PSNH, SafeMath.div(SafeMath.add(SafeMath.mul(PSN, rs), SafeMath.mul(PSNH, rt)), rt)));
    }

    function calculateEggSell(uint256 eggs) public view returns(uint256){
        return calculateTrade(eggs, marketEggs, getBalance());
    }

    function calculateEggBuy(uint256 eth,uint256 contractBalance) public view returns(uint256){
        return calculateTrade(eth, contractBalance, marketEggs);
    }

    function calculateEggBuySimple(uint256 eth) public view returns(uint256){
        return calculateEggBuy(eth, getBalance());
    }

    function getEggsYield(uint256 amount) public view returns(uint256,uint256) {
        uint256 eggsAmount = calculateEggBuy(amount , getBalance().add(amount).sub(amount));
        uint256 miners = eggsAmount.div(EGGS_TO_HIRE_1MINERS);
        uint256 day = 1 days;
        uint256 eggsPerDay = day.mul(miners);
        uint256 earningsPerDay = calculateEggSellForYield(eggsPerDay, amount);
        return(miners, earningsPerDay);
    }

    function calculateEggSellForYield(uint256 eggs,uint256 amount) public view returns(uint256){
        return calculateTrade(eggs,marketEggs, getBalance().add(amount));
    }

    function getSiteInfo() public view returns (uint256 _totalStaked, uint256 _totalDeposits, uint256 _totalCompound, uint256 _totalRefBonus) {
        return (totalStaked, totalDeposits, totalCompound, totalRefBonus);
    }

    function getMyMiners() public view returns(uint256){
        return users[msg.sender].miners;
    }

    function getMyEggs() public view returns(uint256){
        return users[msg.sender].claimedEggs.add(getEggsSinceLastHatch(msg.sender));
    }

    function getEggsSinceLastHatch(address adr) public view returns(uint256){
        uint256 secondsSinceLastHatch = block.timestamp.sub(users[adr].lastHatch);
                            /** get min time. **/
        uint256 cutoffTime = min(secondsSinceLastHatch, CUTOFF_STEP);
        uint256 secondsPassed = min(EGGS_TO_HIRE_1MINERS, cutoffTime);
        return secondsPassed.mul(users[adr].miners);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return a < b ? a : b;
    }

    /** wallet addresses setters **/
    function CHANGE_OWNERSHIP(address value) external {
        require(msg.sender == owner, "Admin use only.");
        owner = value;
    }

    function CHANGE_DEV1(address value) external {
        require(msg.sender == owner, "Admin use only.");
        dev1 = value;
    }

    function CHANGE_DEV2(address value) external {
        require(msg.sender == owner, "Admin use only.");
        dev2 = value;
    }

    function CHANGE_DEV3(address value) external {
        require(msg.sender == owner, "Admin use only.");
        dev3 = value;
    }

    function CHANGE_PARTNER1(address value) external {
        require(msg.sender == owner, "Admin use only.");
        prtnr1 = value;
    }

    function CHANGE_PARTNER2(address value) external {
        require(msg.sender == owner, "Admin use only.");
        prtnr2 = value;
    }

    function CHANGE_MKT(address value) external {
        require(msg.sender == owner, "Admin use only.");
        mkt = value;
    }

    /** percentage setters **/

    // 2592000 - 3%, 2160000 - 4%, 1728000 - 5%, 1440000 - 6%, 1200000 - 7%, 1080000 - 8%
    // 959000 - 9%, 864000 - 10%, 720000 - 12%, 575424 - 15%, 540000 - 16%, 479520 - 18%
    
    function PRC_EGGS_TO_HIRE_1MINERS(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value >= 479520 && value <= 2592000); /** min 3% max 12%**/
        EGGS_TO_HIRE_1MINERS = value;
    }

    function PRC_TAX(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value <= 100); /** 10% max **/
        TAX = value;
    }    

    function PRC_REFERRAL(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value >= 10 && value <= 100); /** 10% max **/
        REFERRAL = value;
    }

    function PRC_MARKET_EGGS_DIVISOR(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value <= 50); /** 50 = 2% **/
        MARKET_EGGS_DIVISOR = value;
    }

    /** withdrawal tax **/
    function SET_WITHDRAWAL_TAX(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value <= 800); /** Max Tax is 80% or lower **/
        WITHDRAWAL_TAX = value;
    }
    
    function SET_COMPOUND_FOR_NO_TAX_WITHDRAWAL(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        COMPOUND_FOR_NO_TAX_WITHDRAWAL = value;
    }

    function BONUS_DAILY_COMPOUND(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value >= 10 && value <= 900);
        COMPOUND_BONUS = value;
    }

    function BONUS_DAILY_COMPOUND_BONUS_MAX_TIMES(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value <= 30);
        COMPOUND_BONUS_MAX_TIMES = value;
    }

    function BONUS_COMPOUND_STEP(uint256 value) external {
        require(msg.sender == owner, "Admin use only.");
        require(value <= 24);
        COMPOUND_STEP = value * 60 * 60;
    }

    function SET_MIN_INVEST_LIMIT(uint256 value) external {
        require(msg.sender == owner, "Admin use only");
        MIN_INVEST_LIMIT = value * 1e18;
    }

    function SET_CUTOFF_STEP(uint256 value) external {
        require(msg.sender == owner, "Admin use only");
        CUTOFF_STEP = value * 60 * 60;
    }

    function SET_WITHDRAW_COOLDOWN(uint256 value) external {
        require(msg.sender == owner, "Admin use only");
        require(value <= 24);
        WITHDRAW_COOLDOWN = value * 60 * 60;
    }

    function SET_WALLET_DEPOSIT_LIMIT(uint256 value) external {
        require(msg.sender == owner, "Admin use only");
        require(value >= 20);
        WALLET_DEPOSIT_LIMIT = value * 1e18;
    }
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_dev1","internalType":"address"},{"type":"address","name":"_dev2","internalType":"address"},{"type":"address","name":"_dev3","internalType":"address"},{"type":"address","name":"_prtnr1","internalType":"address"},{"type":"address","name":"_prtnr2","internalType":"address"},{"type":"address","name":"_mkt","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"BONUS_COMPOUND_STEP","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"BONUS_DAILY_COMPOUND","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"BONUS_DAILY_COMPOUND_BONUS_MAX_TIMES","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"CHANGE_DEV1","inputs":[{"type":"address","name":"value","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"CHANGE_DEV2","inputs":[{"type":"address","name":"value","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"CHANGE_DEV3","inputs":[{"type":"address","name":"value","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"CHANGE_MKT","inputs":[{"type":"address","name":"value","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"CHANGE_OWNERSHIP","inputs":[{"type":"address","name":"value","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"CHANGE_PARTNER1","inputs":[{"type":"address","name":"value","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"CHANGE_PARTNER2","inputs":[{"type":"address","name":"value","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"COMPOUND_BONUS","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"COMPOUND_BONUS_MAX_TIMES","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"COMPOUND_FOR_NO_TAX_WITHDRAWAL","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"COMPOUND_STEP","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CUTOFF_STEP","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"EGGS_TO_HIRE_1MINERS","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"MARKET_EGGS_DIVISOR","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"MARKET_EGGS_DIVISOR_SELL","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"MIN_INVEST_LIMIT","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"PERCENTS_DIVIDER","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"PRC_EGGS_TO_HIRE_1MINERS","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"PRC_MARKET_EGGS_DIVISOR","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"PRC_REFERRAL","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"PRC_TAX","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"REFERRAL","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"SET_COMPOUND_FOR_NO_TAX_WITHDRAWAL","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"SET_CUTOFF_STEP","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"SET_MIN_INVEST_LIMIT","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"SET_WALLET_DEPOSIT_LIMIT","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"SET_WITHDRAWAL_TAX","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"SET_WITHDRAW_COOLDOWN","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"TAX","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"WALLET_DEPOSIT_LIMIT","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"WITHDRAWAL_TAX","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"WITHDRAW_COOLDOWN","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"calculateEggBuy","inputs":[{"type":"uint256","name":"eth","internalType":"uint256"},{"type":"uint256","name":"contractBalance","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"calculateEggBuySimple","inputs":[{"type":"uint256","name":"eth","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"calculateEggSell","inputs":[{"type":"uint256","name":"eggs","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"calculateEggSellForYield","inputs":[{"type":"uint256","name":"eggs","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"calculateTrade","inputs":[{"type":"uint256","name":"rt","internalType":"uint256"},{"type":"uint256","name":"rs","internalType":"uint256"},{"type":"uint256","name":"bs","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"contractStarted","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"dev1","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"dev2","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"dev3","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getAvailableEarnings","inputs":[{"type":"address","name":"_adr","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getBalance","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getDailyCompoundBonus","inputs":[{"type":"address","name":"_adr","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getEggsSinceLastHatch","inputs":[{"type":"address","name":"adr","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"}],"name":"getEggsYield","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getMyEggs","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getMyMiners","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_totalStaked","internalType":"uint256"},{"type":"uint256","name":"_totalDeposits","internalType":"uint256"},{"type":"uint256","name":"_totalCompound","internalType":"uint256"},{"type":"uint256","name":"_totalRefBonus","internalType":"uint256"}],"name":"getSiteInfo","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getTimeStamp","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_initialDeposit","internalType":"uint256"},{"type":"uint256","name":"_userDeposit","internalType":"uint256"},{"type":"uint256","name":"_miners","internalType":"uint256"},{"type":"uint256","name":"_claimedEggs","internalType":"uint256"},{"type":"uint256","name":"_lastHatch","internalType":"uint256"},{"type":"address","name":"_referrer","internalType":"address"},{"type":"uint256","name":"_referrals","internalType":"uint256"},{"type":"uint256","name":"_totalWithdrawn","internalType":"uint256"},{"type":"uint256","name":"_referralEggRewards","internalType":"uint256"},{"type":"uint256","name":"_dailyCompoundBonus","internalType":"uint256"},{"type":"uint256","name":"_lastWithdrawTime","internalType":"uint256"}],"name":"getUserInfo","inputs":[{"type":"address","name":"_adr","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"hireFarmers","inputs":[{"type":"address","name":"ref","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"hireMoreFarmers","inputs":[{"type":"bool","name":"isCompound","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"address","name":"addr","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"marketEggs","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"mkt","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"prtnr1","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"prtnr2","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"sellCrops","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IToken"}],"name":"token_USDC","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalCompound","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalDeposits","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalRefBonus","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalStaked","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalWithdrawn","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"initialDeposit","internalType":"uint256"},{"type":"uint256","name":"userDeposit","internalType":"uint256"},{"type":"uint256","name":"miners","internalType":"uint256"},{"type":"uint256","name":"claimedEggs","internalType":"uint256"},{"type":"uint256","name":"lastHatch","internalType":"uint256"},{"type":"address","name":"referrer","internalType":"address"},{"type":"uint256","name":"referralsCount","internalType":"uint256"},{"type":"uint256","name":"referralEggRewards","internalType":"uint256"},{"type":"uint256","name":"totalWithdrawn","internalType":"uint256"},{"type":"uint256","name":"dailyCompoundBonus","internalType":"uint256"},{"type":"uint256","name":"lastWithdrawTime","internalType":"uint256"}],"name":"users","inputs":[{"type":"address","name":"","internalType":"address"}]}]
            

Contract Creation Code

0x6080604052600180546001600160a01b031916735c7f8a570d578ed84e63fdfa7b1ee72deae1ae2317815562107ac060029081556103e86003556050600455600a60058190556006919091556007919091556802b5e3af16b1880000600855690a968163f0a57b40000060095560288155600b81905561a8c0600c55610320600d55600e556127106015556113886016556202a300601855613840601955348015620000aa57600080fd5b506040516200223738038062002237833981016040819052620000cd91620001c0565b853b158015620000dc5750843b155b8015620000e85750833b155b8015620000f45750823b155b8015620001005750813b155b80156200010c5750803b155b6200011657600080fd5b601a8054336001600160a01b031991821617909155601b805482166001600160a01b03988916179055601c8054821696881696909617909555601d8054861694871694909417909355601e8054851692861692909217909155601f805484169185169190911790556020805483169184169190911790556001546000805491909316911617905562000241565b80516001600160a01b0381168114620001bb57600080fd5b919050565b60008060008060008060c08789031215620001da57600080fd5b620001e587620001a3565b9550620001f560208801620001a3565b94506200020560408801620001a3565b93506200021560608801620001a3565b92506200022560808801620001a3565b91506200023560a08801620001a3565b90509295509295509295565b611fe680620002516000396000f3fe608060405234801561001057600080fd5b50600436106104125760003560e01c80637a62ead711610220578063950d91e911610130578063cc3e9c78116100b8578063d7c8843b11610087578063d7c8843b14610987578063da235b221461099a578063e6dc9558146109a0578063e7576943146109b3578063f6f62886146109c657600080fd5b8063cc3e9c781461094f578063cd329fc314610962578063cd6dc6871461096b578063d7206d5d1461097e57600080fd5b8063a87430ba116100ff578063a87430ba14610891578063bdd1ca2714610902578063bfa9f3041461092a578063c63568c71461093d578063c688f0fb1461094657600080fd5b8063950d91e91461084f578063959c95b3146108585780639b9cb69f1461086b578063a327c45d1461087e57600080fd5b80637ee28e3c116101b35780638cb1a04f116101825780638cb1a04f146107f05780638da5cb5b146108035780638e31632714610816578063922a79ae1461082957806393e5a3a21461083c57600080fd5b80637ee28e3c146107ae5780638013f3a7146107c1578063817b1cd2146107d45780638a315efd146107dd57600080fd5b80637d882097116101ef5780637d882097146107765780637db07c9d1461077f5780637e2150c4146107885780637e56fde51461079b57600080fd5b80637a62ead71461072a5780637b0428d71461073d5780637c8e4b4c146107505780637cc5b1e61461076357600080fd5b80633578584f1161032657806359eec895116102ae57806368f58b031161027d57806368f58b03146106e957806369b11dd5146106f25780636f969d28146106fb578063752a26281461070e578063796ed7671461071757600080fd5b806359eec895146105e95780636386c1c7146105f257806364c03a5e146106c357806366b0154c146106d657600080fd5b80634b319713116102f55780634b319713146105865780634ce870531461058f57806350637dbd146105bb578063570c2979146105ce57806357386225146105e157600080fd5b80633578584f146105595780633a6cac7f1461056257806343ce74221461056b57806345a6a6e01461057357600080fd5b8063195a7339116103a9578063298ea31011610378578063298ea310146104fa5780632b039d0e1461050d5780632e9392bb146105205780632fe3491514610529578063333f57b31461053c57600080fd5b8063195a7339146104b8578063229824c4146104c15780632362ce89146104d457806326fd8422146104e757600080fd5b80630d4b511a116103e55780630d4b511a1461047f57806312065fe0146104945780631848b8dc1461049c57806318c819d8146104a557600080fd5b806301c234a8146104175780630420c98e1461043357806307aeb7f01461043c5780630a76e5ed14610467575b600080fd5b61042060035481565b6040519081526020015b60405180910390f35b610420600d5481565b601e5461044f906001600160a01b031681565b6040516001600160a01b03909116815260200161042a565b33600090815260216020526040902060020154610420565b61049261048d366004611d7c565b6109cf565b005b610420610a24565b61042060095481565b6104926104b3366004611da8565b610aa5565b61042060025481565b6104206104cf366004611dc5565b610bcd565b601d5461044f906001600160a01b031681565b6104206104f5366004611df1565b610c1a565b610492610508366004611e13565b610c32565b61049261051b366004611d7c565b610c6f565b61042060145481565b610492610537366004611d7c565b610cbb565b6017546105499060ff1681565b604051901515815260200161042a565b61042060185481565b61042060075481565b610420610d07565b610492610581366004611e13565b610d2e565b61042060135481565b600f5460105460115460125460408051948552602085019390935291830152606082015260800161042a565b6104206105c9366004611e2c565b610d82565b6104926105dc366004611e13565b610e02565b610492610e4c565b61042060065481565b610668610600366004611d7c565b6001600160a01b03908116600090815260216020526040902080546001820154600283015460038401546004850154600586015460068701546008880154600789015460098a0154600a909a0154989b979a9699959894979390961695919490939192909190565b604080519b8c5260208c019a909a52988a0197909752606089019590955260808801939093526001600160a01b0390911660a087015260c086015260e08501526101008401526101208301526101408201526101600161042a565b6104206106d1366004611d7c565b610fdf565b6104926106e4366004611d7c565b611022565b61042060055481565b61042060125481565b610492610709366004611e13565b61106e565b610420600c5481565b610492610725366004611d7c565b6110b9565b610492610738366004611e13565b611105565b61049261074b366004611e2c565b611142565b61049261075e366004611e13565b611503565b60205461044f906001600160a01b031681565b61042060105481565b61042060115481565b610492610796366004611d7c565b611549565b6104206107a9366004611e13565b611595565b6104926107bc366004611e13565b6115a3565b601c5461044f906001600160a01b031681565b610420600f5481565b601f5461044f906001600160a01b031681565b6104926107fe366004611d7c565b6115f3565b601a5461044f906001600160a01b031681565b610420610824366004611e13565b61163f565b610492610837366004611e13565b611650565b60005461044f906001600160a01b031681565b61042060195481565b610492610866366004611e13565b611692565b610492610879366004611e13565b6116e6565b601b5461044f906001600160a01b031681565b61066861089f366004611d7c565b602160205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a909a0154989997989697959694956001600160a01b0390941694929391929091908b565b610915610910366004611e13565b611723565b6040805192835260208301919091520161042a565b610492610938366004611e13565b61178a565b61042060045481565b610420600b5481565b61042061095d366004611df1565b6117c8565b61042060085481565b610492610979366004611e2c565b6117dd565b610420600a5481565b610420610995366004611d7c565b611873565b42610420565b6104926109ae366004611e13565b6118ef565b6104926109c1366004611e13565b61193d565b610420600e5481565b601a546001600160a01b03163314610a025760405162461bcd60e51b81526004016109f990611e56565b60405180910390fd5b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015610a6857600080fd5b505afa158015610a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa09190611e7f565b905090565b33600090815260216020526040902060175460ff16610ad65760405162461bcd60e51b81526004016109f990611e98565b6000610ae0610d07565b9050808315610b38576000610af53383610d82565b9050610b01828261196c565b91506000610b0e8361163f565b6001860154909150610b20908261196c565b6001860155601154610b32908261196c565b60115550505b600c546004840154610b4b90429061198b565b10610b7457600b5483600901541015610b74576009830154610b6e90600161196c565b60098401555b610b97610b8c600254836119a790919063ffffffff16565b60028501549061196c565b600284015560006003840155426004840155600654610bc490610bbb9084906119a7565b6014549061196c565b60145550505050565b6000610c12610bde601554846119b4565b610c0d601654610c02610c07610bf66015548a6119b4565b610c026016548c6119b4565b61196c565b896119a7565b6119a7565b949350505050565b6000610c298383601454610bcd565b90505b92915050565b601a546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016109f990611e56565b6064811115610c6a57600080fd5b600555565b601a546001600160a01b03163314610c995760405162461bcd60e51b81526004016109f990611e56565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b03163314610ce55760405162461bcd60e51b81526004016109f990611e56565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610aa0610d1533611873565b336000908152602160205260409020600301549061196c565b601a546001600160a01b03163314610d585760405162461bcd60e51b81526004016109f990611ecf565b6018811115610d6657600080fd5b610d7181603c611f0d565b610d7c90603c611f0d565b60195550565b6001600160a01b038216600090815260216020526040812060090154610daa57506000610c2c565b600a546001600160a01b0384166000908152602160205260408120600901549091610dd591906119b4565b90506000610df8600354610df284876119b490919063ffffffff16565b906119a7565b9250610c2c915050565b601a546001600160a01b03163314610e2c5760405162461bcd60e51b81526004016109f990611e56565b600a8110158015610e3e575060648111155b610e4757600080fd5b600455565b60175460ff16610e6e5760405162461bcd60e51b81526004016109f990611e98565b33600090815260216020526040812090610e86610d07565b90506000610e938261163f565b9050600e5483600901541015610ecf57610ec8610ec1600354610df2600d54856119b490919063ffffffff16565b829061198b565b9050610ed7565b600060098401555b42600a8401819055600060038501556004840155600754610efd90610bbb9084906119a7565b60145580610f09610a24565b1015610f1a57610f17610a24565b90505b6000610f2f610f28836119e9565b839061198b565b60005460405163a9059cbb60e01b8152336004820152602481018390529192506001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610f7c57600080fd5b505af1158015610f90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb49190611f2c565b506008840154610fc4908261196c565b6008850155601354610fd6908261196c565b60135550505050565b600080611010610fee84611873565b6001600160a01b0385166000908152602160205260409020600301549061196c565b905061101b8161163f565b9392505050565b601a546001600160a01b0316331461104c5760405162461bcd60e51b81526004016109f990611e56565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b031633146110985760405162461bcd60e51b81526004016109f990611e56565b600a81101580156110ab57506103848111155b6110b457600080fd5b600a55565b601a546001600160a01b031633146110e35760405162461bcd60e51b81526004016109f990611e56565b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b0316331461112f5760405162461bcd60e51b81526004016109f990611e56565b603281111561113d57600080fd5b600655565b60175460ff166111645760405162461bcd60e51b81526004016109f990611e98565b3360009081526021602052604090206008548210156111c55760405162461bcd60e51b815260206004820152601b60248201527f4d696e696e756d20696e766573746d656e74206e6f74206d65742e000000000060448201526064016109f9565b60095481546111d4908461196c565b11156112225760405162461bcd60e51b815260206004820152601a60248201527f4d6178206465706f736974206c696d697420726561636865642e00000000000060448201526064016109f9565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401602060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190611f2c565b5060006112c5836104f5856112bf610a24565b9061198b565b60018301549091506112d7908461196c565b600183015581546112e8908461196c565b825560038201546112f9908261196c565b600383015560058201546001600160a01b0316611398576001600160a01b038416331461133e576005820180546001600160a01b0319166001600160a01b0386161790555b60058201546001600160a01b03168015611396576001600160a01b03811660009081526021602052604090206006015461137990600161196c565b6001600160a01b0382166000908152602160205260409020600601555b505b60058201546001600160a01b0316156114bb5760058201546001600160a01b031680156114b95760006113dc600354610df2600454886119b490919063ffffffff16565b60005460405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb90604401602060405180830381600087803b15801561142c57600080fd5b505af1158015611440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114649190611f2c565b506001600160a01b03821660009081526021602052604090206007015461148b908261196c565b6001600160a01b0383166000908152602160205260409020600701556012546114b4908261196c565b601255505b505b60006114c6846119e9565b90506114de6114d5858361198b565b600f549061196c565b600f556010546114ef90600161196c565b6010556114fc6000610aa5565b5050505050565b601a546001600160a01b0316331461152d5760405162461bcd60e51b81526004016109f990611ecf565b61153881603c611f0d565b61154390603c611f0d565b60185550565b601a546001600160a01b031633146115735760405162461bcd60e51b81526004016109f990611e56565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c2c826104f5610a24565b601a546001600160a01b031633146115cd5760405162461bcd60e51b81526004016109f990611ecf565b60148110156115db57600080fd5b6115ed81670de0b6b3a7640000611f0d565b60095550565b601a546001600160a01b0316331461161d5760405162461bcd60e51b81526004016109f990611e56565b601d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c2c826014546104cf610a24565b601a546001600160a01b0316331461167a5760405162461bcd60e51b81526004016109f990611ecf565b61168c81670de0b6b3a7640000611f0d565b60085550565b601a546001600160a01b031633146116bc5760405162461bcd60e51b81526004016109f990611e56565b60188111156116ca57600080fd5b6116d581603c611f0d565b6116e090603c611f0d565b600c5550565b601a546001600160a01b031633146117105760405162461bcd60e51b81526004016109f990611e56565b601e81111561171e57600080fd5b600b55565b6000806000611742846104f5866112bf8861173c610a24565b9061196c565b9050600061175b600254836119a790919063ffffffff16565b905062015180600061176d82846119b4565b9050600061177b82896117c8565b93989397509295505050505050565b601a546001600160a01b031633146117b45760405162461bcd60e51b81526004016109f990611e56565b6103208111156117c357600080fd5b600d55565b6000610c29836014546104cf8561173c610a24565b60175460ff16611827576020546001600160a01b031633141561182b576014541561180757600080fd5b6017805460ff1916600117905564141dd760006014556118278282611142565b5050565b60405162461bcd60e51b815260206004820152601960248201527f436f6e7472616374206e6f742079657420737461727465642e0000000000000060448201526064016109f9565b6001600160a01b038116600090815260216020526040812060040154819061189c90429061198b565b905060006118ac82601854611d4a565b905060006118bc60025483611d4a565b6001600160a01b0386166000908152602160205260409020600201549091506118e69082906119b4565b95945050505050565b601a546001600160a01b031633146119195760405162461bcd60e51b81526004016109f990611e56565b62075120811015801561192f575062278d008111155b61193857600080fd5b600255565b601a546001600160a01b031633146119675760405162461bcd60e51b81526004016109f990611e56565b600e55565b6000806119798385611f49565b905083811015610c2957610c29611f61565b60008282111561199d5761199d611f61565b610c298284611f77565b600080610c128385611f8e565b6000826119c357506000610c2c565b60006119cf8385611f0d565b9050826119dc8583611f8e565b14610c2957610c29611f61565b600080611a07600354610df2600554866119b490919063ffffffff16565b600054601b5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb90604401602060405180830381600087803b158015611a5957600080fd5b505af1158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190611f2c565b50600054601c5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611ae257600080fd5b505af1158015611af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1a9190611f2c565b50600054601d5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611b6b57600080fd5b505af1158015611b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba39190611f2c565b50600054601e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2c9190611f2c565b50600054601f5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611c7d57600080fd5b505af1158015611c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb59190611f2c565b5060005460205460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611d0657600080fd5b505af1158015611d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3e9190611f2c565b5061101b8160066119b4565b6000818310611d595781610c29565b5090919050565b80356001600160a01b0381168114611d7757600080fd5b919050565b600060208284031215611d8e57600080fd5b610c2982611d60565b8015158114611da557600080fd5b50565b600060208284031215611dba57600080fd5b8135610c2981611d97565b600080600060608486031215611dda57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e0457600080fd5b50508035926020909101359150565b600060208284031215611e2557600080fd5b5035919050565b60008060408385031215611e3f57600080fd5b611e4883611d60565b946020939093013593505050565b6020808252600f908201526e20b236b4b7103ab9b29037b7363c9760891b604082015260600190565b600060208284031215611e9157600080fd5b5051919050565b60208082526019908201527f436f6e7472616374206e6f742079657420537461727465642e00000000000000604082015260600190565b6020808252600e908201526d41646d696e20757365206f6e6c7960901b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611f2757611f27611ef7565b500290565b600060208284031215611f3e57600080fd5b8151610c2981611d97565b60008219821115611f5c57611f5c611ef7565b500190565b634e487b7160e01b600052600160045260246000fd5b600082821015611f8957611f89611ef7565b500390565b600082611fab57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212206ad6d572b8236c6844ca682ce38d746cb9681a1a8bd560605ffc0f651934aef964736f6c634300080900330000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b60000000000000000000000002afc1284b4b2420f7564cbeba57f87301be0e4b6

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106104125760003560e01c80637a62ead711610220578063950d91e911610130578063cc3e9c78116100b8578063d7c8843b11610087578063d7c8843b14610987578063da235b221461099a578063e6dc9558146109a0578063e7576943146109b3578063f6f62886146109c657600080fd5b8063cc3e9c781461094f578063cd329fc314610962578063cd6dc6871461096b578063d7206d5d1461097e57600080fd5b8063a87430ba116100ff578063a87430ba14610891578063bdd1ca2714610902578063bfa9f3041461092a578063c63568c71461093d578063c688f0fb1461094657600080fd5b8063950d91e91461084f578063959c95b3146108585780639b9cb69f1461086b578063a327c45d1461087e57600080fd5b80637ee28e3c116101b35780638cb1a04f116101825780638cb1a04f146107f05780638da5cb5b146108035780638e31632714610816578063922a79ae1461082957806393e5a3a21461083c57600080fd5b80637ee28e3c146107ae5780638013f3a7146107c1578063817b1cd2146107d45780638a315efd146107dd57600080fd5b80637d882097116101ef5780637d882097146107765780637db07c9d1461077f5780637e2150c4146107885780637e56fde51461079b57600080fd5b80637a62ead71461072a5780637b0428d71461073d5780637c8e4b4c146107505780637cc5b1e61461076357600080fd5b80633578584f1161032657806359eec895116102ae57806368f58b031161027d57806368f58b03146106e957806369b11dd5146106f25780636f969d28146106fb578063752a26281461070e578063796ed7671461071757600080fd5b806359eec895146105e95780636386c1c7146105f257806364c03a5e146106c357806366b0154c146106d657600080fd5b80634b319713116102f55780634b319713146105865780634ce870531461058f57806350637dbd146105bb578063570c2979146105ce57806357386225146105e157600080fd5b80633578584f146105595780633a6cac7f1461056257806343ce74221461056b57806345a6a6e01461057357600080fd5b8063195a7339116103a9578063298ea31011610378578063298ea310146104fa5780632b039d0e1461050d5780632e9392bb146105205780632fe3491514610529578063333f57b31461053c57600080fd5b8063195a7339146104b8578063229824c4146104c15780632362ce89146104d457806326fd8422146104e757600080fd5b80630d4b511a116103e55780630d4b511a1461047f57806312065fe0146104945780631848b8dc1461049c57806318c819d8146104a557600080fd5b806301c234a8146104175780630420c98e1461043357806307aeb7f01461043c5780630a76e5ed14610467575b600080fd5b61042060035481565b6040519081526020015b60405180910390f35b610420600d5481565b601e5461044f906001600160a01b031681565b6040516001600160a01b03909116815260200161042a565b33600090815260216020526040902060020154610420565b61049261048d366004611d7c565b6109cf565b005b610420610a24565b61042060095481565b6104926104b3366004611da8565b610aa5565b61042060025481565b6104206104cf366004611dc5565b610bcd565b601d5461044f906001600160a01b031681565b6104206104f5366004611df1565b610c1a565b610492610508366004611e13565b610c32565b61049261051b366004611d7c565b610c6f565b61042060145481565b610492610537366004611d7c565b610cbb565b6017546105499060ff1681565b604051901515815260200161042a565b61042060185481565b61042060075481565b610420610d07565b610492610581366004611e13565b610d2e565b61042060135481565b600f5460105460115460125460408051948552602085019390935291830152606082015260800161042a565b6104206105c9366004611e2c565b610d82565b6104926105dc366004611e13565b610e02565b610492610e4c565b61042060065481565b610668610600366004611d7c565b6001600160a01b03908116600090815260216020526040902080546001820154600283015460038401546004850154600586015460068701546008880154600789015460098a0154600a909a0154989b979a9699959894979390961695919490939192909190565b604080519b8c5260208c019a909a52988a0197909752606089019590955260808801939093526001600160a01b0390911660a087015260c086015260e08501526101008401526101208301526101408201526101600161042a565b6104206106d1366004611d7c565b610fdf565b6104926106e4366004611d7c565b611022565b61042060055481565b61042060125481565b610492610709366004611e13565b61106e565b610420600c5481565b610492610725366004611d7c565b6110b9565b610492610738366004611e13565b611105565b61049261074b366004611e2c565b611142565b61049261075e366004611e13565b611503565b60205461044f906001600160a01b031681565b61042060105481565b61042060115481565b610492610796366004611d7c565b611549565b6104206107a9366004611e13565b611595565b6104926107bc366004611e13565b6115a3565b601c5461044f906001600160a01b031681565b610420600f5481565b601f5461044f906001600160a01b031681565b6104926107fe366004611d7c565b6115f3565b601a5461044f906001600160a01b031681565b610420610824366004611e13565b61163f565b610492610837366004611e13565b611650565b60005461044f906001600160a01b031681565b61042060195481565b610492610866366004611e13565b611692565b610492610879366004611e13565b6116e6565b601b5461044f906001600160a01b031681565b61066861089f366004611d7c565b602160205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a909a0154989997989697959694956001600160a01b0390941694929391929091908b565b610915610910366004611e13565b611723565b6040805192835260208301919091520161042a565b610492610938366004611e13565b61178a565b61042060045481565b610420600b5481565b61042061095d366004611df1565b6117c8565b61042060085481565b610492610979366004611e2c565b6117dd565b610420600a5481565b610420610995366004611d7c565b611873565b42610420565b6104926109ae366004611e13565b6118ef565b6104926109c1366004611e13565b61193d565b610420600e5481565b601a546001600160a01b03163314610a025760405162461bcd60e51b81526004016109f990611e56565b60405180910390fd5b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015610a6857600080fd5b505afa158015610a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa09190611e7f565b905090565b33600090815260216020526040902060175460ff16610ad65760405162461bcd60e51b81526004016109f990611e98565b6000610ae0610d07565b9050808315610b38576000610af53383610d82565b9050610b01828261196c565b91506000610b0e8361163f565b6001860154909150610b20908261196c565b6001860155601154610b32908261196c565b60115550505b600c546004840154610b4b90429061198b565b10610b7457600b5483600901541015610b74576009830154610b6e90600161196c565b60098401555b610b97610b8c600254836119a790919063ffffffff16565b60028501549061196c565b600284015560006003840155426004840155600654610bc490610bbb9084906119a7565b6014549061196c565b60145550505050565b6000610c12610bde601554846119b4565b610c0d601654610c02610c07610bf66015548a6119b4565b610c026016548c6119b4565b61196c565b896119a7565b6119a7565b949350505050565b6000610c298383601454610bcd565b90505b92915050565b601a546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016109f990611e56565b6064811115610c6a57600080fd5b600555565b601a546001600160a01b03163314610c995760405162461bcd60e51b81526004016109f990611e56565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b03163314610ce55760405162461bcd60e51b81526004016109f990611e56565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610aa0610d1533611873565b336000908152602160205260409020600301549061196c565b601a546001600160a01b03163314610d585760405162461bcd60e51b81526004016109f990611ecf565b6018811115610d6657600080fd5b610d7181603c611f0d565b610d7c90603c611f0d565b60195550565b6001600160a01b038216600090815260216020526040812060090154610daa57506000610c2c565b600a546001600160a01b0384166000908152602160205260408120600901549091610dd591906119b4565b90506000610df8600354610df284876119b490919063ffffffff16565b906119a7565b9250610c2c915050565b601a546001600160a01b03163314610e2c5760405162461bcd60e51b81526004016109f990611e56565b600a8110158015610e3e575060648111155b610e4757600080fd5b600455565b60175460ff16610e6e5760405162461bcd60e51b81526004016109f990611e98565b33600090815260216020526040812090610e86610d07565b90506000610e938261163f565b9050600e5483600901541015610ecf57610ec8610ec1600354610df2600d54856119b490919063ffffffff16565b829061198b565b9050610ed7565b600060098401555b42600a8401819055600060038501556004840155600754610efd90610bbb9084906119a7565b60145580610f09610a24565b1015610f1a57610f17610a24565b90505b6000610f2f610f28836119e9565b839061198b565b60005460405163a9059cbb60e01b8152336004820152602481018390529192506001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610f7c57600080fd5b505af1158015610f90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb49190611f2c565b506008840154610fc4908261196c565b6008850155601354610fd6908261196c565b60135550505050565b600080611010610fee84611873565b6001600160a01b0385166000908152602160205260409020600301549061196c565b905061101b8161163f565b9392505050565b601a546001600160a01b0316331461104c5760405162461bcd60e51b81526004016109f990611e56565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b031633146110985760405162461bcd60e51b81526004016109f990611e56565b600a81101580156110ab57506103848111155b6110b457600080fd5b600a55565b601a546001600160a01b031633146110e35760405162461bcd60e51b81526004016109f990611e56565b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b601a546001600160a01b0316331461112f5760405162461bcd60e51b81526004016109f990611e56565b603281111561113d57600080fd5b600655565b60175460ff166111645760405162461bcd60e51b81526004016109f990611e98565b3360009081526021602052604090206008548210156111c55760405162461bcd60e51b815260206004820152601b60248201527f4d696e696e756d20696e766573746d656e74206e6f74206d65742e000000000060448201526064016109f9565b60095481546111d4908461196c565b11156112225760405162461bcd60e51b815260206004820152601a60248201527f4d6178206465706f736974206c696d697420726561636865642e00000000000060448201526064016109f9565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401602060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190611f2c565b5060006112c5836104f5856112bf610a24565b9061198b565b60018301549091506112d7908461196c565b600183015581546112e8908461196c565b825560038201546112f9908261196c565b600383015560058201546001600160a01b0316611398576001600160a01b038416331461133e576005820180546001600160a01b0319166001600160a01b0386161790555b60058201546001600160a01b03168015611396576001600160a01b03811660009081526021602052604090206006015461137990600161196c565b6001600160a01b0382166000908152602160205260409020600601555b505b60058201546001600160a01b0316156114bb5760058201546001600160a01b031680156114b95760006113dc600354610df2600454886119b490919063ffffffff16565b60005460405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb90604401602060405180830381600087803b15801561142c57600080fd5b505af1158015611440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114649190611f2c565b506001600160a01b03821660009081526021602052604090206007015461148b908261196c565b6001600160a01b0383166000908152602160205260409020600701556012546114b4908261196c565b601255505b505b60006114c6846119e9565b90506114de6114d5858361198b565b600f549061196c565b600f556010546114ef90600161196c565b6010556114fc6000610aa5565b5050505050565b601a546001600160a01b0316331461152d5760405162461bcd60e51b81526004016109f990611ecf565b61153881603c611f0d565b61154390603c611f0d565b60185550565b601a546001600160a01b031633146115735760405162461bcd60e51b81526004016109f990611e56565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c2c826104f5610a24565b601a546001600160a01b031633146115cd5760405162461bcd60e51b81526004016109f990611ecf565b60148110156115db57600080fd5b6115ed81670de0b6b3a7640000611f0d565b60095550565b601a546001600160a01b0316331461161d5760405162461bcd60e51b81526004016109f990611e56565b601d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c2c826014546104cf610a24565b601a546001600160a01b0316331461167a5760405162461bcd60e51b81526004016109f990611ecf565b61168c81670de0b6b3a7640000611f0d565b60085550565b601a546001600160a01b031633146116bc5760405162461bcd60e51b81526004016109f990611e56565b60188111156116ca57600080fd5b6116d581603c611f0d565b6116e090603c611f0d565b600c5550565b601a546001600160a01b031633146117105760405162461bcd60e51b81526004016109f990611e56565b601e81111561171e57600080fd5b600b55565b6000806000611742846104f5866112bf8861173c610a24565b9061196c565b9050600061175b600254836119a790919063ffffffff16565b905062015180600061176d82846119b4565b9050600061177b82896117c8565b93989397509295505050505050565b601a546001600160a01b031633146117b45760405162461bcd60e51b81526004016109f990611e56565b6103208111156117c357600080fd5b600d55565b6000610c29836014546104cf8561173c610a24565b60175460ff16611827576020546001600160a01b031633141561182b576014541561180757600080fd5b6017805460ff1916600117905564141dd760006014556118278282611142565b5050565b60405162461bcd60e51b815260206004820152601960248201527f436f6e7472616374206e6f742079657420737461727465642e0000000000000060448201526064016109f9565b6001600160a01b038116600090815260216020526040812060040154819061189c90429061198b565b905060006118ac82601854611d4a565b905060006118bc60025483611d4a565b6001600160a01b0386166000908152602160205260409020600201549091506118e69082906119b4565b95945050505050565b601a546001600160a01b031633146119195760405162461bcd60e51b81526004016109f990611e56565b62075120811015801561192f575062278d008111155b61193857600080fd5b600255565b601a546001600160a01b031633146119675760405162461bcd60e51b81526004016109f990611e56565b600e55565b6000806119798385611f49565b905083811015610c2957610c29611f61565b60008282111561199d5761199d611f61565b610c298284611f77565b600080610c128385611f8e565b6000826119c357506000610c2c565b60006119cf8385611f0d565b9050826119dc8583611f8e565b14610c2957610c29611f61565b600080611a07600354610df2600554866119b490919063ffffffff16565b600054601b5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb90604401602060405180830381600087803b158015611a5957600080fd5b505af1158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190611f2c565b50600054601c5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611ae257600080fd5b505af1158015611af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1a9190611f2c565b50600054601d5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611b6b57600080fd5b505af1158015611b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba39190611f2c565b50600054601e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2c9190611f2c565b50600054601f5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611c7d57600080fd5b505af1158015611c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb59190611f2c565b5060005460205460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015611d0657600080fd5b505af1158015611d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3e9190611f2c565b5061101b8160066119b4565b6000818310611d595781610c29565b5090919050565b80356001600160a01b0381168114611d7757600080fd5b919050565b600060208284031215611d8e57600080fd5b610c2982611d60565b8015158114611da557600080fd5b50565b600060208284031215611dba57600080fd5b8135610c2981611d97565b600080600060608486031215611dda57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e0457600080fd5b50508035926020909101359150565b600060208284031215611e2557600080fd5b5035919050565b60008060408385031215611e3f57600080fd5b611e4883611d60565b946020939093013593505050565b6020808252600f908201526e20b236b4b7103ab9b29037b7363c9760891b604082015260600190565b600060208284031215611e9157600080fd5b5051919050565b60208082526019908201527f436f6e7472616374206e6f742079657420537461727465642e00000000000000604082015260600190565b6020808252600e908201526d41646d696e20757365206f6e6c7960901b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611f2757611f27611ef7565b500290565b600060208284031215611f3e57600080fd5b8151610c2981611d97565b60008219821115611f5c57611f5c611ef7565b500190565b634e487b7160e01b600052600160045260246000fd5b600082821015611f8957611f89611ef7565b500390565b600082611fab57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212206ad6d572b8236c6844ca682ce38d746cb9681a1a8bd560605ffc0f651934aef964736f6c63430008090033