Contract 0x27771BB243c37B35091b0A1e8b69C816249c2E71

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xb5dc5b9bfc3bf1572ffede19cd38936aa7c4d586559ffd71fa87e38d1eb587c0Harvest Rewards299431072022-06-24 11:34:478 days 12 hrs ago0xdc7ac38066b0a51a6370354c8f38fa04938bdd1e IN  0x27771bb243c37b35091b0a1e8b69c816249c2e710 MATIC0.00480046995 30.191065263
0x9639ccbb856c52bc263e1c0263ded6b38ff346305da549305184147be8b5de00Harvest Rewards294944392022-06-12 23:05:4720 days 1 hr ago0x61a2b24f557ad2f11ea75774947c4d72e67755a1 IN  0x27771bb243c37b35091b0a1e8b69c816249c2e710 MATIC0.004257090001 30.000000013
0x805d5d562e0ffbbaffa4c3c27f93bb78b411960e6e2eab1ceb2ea9705415a820Harvest Rewards292676312022-06-07 7:50:3225 days 16 hrs ago0xd5b7b040859e87bfbb7807599698786fc2367e2d IN  0x27771bb243c37b35091b0a1e8b69c816249c2e710 MATIC0.006606981629 30.71543228
0xeeebeb3eafbbf854add85e62b95e25ebf88508fc2b2c374de4b6dcda383fab36Start Earning292140092022-06-05 23:18:1727 days 1 hr ago0xd5b7b040859e87bfbb7807599698786fc2367e2d IN  0x27771bb243c37b35091b0a1e8b69c816249c2e710 MATIC0.003478470001 30.000000013
0x36fa737e2ba48c4ee73480c49538abf3f9863472bd7b0bc9814436d3f96f80310x60a06040292138422022-06-05 23:12:3527 days 1 hr ago0xd5b7b040859e87bfbb7807599698786fc2367e2d IN  Create: XVMColdChefOwner0 MATIC0.071521032 44
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
XVMColdChefOwner

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-06-05
*/

// File: @openzeppelin/contracts/utils/Address.sol


// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

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

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

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

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

// File: @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)

pragma solidity ^0.8.0;



/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    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));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    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'
        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) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    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. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// File: xvmc-contracts/oldChef/oldMasterchefOwner.sol



pragma solidity 0.8.1;






interface IMasterChef {
    function deposit(uint256 _pid, uint256 _amount) external;
    function withdraw(uint256 _pid, uint256 _amount) external;
    function pendingEgg(uint256 _pid, address _user) external view returns (uint256);
    function devaddr() external view returns (address);
    function owner() external view returns (address);
    function setFeeAddress(address _feeAddress) external;
    function dev(address _devaddr) external;
    function transferOwnership(address newOwner) external;
}
interface INewToken {
    function swapOldForNew(uint256 _amount) external returns (bool);
    function burn(uint256 amount) external;
    function governor() external view returns (address);
}


/**
 * Collects rewards from old chef and burns them
 * The link to the old chef is needed due to the small 'accident' that occured
 * A pool that is not a valid lpToken has been added, which prevents
 * the massUpdatePools() in masterchef being called
 * Consequentially the emissions can not ever be updated
 * This contract receives all the rewards from old masterchef and burns them
 * Owner of the masterchef can mint infinite tokens and has enormous control
 * The "sneaky" dev that launched old masterchef added another function
 * (approve) which could be used to grant access to withdraw funds from the old masterchef contract
 * However we took control after launch and made sure it has never been used, feel free to check event logs
 */
contract XVMColdChefOwner {
    using SafeERC20 for IERC20;

	
    IERC20 public token = IERC20(0x6d0c966c8A09e354Df9C48b446A474CE3343D912); // XVMC token
	
	IERC20 public newToken; // updated XVMC
	
	IERC20 public dummyToken; //dummy token for earning rewards

    IMasterChef public immutable masterchef;
	
	address public admin;
	
	uint256 public burnDelay =  42690; //Delay before burn can be enforcedd
	
	uint256 public poolID = 59;
	
	bool public renounced; // if renounced, the old masterchef is sealed in and can only be burned forever(else governor of new token has the power to take control)


    /**
     * @notice Constructor
     * @param _masterchef: MasterChef contract
     * @param _admin: address of the admin
     */
    constructor(
		IERC20 _newToken,
		IERC20 _dummyToken,
        IMasterChef _masterchef,
        address _admin
    ) {
		newToken = _newToken;
		dummyToken = _dummyToken;
        masterchef = _masterchef;
        admin = _admin;

        dummyToken.safeApprove(address(_masterchef), type(uint256).max); //to deposit&earn in old chef
		token.safeApprove(address(_newToken), type(uint256).max); //to exchange(swap) old for new token
    }
    
	
    /**
     * @notice Checks if the msg.sender is the admin
     */
    modifier adminOnly() {
        require(msg.sender == INewToken(address(newToken)).governor(), "admin: wut?");
        _;
    }
	
    modifier notRenounced() {
        require(!renounced, "Not possible. Contract has been renounced");
        _;
    }

	function harvestRewards() public {
		IMasterChef(masterchef).withdraw(poolID, 0); //harvests rewards
		INewToken(address(newToken)).swapOldForNew(token.balanceOf(address(this))); //swaps in new chef to get new token
	}

	//the tokens can only be burned(can not be withdrawn&used)
	//But ownership of masterchef can still be changed with new rules(where funds could be used)
	//so there is an option to "renounce ownership" and permanently seal the old masterchef into burn-only mode
	function burnTokens(uint256 _amount) public adminOnly {
		harvestRewards();
		
		if(_amount == 0) {
			INewToken(address(newToken)).burn(newToken.balanceOf(address(this)));
		} else {
			INewToken(address(newToken)).burn(_amount);
		}
	}
	
	
    /**
     * When contract is launched, dummyToken shall be deposited to start earning rewards
     */
    function startEarning(uint256 _amount) external adminOnly notRenounced {
		IMasterChef(masterchef).deposit(poolID, _amount);
    }
	
    /**
     * Dummy token can be withdrawn if ever needed(allows for flexibility)
     */
	function stopEarning(uint256  _withdrawAmount) external adminOnly notRenounced {
		IMasterChef(masterchef).withdraw(poolID, _withdrawAmount);
	}
	
    /**
     * Withdraws dummyToken
     */
    function withdrawDummy(uint256 _amount) external adminOnly notRenounced {	
        if(_amount == 0) { 
			dummyToken.safeTransfer(admin, dummyToken.balanceOf(address(this)));
		} else {
			dummyToken.safeTransfer(admin, _amount);
		}
    }
	
	// IMPORTANT NOTE: in the old chef, ONLY the respective owner can change the address
	// eg. fee address can change fee address, dev address can change dev address
	// in new masterchef onlyOwner can change the addresses
	//functions to transfer Masterchef owner, fee and dev address to new contract(if need be)
	function setChefFeeAddress(address _newAddress) external adminOnly notRenounced {
		IMasterChef(masterchef).setFeeAddress(_newAddress);
	}
	function setChefDevAddress(address _newAddress) external adminOnly notRenounced {
		IMasterChef(masterchef).dev(_newAddress);
	}
	function setChefOwnerAddress(address _newAddress) external adminOnly notRenounced {
		IMasterChef(masterchef).transferOwnership(_newAddress);
	}

    /**
     * @notice Calculates the total underlying tokens
     * @dev It includes tokens held by the contract and held in MasterChef
     */
    function balanceOf() public view returns (uint256) {
        uint256 amount = IMasterChef(masterchef).pendingEgg(poolID, address(this)); 
        return (amount + token.balanceOf(address(this)));
    }
	
    function pendingRewards() public view returns (uint256) {
        uint256 amount = IMasterChef(masterchef).pendingEgg(poolID, address(this)); 
        return amount;
    }
	
	
	function setBurnDelay(uint256 _newDelay) external adminOnly {
		burnDelay = _newDelay;
	}
	
	
	// effectively "renounces ownership", renders the contract immutable and the tokens
     //	minted from old chef can never again be accessed, only perpetually burned
	function renounceOwnership() external adminOnly notRenounced {
		renounced = true;
	}
	
	function setPoolID(uint256 _id) external adminOnly notRenounced {
		poolID = _id;
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_newToken","type":"address"},{"internalType":"contract IERC20","name":"_dummyToken","type":"address"},{"internalType":"contract IMasterChef","name":"_masterchef","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dummyToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvestRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterchef","outputs":[{"internalType":"contract IMasterChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounced","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDelay","type":"uint256"}],"name":"setBurnDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setChefDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setChefFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setChefOwnerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"setPoolID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"startEarning","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_withdrawAmount","type":"uint256"}],"name":"stopEarning","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawDummy","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a0604052600080546001600160a01b031916736d0c966c8a09e354df9c48b446a474ce3343d91217905561a6c2600455603b6005553480156200004257600080fd5b5060405162001f5938038062001f5983398101604081905262000065916200040e565b600180546001600160a01b03199081166001600160a01b03878116919091179092556002805482168684161790819055606085901b6001600160601b0319166080526003805490921684841617909155620000d191168360001962000102602090811b6200122f17901c565b600054620000f8906001600160a01b03168560001962000102602090811b6200122f17901c565b5050505062000684565b801580620001915750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e906200013b9030908690600401620004ac565b60206040518083038186803b1580156200015457600080fd5b505afa15801562000169573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018f919062000475565b155b620001b95760405162461bcd60e51b8152600401620001b090620005db565b60405180910390fd5b620002148363095ea7b360e01b8484604051602401620001db929190620004c6565b60408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200021916565b505050565b600062000275826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620002b560201b6200132e179092919060201c565b805190915015620002145780806020019051810190620002969190620003ec565b620002145760405162461bcd60e51b8152600401620001b09062000591565b6060620002c68484600085620002d0565b90505b9392505050565b606082471015620002f55760405162461bcd60e51b8152600401620001b09062000514565b62000300856200039f565b6200031f5760405162461bcd60e51b8152600401620001b0906200055a565b600080866001600160a01b031685876040516200033d91906200048e565b60006040518083038185875af1925050503d80600081146200037c576040519150601f19603f3d011682016040523d82523d6000602084013e62000381565b606091505b50909250905062000394828286620003ae565b979650505050505050565b6001600160a01b03163b151590565b60608315620003bf575081620002c9565b825115620003d05782518084602001fd5b8160405162461bcd60e51b8152600401620001b09190620004df565b600060208284031215620003fe578081fd5b81518015158114620002c9578182fd5b6000806000806080858703121562000424578283fd5b845162000431816200066b565b602086015190945062000444816200066b565b604086015190935062000457816200066b565b60608601519092506200046a816200066b565b939692955090935050565b60006020828403121562000487578081fd5b5051919050565b60008251620004a281846020870162000638565b9190910192915050565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b60006020825282518060208401526200050081604085016020870162000638565b601f01601f19169190910160400192915050565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606082015260800190565b60005b83811015620006555781810151838201526020016200063b565b8381111562000665576000848401525b50505050565b6001600160a01b03811681146200068157600080fd5b50565b60805160601c61187e620006db6000396000818161037201528181610650015281816108a301528181610ba201528181610dc401528181610ef30152818161110f0152818161114f01526111fe015261187e6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638d934485116100b8578063e5445ce01161007c578063e5445ce01461023e578063e91983c914610251578063eded3fda14610259578063f851a44014610261578063fb1db27814610269578063fc0c546a1461027157610137565b80638d934485146101f3578063990fd962146101fb578063c42bd05a1461020e578063d232c22014610216578063d4c4145c1461022b57610137565b806367479ec5116100ff57806367479ec5146101925780636d1b229d146101b0578063715018a6146101c3578063722713f7146101cb5780637eb3f084146101e057610137565b806309128bb11461013c578063159ad8cd14610151578063192468cf146101645780632be11ae21461017757806362ebf0b41461017f575b600080fd5b61014f61014a3660046114fd565b610279565b005b61014f61015f366004611555565b6103dc565b61014f610172366004611555565b61057b565b61014f610636565b61014f61018d3660046114fd565b6107b3565b61019a6108d8565b6040516101a791906115a1565b60405180910390f35b61014f6101be366004611555565b6108e7565b61014f610ab5565b6101d3610b9d565b6040516101a791906117b1565b61014f6101ee366004611555565b610cd1565b6101d3610dfa565b61014f610209366004611555565b610e00565b61019a610f29565b61021e610f38565b6040516101a791906115e8565b61014f610239366004611555565b610f41565b61014f61024c3660046114fd565b61101f565b6101d3611144565b6101d361114a565b61019a6111ed565b61019a6111fc565b61019a611220565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156102c757600080fd5b505afa1580156102db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ff9190611519565b6001600160a01b0316336001600160a01b0316146103385760405162461bcd60e51b815260040161032f906116b5565b60405180910390fd5b60065460ff161561035b5760405162461bcd60e51b815260040161032f9061166c565b6040516321c17f3560e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638705fcd4906103a79084906004016115a1565b600060405180830381600087803b1580156103c157600080fd5b505af11580156103d5573d6000803e3d6000fd5b5050505050565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561042a57600080fd5b505afa15801561043e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104629190611519565b6001600160a01b0316336001600160a01b0316146104925760405162461bcd60e51b815260040161032f906116b5565b60065460ff16156104b55760405162461bcd60e51b815260040161032f9061166c565b8061055b576003546002546040516370a0823160e01b8152610556926001600160a01b039081169216906370a08231906104f39030906004016115a1565b60206040518083038186803b15801561050b57600080fd5b505afa15801561051f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610543919061156d565b6002546001600160a01b03169190611347565b610578565b600354600254610578916001600160a01b03918216911683611347565b50565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c957600080fd5b505afa1580156105dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106019190611519565b6001600160a01b0316336001600160a01b0316146106315760405162461bcd60e51b815260040161032f906116b5565b600455565b600554604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163441a3e709161068791906000906004016117d1565b600060405180830381600087803b1580156106a157600080fd5b505af11580156106b5573d6000803e3d6000fd5b50506001546000546040516370a0823160e01b81526001600160a01b039283169450637f965d5593509116906370a08231906106f59030906004016115a1565b60206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610745919061156d565b6040518263ffffffff1660e01b815260040161076191906117b1565b602060405180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105789190611535565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561080157600080fd5b505afa158015610815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108399190611519565b6001600160a01b0316336001600160a01b0316146108695760405162461bcd60e51b815260040161032f906116b5565b60065460ff161561088c5760405162461bcd60e51b815260040161032f9061166c565b6040516346c4548760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638d88a90e906103a79084906004016115a1565b6002546001600160a01b031681565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561093557600080fd5b505afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d9190611519565b6001600160a01b0316336001600160a01b03161461099d5760405162461bcd60e51b815260040161032f906116b5565b6109a5610636565b80610a85576001546040516370a0823160e01b81526001600160a01b03909116906342966c689082906370a08231906109e29030906004016115a1565b60206040518083038186803b1580156109fa57600080fd5b505afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061156d565b6040518263ffffffff1660e01b8152600401610a4e91906117b1565b600060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b50505050610578565b600154604051630852cd8d60e31b81526001600160a01b03909116906342966c68906103a79084906004016117b1565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0357600080fd5b505afa158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b9190611519565b6001600160a01b0316336001600160a01b031614610b6b5760405162461bcd60e51b815260040161032f906116b5565b60065460ff1615610b8e5760405162461bcd60e51b815260040161032f9061166c565b6006805460ff19166001179055565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f456426f600554306040518363ffffffff1660e01b8152600401610bf09291906117ba565b60206040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c40919061156d565b6000546040516370a0823160e01b81529192506001600160a01b0316906370a0823190610c719030906004016115a1565b60206040518083038186803b158015610c8957600080fd5b505afa158015610c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc1919061156d565b610ccb90826117df565b91505090565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1f57600080fd5b505afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611519565b6001600160a01b0316336001600160a01b031614610d875760405162461bcd60e51b815260040161032f906116b5565b60065460ff1615610daa5760405162461bcd60e51b815260040161032f9061166c565b600554604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163441a3e70916103a7919085906004016117d1565b60055481565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4e57600080fd5b505afa158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e869190611519565b6001600160a01b0316336001600160a01b031614610eb65760405162461bcd60e51b815260040161032f906116b5565b60065460ff1615610ed95760405162461bcd60e51b815260040161032f9061166c565b600554604051631c57762b60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163e2bbb158916103a7919085906004016117d1565b6001546001600160a01b031681565b60065460ff1681565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8f57600080fd5b505afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc79190611519565b6001600160a01b0316336001600160a01b031614610ff75760405162461bcd60e51b815260040161032f906116b5565b60065460ff161561101a5760405162461bcd60e51b815260040161032f9061166c565b600555565b600160009054906101000a90046001600160a01b03166001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561106d57600080fd5b505afa158015611081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a59190611519565b6001600160a01b0316336001600160a01b0316146110d55760405162461bcd60e51b815260040161032f906116b5565b60065460ff16156110f85760405162461bcd60e51b815260040161032f9061166c565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906103a79084906004016115a1565b60045481565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f456426f600554306040518363ffffffff1660e01b815260040161119d9291906117ba565b60206040518083038186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb919061156d565b6003546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031681565b8015806112b75750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e9061126590309086906004016115b5565b60206040518083038186803b15801561127d57600080fd5b505afa158015611291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b5919061156d565b155b6112d35760405162461bcd60e51b815260040161032f9061175b565b6113298363095ea7b360e01b84846040516024016112f29291906115cf565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611366565b505050565b606061133d84846000856113f5565b90505b9392505050565b6113298363a9059cbb60e01b84846040516024016112f29291906115cf565b60006113bb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661132e9092919063ffffffff16565b80519091501561132957808060200190518101906113d99190611535565b6113295760405162461bcd60e51b815260040161032f90611711565b6060824710156114175760405162461bcd60e51b815260040161032f90611626565b611420856114b5565b61143c5760405162461bcd60e51b815260040161032f906116da565b600080866001600160a01b031685876040516114589190611585565b60006040518083038185875af1925050503d8060008114611495576040519150601f19603f3d011682016040523d82523d6000602084013e61149a565b606091505b50915091506114aa8282866114c4565b979650505050505050565b6001600160a01b03163b151590565b606083156114d3575081611340565b8251156114e35782518084602001fd5b8160405162461bcd60e51b815260040161032f91906115f3565b60006020828403121561150e578081fd5b813561134081611833565b60006020828403121561152a578081fd5b815161134081611833565b600060208284031215611546578081fd5b81518015158114611340578182fd5b600060208284031215611566578081fd5b5035919050565b60006020828403121561157e578081fd5b5051919050565b60008251611597818460208701611803565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082528251806020840152611612816040850160208701611803565b601f01601f19169190910160400192915050565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b60208082526029908201527f4e6f7420706f737369626c652e20436f6e747261637420686173206265656e206040820152681c995b9bdd5b98d95960ba1b606082015260800190565b6020808252600b908201526a61646d696e3a207775743f60a81b604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b600082198211156117fe57634e487b7160e01b81526011600452602481fd5b500190565b60005b8381101561181e578181015183820152602001611806565b8381111561182d576000848401525b50505050565b6001600160a01b038116811461057857600080fdfea26469706673582212202cc750bd98f3dd22ab46752fa08fc7f5e009c25aea1fb7f6c167904eab6809d564736f6c63430008010033000000000000000000000000970ccee657dd831e9c37511aa3eb5302c1eb5eee000000000000000000000000db0f16ba90155f5d6f15d714178c635d6b2cfdde0000000000000000000000009bd741f077241b594ebdd745945b577d59c8768e000000000000000000000000d5b7b040859e87bfbb7807599698786fc2367e2d

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

000000000000000000000000970ccee657dd831e9c37511aa3eb5302c1eb5eee000000000000000000000000db0f16ba90155f5d6f15d714178c635d6b2cfdde0000000000000000000000009bd741f077241b594ebdd745945b577d59c8768e000000000000000000000000d5b7b040859e87bfbb7807599698786fc2367e2d

-----Decoded View---------------
Arg [0] : _newToken (address): 0x970ccee657dd831e9c37511aa3eb5302c1eb5eee
Arg [1] : _dummyToken (address): 0xdb0f16ba90155f5d6f15d714178c635d6b2cfdde
Arg [2] : _masterchef (address): 0x9bd741f077241b594ebdd745945b577d59c8768e
Arg [3] : _admin (address): 0xd5b7b040859e87bfbb7807599698786fc2367e2d

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000970ccee657dd831e9c37511aa3eb5302c1eb5eee
Arg [1] : 000000000000000000000000db0f16ba90155f5d6f15d714178c635d6b2cfdde
Arg [2] : 0000000000000000000000009bd741f077241b594ebdd745945b577d59c8768e
Arg [3] : 000000000000000000000000d5b7b040859e87bfbb7807599698786fc2367e2d


Deployed ByteCode Sourcemap

17848:4850:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21272:140;;;;;;:::i;:::-;;:::i;:::-;;20704:245;;;;;;:::i;:::-;;:::i;22247:91::-;;;;;;:::i;:::-;;:::i;19413:221::-;;;:::i;21415:130::-;;;;;;:::i;:::-;;:::i;18057:24::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19905:245;;;;;;:::i;:::-;;:::i;22516:87::-;;;:::i;21851:204::-;;;:::i;:::-;;;;;;;:::i;20502:146::-;;;;;;:::i;:::-;;:::i;18274:26::-;;;:::i;20270:132::-;;;;;;:::i;:::-;;:::i;18012:22::-;;;:::i;18307:21::-;;;:::i;:::-;;;;;;;:::i;22609:86::-;;;;;;:::i;:::-;;:::i;21548:146::-;;;;;;:::i;:::-;;:::i;18197:33::-;;;:::i;22064:174::-;;;:::i;18170:20::-;;;:::i;18124:39::-;;;:::i;17919:72::-;;;:::i;21272:140::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;;;;;;;;;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;21357:50:::2;::::0;-1:-1:-1;;;21357:50:0;;-1:-1:-1;;;;;21369:10:0::2;21357:37;::::0;::::2;::::0;:50:::2;::::0;21395:11;;21357:50:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;21272:140:::0;:::o;20704:245::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;20791:12:::0;20788:154:::2;;20836:5;::::0;20843:10:::2;::::0;:35:::2;::::0;-1:-1:-1;;;20843:35:0;;20812:67:::2;::::0;-1:-1:-1;;;;;20836:5:0;;::::2;::::0;20843:10:::2;::::0;:20:::2;::::0;:35:::2;::::0;20872:4:::2;::::0;20843:35:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20812:10;::::0;-1:-1:-1;;;;;20812:10:0::2;::::0;:67;:23:::2;:67::i;:::-;20788:154;;;20921:5;::::0;20897:10:::2;::::0;:39:::2;::::0;-1:-1:-1;;;;;20897:10:0;;::::2;::::0;20921:5:::2;20928:7:::0;20897:23:::2;:39::i;:::-;20704:245:::0;:::o;22247:91::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;22312:9:::1;:21:::0;22247:91::o;19413:221::-;19484:6;;19451:43;;-1:-1:-1;;;19451:43:0;;-1:-1:-1;;;;;19463:10:0;19451:32;;;;:43;;19484:6;19492:1;;19451:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19536:8:0;;;19561:5;:30;;-1:-1:-1;;;19561:30:0;;-1:-1:-1;;;;;19536:8:0;;;;-1:-1:-1;19518:42:0;;-1:-1:-1;19561:5:0;;;:15;;:30;;19585:4;;19561:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19518:74;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21415:130::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;21500:40:::2;::::0;-1:-1:-1;;;21500:40:0;;-1:-1:-1;;;;;21512:10:0::2;21500:27;::::0;::::2;::::0;:40:::2;::::0;21528:11;;21500:40:::2;;;:::i;18057:24::-:0;;;-1:-1:-1;;;;;18057:24:0;;:::o;19905:245::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19964:16:::1;:14;:16::i;:::-;19992:12:::0;19989:157:::1;;20030:8;::::0;20046:33:::1;::::0;-1:-1:-1;;;20046:33:0;;-1:-1:-1;;;;;20030:8:0;;::::1;::::0;20012:33:::1;::::0;20030:8;;20046:18:::1;::::0;:33:::1;::::0;20073:4:::1;::::0;20046:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20012:68;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19989:157;;;20116:8;::::0;20098:42:::1;::::0;-1:-1:-1;;;20098:42:0;;-1:-1:-1;;;;;20116:8:0;;::::1;::::0;20098:33:::1;::::0;:42:::1;::::0;20132:7;;20098:42:::1;;;:::i;22516:87::-:0;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;22582:9:::2;:16:::0;;-1:-1:-1;;22582:16:0::2;22594:4;22582:16;::::0;;22516:87::o;21851:204::-;21893:7;21913:14;21942:10;-1:-1:-1;;;;;21930:34:0;;21965:6;;21981:4;21930:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22016:5;;:30;;-1:-1:-1;;;22016:30:0;;21913:74;;-1:-1:-1;;;;;;22016:5:0;;:15;;:30;;22040:4;;22016:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22007:39;;:6;:39;:::i;:::-;21999:48;;;21851:204;:::o;20502:146::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;20619:6:::2;::::0;20586:57:::2;::::0;-1:-1:-1;;;20586:57:0;;-1:-1:-1;;;;;20598:10:0::2;20586:32;::::0;::::2;::::0;:57:::2;::::0;20619:6;20627:15;;20586:57:::2;;;:::i;18274:26::-:0;;;;:::o;20270:132::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;20378:6:::2;::::0;20346:48:::2;::::0;-1:-1:-1;;;20346:48:0;;-1:-1:-1;;;;;20358:10:0::2;20346:31;::::0;::::2;::::0;:48:::2;::::0;20378:6;20386:7;;20346:48:::2;;;:::i;18012:22::-:0;;;-1:-1:-1;;;;;18012:22:0;;:::o;18307:21::-;;;;;;:::o;22609:86::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;22678:6:::2;:12:::0;22609:86::o;21548:146::-;19223:8;;;;;;;;;-1:-1:-1;;;;;19223:8:0;-1:-1:-1;;;;;19205:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19191:53:0;:10;-1:-1:-1;;;;;19191:53:0;;19183:77;;;;-1:-1:-1;;;19183:77:0;;;;;;;:::i;:::-;19333:9:::1;::::0;::::1;;19332:10;19324:64;;;;-1:-1:-1::0;;;19324:64:0::1;;;;;;;:::i;:::-;21635:54:::2;::::0;-1:-1:-1;;;21635:54:0;;-1:-1:-1;;;;;21647:10:0::2;21635:41;::::0;::::2;::::0;:54:::2;::::0;21677:11;;21635:54:::2;;;:::i;18197:33::-:0;;;;:::o;22064:174::-;22111:7;22131:14;22160:10;-1:-1:-1;;;;;22148:34:0;;22183:6;;22199:4;22148:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18170:20::-;;;-1:-1:-1;;;;;18170:20:0;;:::o;18124:39::-;;;:::o;17919:72::-;;;-1:-1:-1;;;;;17919:72:0;;:::o;12815:616::-;13179:10;;;13178:62;;-1:-1:-1;13195:39:0;;-1:-1:-1;;;13195:39:0;;-1:-1:-1;;;;;13195:15:0;;;;;:39;;13219:4;;13226:7;;13195:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;13178:62;13156:166;;;;-1:-1:-1;;;13156:166:0;;;;;;;:::i;:::-;13333:90;13353:5;13383:22;;;13407:7;13416:5;13360:62;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;13360:62:0;;;;;;;;;;;;;;-1:-1:-1;;;;;13360:62:0;-1:-1:-1;;;;;;13360:62:0;;;;;;;;;;13333:19;:90::i;:::-;12815:616;;;:::o;3978:229::-;4115:12;4147:52;4169:6;4177:4;4183:1;4186:12;4147:21;:52::i;:::-;4140:59;;3978:229;;;;;;:::o;12079:211::-;12196:86;12216:5;12246:23;;;12271:2;12275:5;12223:58;;;;;;;;;:::i;14652:716::-;15076:23;15102:69;15130:4;15102:69;;;;;;;;;;;;;;;;;15110:5;-1:-1:-1;;;;;15102:27:0;;;:69;;;;;:::i;:::-;15186:17;;15076:95;;-1:-1:-1;15186:21:0;15182:179;;15283:10;15272:30;;;;;;;;;;;;:::i;:::-;15264:85;;;;-1:-1:-1;;;15264:85:0;;;;;;;:::i;5098:510::-;5268:12;5326:5;5301:21;:30;;5293:81;;;;-1:-1:-1;;;5293:81:0;;;;;;;:::i;:::-;5393:18;5404:6;5393:10;:18::i;:::-;5385:60;;;;-1:-1:-1;;;5385:60:0;;;;;;;:::i;:::-;5459:12;5473:23;5500:6;-1:-1:-1;;;;;5500:11:0;5519:5;5526:4;5500:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5458:73;;;;5549:51;5566:7;5575:10;5587:12;5549:16;:51::i;:::-;5542:58;5098:510;-1:-1:-1;;;;;;;5098:510:0:o;1233:326::-;-1:-1:-1;;;;;1528:19:0;;:23;;;1233:326::o;7784:712::-;7934:12;7963:7;7959:530;;;-1:-1:-1;7994:10:0;7987:17;;7959:530;8108:17;;:21;8104:374;;8306:10;8300:17;8367:15;8354:10;8350:2;8346:19;8339:44;8254:148;8449:12;8442:20;;-1:-1:-1;;;8442:20:0;;;;;;;;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:297::-;;666:2;654:9;645:7;641:23;637:32;634:2;;;687:6;679;672:22;634:2;724:9;718:16;777:5;770:13;763:21;756:5;753:32;743:2;;804:6;796;789:22;848:190;;960:2;948:9;939:7;935:23;931:32;928:2;;;981:6;973;966:22;928:2;-1:-1:-1;1009:23:1;;918:120;-1:-1:-1;918:120:1:o;1043:194::-;;1166:2;1154:9;1145:7;1141:23;1137:32;1134:2;;;1187:6;1179;1172:22;1134:2;-1:-1:-1;1215:16:1;;1124:113;-1:-1:-1;1124:113:1:o;1242:274::-;;1409:6;1403:13;1425:53;1471:6;1466:3;1459:4;1451:6;1447:17;1425:53;:::i;:::-;1494:16;;;;;1379:137;-1:-1:-1;;1379:137:1:o;1521:203::-;-1:-1:-1;;;;;1685:32:1;;;;1667:51;;1655:2;1640:18;;1622:102::o;1729:304::-;-1:-1:-1;;;;;1959:15:1;;;1941:34;;2011:15;;2006:2;1991:18;;1984:43;1891:2;1876:18;;1858:175::o;2038:274::-;-1:-1:-1;;;;;2230:32:1;;;;2212:51;;2294:2;2279:18;;2272:34;2200:2;2185:18;;2167:145::o;2317:187::-;2482:14;;2475:22;2457:41;;2445:2;2430:18;;2412:92::o;2958:383::-;;3107:2;3096:9;3089:21;3139:6;3133:13;3182:6;3177:2;3166:9;3162:18;3155:34;3198:66;3257:6;3252:2;3241:9;3237:18;3232:2;3224:6;3220:15;3198:66;:::i;:::-;3325:2;3304:15;-1:-1:-1;;3300:29:1;3285:45;;;;3332:2;3281:54;;3079:262;-1:-1:-1;;3079:262:1:o;3346:402::-;3548:2;3530:21;;;3587:2;3567:18;;;3560:30;3626:34;3621:2;3606:18;;3599:62;-1:-1:-1;;;3692:2:1;3677:18;;3670:36;3738:3;3723:19;;3520:228::o;3753:405::-;3955:2;3937:21;;;3994:2;3974:18;;;3967:30;4033:34;4028:2;4013:18;;4006:62;-1:-1:-1;;;4099:2:1;4084:18;;4077:39;4148:3;4133:19;;3927:231::o;4163:335::-;4365:2;4347:21;;;4404:2;4384:18;;;4377:30;-1:-1:-1;;;4438:2:1;4423:18;;4416:41;4489:2;4474:18;;4337:161::o;4503:353::-;4705:2;4687:21;;;4744:2;4724:18;;;4717:30;4783:31;4778:2;4763:18;;4756:59;4847:2;4832:18;;4677:179::o;4861:406::-;5063:2;5045:21;;;5102:2;5082:18;;;5075:30;5141:34;5136:2;5121:18;;5114:62;-1:-1:-1;;;5207:2:1;5192:18;;5185:40;5257:3;5242:19;;5035:232::o;5272:418::-;5474:2;5456:21;;;5513:2;5493:18;;;5486:30;5552:34;5547:2;5532:18;;5525:62;-1:-1:-1;;;5618:2:1;5603:18;;5596:52;5680:3;5665:19;;5446:244::o;5695:177::-;5841:25;;;5829:2;5814:18;;5796:76::o;5877:274::-;6051:25;;;-1:-1:-1;;;;;6112:32:1;6107:2;6092:18;;6085:60;6039:2;6024:18;;6006:145::o;6156:256::-;6338:25;;;6394:2;6379:18;;6372:34;6326:2;6311:18;;6293:119::o;6670:229::-;;6741:1;6737:6;6734:1;6731:13;6728:2;;;-1:-1:-1;;;6767:33:1;;6823:4;6820:1;6813:15;6853:4;6774:3;6841:17;6728:2;-1:-1:-1;6884:9:1;;6718:181::o;6904:258::-;6976:1;6986:113;7000:6;6997:1;6994:13;6986:113;;;7076:11;;;7070:18;7057:11;;;7050:39;7022:2;7015:10;6986:113;;;7117:6;7114:1;7111:13;7108:2;;;7152:1;7143:6;7138:3;7134:16;7127:27;7108:2;;6957:205;;;:::o;7167:133::-;-1:-1:-1;;;;;7244:31:1;;7234:42;;7224:2;;7290:1;7287;7280:12

Swarm Source

ipfs://2cc750bd98f3dd22ab46752fa08fc7f5e009c25aea1fb7f6c167904eab6809d5
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.