Contract 0x0d5665A2319526A117E68E38EBEA4610aA8298F8 1

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xcdcb09cc34ba7bdcb4c71be75806d334cabbd6693aefa863222229d570948714Approve337091182022-09-29 10:14:3453 mins ago0xc9e3d2527e171fe98c0f397584bdc9606fa9bb55 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.001393650001 30.000000026
0x630cbcf6da2f63ad1e860554c0c43f0e73f075772f9bc41a9130d7d3b02bdad8Approve337064452022-09-29 8:42:402 hrs 25 mins ago0xc6b2563faf250d6c3d97b724afb3a7f1a9accebc IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.001562727617 33.639599983
0x9c1d3d1e00e0cd8f14e8bd8ffc3de88f2ca651252925d6687dd340a299137b4dApprove337061402022-09-29 8:32:102 hrs 36 mins ago0xeccffb92b7ef996f7ff113f2335510f29ef4bb1f IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00139365 30.000000017
0xe2600d11d6cdd0ebeb2dc1c2a5686de90510af35f73b4f8165e9b10feb57b913Approve337053402022-09-29 8:04:363 hrs 3 mins ago0xe029bb90b691e957ed20153781cff502a3ff7bb4 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0xc2a07fc282709a518ad5c45b2cdd40108fc1c5d0aa9cbc373234afb61fefb999Approve337052902022-09-29 8:02:523 hrs 5 mins ago0x0feceb4471c9ff69bc0dc2e36e6efc680f75e1e1 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00139365 30.000000015
0xf9a52d3bdcc752d1a87ed5c8db633c2034aaee19f8528a2942c153651787f833Approve337039892022-09-29 7:18:053 hrs 50 mins ago0xebfc749844587d7cdbb03f6e92efadc8ce1f769c IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00398325 150
0x9cb5ce4d971e960771589af10a199e9f0ee35eba20a683ba0f9ab08e0903814eApprove337039342022-09-29 7:16:113 hrs 52 mins ago0xebfc749844587d7cdbb03f6e92efadc8ce1f769c IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0x4741ddb1d9dae33eeb7cd7ba53f035d0eb89f9daf7730768ece0dec05357413cApprove337032452022-09-29 6:52:334 hrs 15 mins ago0xd1fb8fab9e2abe2bc89eb93513047b6157524c41 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.001463332531.500000019
0xdb47e98ff01c84bf2f1672c30afe9d84b929309b7fb677cf3feb0e0ead8046fbApprove337018972022-09-29 6:06:095 hrs 2 mins ago0x946dce2bd1e53e22f4a8730153051d514f685955 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825150
0x7cc52c92b359395b18b9e930622edae8eaf95dba6e0f03561b2e271a90fbdcd9Approve337015282022-09-29 5:53:275 hrs 15 mins ago0x20b0fbda683f219e2e061502ebafbf78157ce49d IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0x44548dfb4075ba734277e91f9f87757b3c51a433c8e7f403322f7f1f4de58ebdApprove337002362022-09-29 5:09:035 hrs 59 mins ago0x36cca19c2e8906a2106a0e19b1b8d550ee772439 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.01161375 250
0x064dc310236a6b75417e10828643de3d4a1621686f77e63c4476f99b6b604bfeTransfer336964122022-09-29 2:57:118 hrs 11 mins ago0xadb8860d7426e15fce11a5d17c8a10db8e7cd54b IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00183093 30.000000015
0xb3b3da44c9b67261477c5a2ab142885a76fda3400b69115b7486a3361c10801cTransfer336945192022-09-29 1:52:009 hrs 16 mins agoMad Meerkat Finance: Deployer IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00117775169 30.07
0x59802470950a841b0a96b97bb21f66fbe5f5512559bfb34db2cf8b5cf1b21ec3Approve336928572022-09-29 0:52:3810 hrs 15 mins ago0x34d19f488215aec4f652e544480883e35082350c IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.01161375 250
0xfe87c9fd6e5c205244f69697eb089ac0dce4233539429f665d7588a746c7703bApprove336881132022-09-28 22:09:3012 hrs 59 mins ago0x44c57c1d2993fe82744152b871f9e2793a02b365 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0x380e242214f2b1ef81d04b6325100c9f97ea57e9d8888d87d24cb264fff84a9dApprove336851152022-09-28 20:26:2514 hrs 42 mins ago0xf5e91ef9c10026855c1d9c99766eb6d121a327a7 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0x5a7679a171d44f8011ad89c0648d767c9724b2563303f00aeea565d5b771b4c5Approve336834472022-09-28 19:29:0515 hrs 39 mins ago0xb516fc19e9bc0afdff8f5f0f56f9d96940a724eb IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00139365 30.000000012
0x61481639af5772446a70be2d3ceabdcfceb8f733db061e0cbb2bc6ca0343fe9cTransfer336815142022-09-28 18:22:1916 hrs 46 mins ago0x16b937488dd12cee28281151a18cd73994ace4e3 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00168765 30.000000011
0xe1bbfe82e2f155d23e62b8ed30ac02fa1c4b43ceb7b4a0b8e53153b127c6aaa5Approve336792382022-09-28 17:04:0418 hrs 4 mins ago0xbbcd37cc6ed7d5a5843a341c7c23a8a1f4fe39cb IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.0015627779833.640684122
0x3fe3ba50e58f779f926205f0cb29d8bd2a0a45278a46f95c6b2e82f7240193acApprove336772632022-09-28 15:56:1019 hrs 12 mins ago0xb97843bbda72838e5f7b13a584f953765bdfc999 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0x061a3ba3b7098a6ab9a07abca8a7b7db98bdb2bd60a7a69e992aa825b1c18d0aApprove336727042022-09-28 13:19:2321 hrs 49 mins ago0x4a050e90cbd9a3dd2b2932dc10681a90ed46772e IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0x1441799bf3065c93c3137ec3b5e1b9891556250cc6154bc6f2c6a241602563f3Approve336710992022-09-28 12:24:0122 hrs 44 mins ago0xa019b8ad2cc4b2de16e42cce83aecf8da5ca617f IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00696825 150
0x32108bbcf25bc4b725a916cb67dfc7ff6872c00134e8165cbb6003bc121c0b31Approve336684622022-09-28 10:53:231 day 15 mins ago0xa5e71232a3c8e2d617a80efa9fbe7a69031fa9e6 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.005015758529 107.970262178
0x008e16435e596cb15b249a8ca366bff06ecfd87d9c3becd3649e3d91df819b8aTransfer336676462022-09-28 10:25:191 day 43 mins ago0x76f81e3aa16771d558c71e9890cb6e075b4dd8e0 IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.00132229602630.082949062
0x6b2c2ba9f8e7b55ad2a2458629312a20d2b34de783eac958e0a11ebcaa4156d7Transfer336648942022-09-28 8:50:421 day 2 hrs ago0xadb8860d7426e15fce11a5d17c8a10db8e7cd54b IN  0x0d5665a2319526a117e68e38ebea4610aa8298f80 MATIC0.001834841329 30.069999996
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MLP

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 10 : GLP.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

import "../tokens/MintableBaseToken.sol";

contract MLP is MintableBaseToken {
    constructor() public MintableBaseToken("MMX LP", "MLP", 0) {
    }

    function id() external pure returns (string memory _name) {
        return "MLP";
    }
}

File 2 of 10 : MintableBaseToken.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

import "./BaseToken.sol";
import "./interfaces/IMintable.sol";

contract MintableBaseToken is BaseToken, IMintable {

    mapping (address => bool) public override isMinter;

    constructor(string memory _name, string memory _symbol, uint256 _initialSupply) public BaseToken(_name, _symbol, _initialSupply) {
    }

    modifier onlyMinter() {
        require(isMinter[msg.sender], "MintableBaseToken: forbidden");
        _;
    }

    function setMinter(address _minter, bool _isActive) external override onlyGov {
        isMinter[_minter] = _isActive;
    }

    function mint(address _account, uint256 _amount) external override onlyMinter {
        _mint(_account, _amount);
    }

    function burn(address _account, uint256 _amount) external override onlyMinter {
        _burn(_account, _amount);
    }
}

File 3 of 10 : BaseToken.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

import "../libraries/math/SafeMath.sol";
import "../libraries/token/IERC20.sol";
import "../libraries/token/SafeERC20.sol";

import "./interfaces/IYieldTracker.sol";
import "./interfaces/IBaseToken.sol";

contract BaseToken is IERC20, IBaseToken {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;

    string public name;
    string public symbol;
    uint8 public constant decimals = 18;

    uint256 public override totalSupply;
    uint256 public nonStakingSupply;

    address public gov;

    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowances;

    address[] public yieldTrackers;
    mapping (address => bool) public nonStakingAccounts;
    mapping (address => bool) public admins;

    bool public inPrivateTransferMode;
    mapping (address => bool) public isHandler;

    modifier onlyGov() {
        require(msg.sender == gov, "BaseToken: forbidden");
        _;
    }

    modifier onlyAdmin() {
        require(admins[msg.sender], "BaseToken: forbidden");
        _;
    }

    constructor(string memory _name, string memory _symbol, uint256 _initialSupply) public {
        name = _name;
        symbol = _symbol;
        gov = msg.sender;
        _mint(msg.sender, _initialSupply);
    }

    function setGov(address _gov) external onlyGov {
        gov = _gov;
    }

    function setInfo(string memory _name, string memory _symbol) external onlyGov {
        name = _name;
        symbol = _symbol;
    }

    function setYieldTrackers(address[] memory _yieldTrackers) external onlyGov {
        yieldTrackers = _yieldTrackers;
    }

    function addAdmin(address _account) external onlyGov {
        admins[_account] = true;
    }

    function removeAdmin(address _account) external override onlyGov {
        admins[_account] = false;
    }

    // to help users who accidentally send their tokens to this contract
    function withdrawToken(address _token, address _account, uint256 _amount) external override onlyGov {
        IERC20(_token).safeTransfer(_account, _amount);
    }

    function setInPrivateTransferMode(bool _inPrivateTransferMode) external override onlyGov {
        inPrivateTransferMode = _inPrivateTransferMode;
    }

    function setHandler(address _handler, bool _isActive) external onlyGov {
        isHandler[_handler] = _isActive;
    }

    function addNonStakingAccount(address _account) external onlyAdmin {
        require(!nonStakingAccounts[_account], "BaseToken: _account already marked");
        _updateRewards(_account);
        nonStakingAccounts[_account] = true;
        nonStakingSupply = nonStakingSupply.add(balances[_account]);
    }

    function removeNonStakingAccount(address _account) external onlyAdmin {
        require(nonStakingAccounts[_account], "BaseToken: _account not marked");
        _updateRewards(_account);
        nonStakingAccounts[_account] = false;
        nonStakingSupply = nonStakingSupply.sub(balances[_account]);
    }

    function recoverClaim(address _account, address _receiver) external onlyAdmin {
        for (uint256 i = 0; i < yieldTrackers.length; i++) {
            address yieldTracker = yieldTrackers[i];
            IYieldTracker(yieldTracker).claim(_account, _receiver);
        }
    }

    function claim(address _receiver) external {
        for (uint256 i = 0; i < yieldTrackers.length; i++) {
            address yieldTracker = yieldTrackers[i];
            IYieldTracker(yieldTracker).claim(msg.sender, _receiver);
        }
    }

    function totalStaked() external view override returns (uint256) {
        return totalSupply.sub(nonStakingSupply);
    }

    function balanceOf(address _account) external view override returns (uint256) {
        return balances[_account];
    }

    function stakedBalance(address _account) external view override returns (uint256) {
        if (nonStakingAccounts[_account]) {
            return 0;
        }
        return balances[_account];
    }

    function transfer(address _recipient, uint256 _amount) external override returns (bool) {
        _transfer(msg.sender, _recipient, _amount);
        return true;
    }

    function allowance(address _owner, address _spender) external view override returns (uint256) {
        return allowances[_owner][_spender];
    }

    function approve(address _spender, uint256 _amount) external override returns (bool) {
        _approve(msg.sender, _spender, _amount);
        return true;
    }

    function transferFrom(address _sender, address _recipient, uint256 _amount) external override returns (bool) {
        if (isHandler[msg.sender]) {
            _transfer(_sender, _recipient, _amount);
            return true;
        }
        uint256 nextAllowance = allowances[_sender][msg.sender].sub(_amount, "BaseToken: transfer amount exceeds allowance");
        _approve(_sender, msg.sender, nextAllowance);
        _transfer(_sender, _recipient, _amount);
        return true;
    }

    function _mint(address _account, uint256 _amount) internal {
        require(_account != address(0), "BaseToken: mint to the zero address");

        _updateRewards(_account);

        totalSupply = totalSupply.add(_amount);
        balances[_account] = balances[_account].add(_amount);

        if (nonStakingAccounts[_account]) {
            nonStakingSupply = nonStakingSupply.add(_amount);
        }

        emit Transfer(address(0), _account, _amount);
    }

    function _burn(address _account, uint256 _amount) internal {
        require(_account != address(0), "BaseToken: burn from the zero address");

        _updateRewards(_account);

        balances[_account] = balances[_account].sub(_amount, "BaseToken: burn amount exceeds balance");
        totalSupply = totalSupply.sub(_amount);

        if (nonStakingAccounts[_account]) {
            nonStakingSupply = nonStakingSupply.sub(_amount);
        }

        emit Transfer(_account, address(0), _amount);
    }

    function _transfer(address _sender, address _recipient, uint256 _amount) private {
        require(_sender != address(0), "BaseToken: transfer from the zero address");
        require(_recipient != address(0), "BaseToken: transfer to the zero address");

        if (inPrivateTransferMode) {
            require(isHandler[msg.sender], "BaseToken: msg.sender not whitelisted");
        }

        _updateRewards(_sender);
        _updateRewards(_recipient);

        balances[_sender] = balances[_sender].sub(_amount, "BaseToken: transfer amount exceeds balance");
        balances[_recipient] = balances[_recipient].add(_amount);

        if (nonStakingAccounts[_sender]) {
            nonStakingSupply = nonStakingSupply.sub(_amount);
        }
        if (nonStakingAccounts[_recipient]) {
            nonStakingSupply = nonStakingSupply.add(_amount);
        }

        emit Transfer(_sender, _recipient,_amount);
    }

    function _approve(address _owner, address _spender, uint256 _amount) private {
        require(_owner != address(0), "BaseToken: approve from the zero address");
        require(_spender != address(0), "BaseToken: approve to the zero address");

        allowances[_owner][_spender] = _amount;

        emit Approval(_owner, _spender, _amount);
    }

    function _updateRewards(address _account) private {
        for (uint256 i = 0; i < yieldTrackers.length; i++) {
            address yieldTracker = yieldTrackers[i];
            IYieldTracker(yieldTracker).updateRewards(_account);
        }
    }
}

File 4 of 10 : IMintable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

interface IMintable {
    function isMinter(address _account) external returns (bool);
    function setMinter(address _minter, bool _isActive) external;
    function mint(address _account, uint256 _amount) external;
    function burn(address _account, uint256 _amount) external;
}

File 5 of 10 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

File 6 of 10 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

File 7 of 10 : SafeERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

import "./IERC20.sol";
import "../math/SafeMath.sol";
import "../utils/Address.sol";

/**
 * @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 SafeMath for uint256;
    using Address for address;

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

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

    /**
     * @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'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

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

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

    /**
     * @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
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

File 8 of 10 : IYieldTracker.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

interface IYieldTracker {
    function claim(address _account, address _receiver) external returns (uint256);
    function updateRewards(address _account) external;
    function getTokensPerInterval() external view returns (uint256);
    function claimable(address _account) external view returns (uint256);
}

File 9 of 10 : IBaseToken.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

interface IBaseToken {
    function totalStaked() external view returns (uint256);
    function stakedBalance(address _account) external view returns (uint256);
    function removeAdmin(address _account) external;
    function setInPrivateTransferMode(bool _inPrivateTransferMode) external;
    function withdrawToken(address _token, address _account, uint256 _amount) external;
}

File 10 of 10 : Address.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.6.2;

/**
 * @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
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 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");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (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");

        // solhint-disable-next-line avoid-low-level-calls
        (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");

        // solhint-disable-next-line avoid-low-level-calls
        (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.3._
     */
    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.3._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private 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

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addNonStakingAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"admins","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"id","outputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"inPrivateTransferMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isHandler","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonStakingAccounts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonStakingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"recoverClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeNonStakingAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_handler","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_inPrivateTransferMode","type":"bool"}],"name":"setInPrivateTransferMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"setInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_yieldTrackers","type":"address[]"}],"name":"setYieldTrackers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"stakedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"yieldTrackers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600681526020016504d4d58204c560d41b8152506040518060400160405280600381526020016204d4c560ec1b815250600082828282600090805190602001906200006a929190620002e5565b50815162000080906001906020850190620002e5565b50600480546001600160a01b03191633908117909155620000a29082620000ae565b50505050505062000381565b6001600160a01b038216620000f55760405162461bcd60e51b8152600401808060200182810382526023815260200180620025366023913960400191505060405180910390fd5b6200010082620001e4565b6200011c816002546200028360201b6200146d1790919060201c565b6002556001600160a01b038216600090815260056020908152604090912054620001519183906200146d62000283821b17901c565b6001600160a01b03831660009081526005602090815260408083209390935560089052205460ff16156200019f576200019b816003546200028360201b6200146d1790919060201c565b6003555b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60005b6007548110156200027f576000600782815481106200020257fe5b600091825260208220015460408051635fd6196560e01b81526001600160a01b03878116600483015291519190921693508392635fd61965926024808201939182900301818387803b1580156200025857600080fd5b505af11580156200026d573d6000803e3d6000fd5b505060019093019250620001e7915050565b5050565b600082820183811015620002de576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032857805160ff191683800117855562000358565b8280016001018555821562000358579182015b82811115620003585782518255916020019190600101906200033b565b50620003669291506200036a565b5090565b5b808211156200036657600081556001016200036b565b6121a580620003916000396000f3fe608060405234801561001057600080fd5b50600436106101b75760003560e01c806301e33667146101bc57806306fdde03146101f4578063095ea7b31461027157806312d43a51146102b15780631785f53c146102d557806318160ddd146102fb5780631e83409a1461031557806323b872dd1461033b578063276eab4e1461037157806327e235e314610412578063313ce5671461043857806340c10f1914610456578063429b62e51461048257806346ea87af146104a857806352cd38d9146104ce57806355b6ed5c146104eb5780635a47a1a7146105195780636021726714610538578063622890771461055e578063704802751461058457806370a08231146105aa578063817b1cd2146105d05780639554381a146105d857806395d89b41146105fe578063996f11ee146106065780639cb7de4b146106345780639dc29fac14610662578063a9059cbb1461068e578063a923fc40146106ba578063aa271e1a146107e3578063af640d0f14610809578063c93be63614610811578063cf456ae714610819578063cfad57a214610847578063dd62ed3e1461086d578063dfbaefb11461089b578063fb30d916146108a3575b600080fd5b6101f2600480360360608110156101d257600080fd5b506001600160a01b038135811691602081013590911690604001356108c9565b005b6101fc61092f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023657818101518382015260200161021e565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61029d6004803603604081101561028757600080fd5b506001600160a01b0381351690602001356109bd565b604080519115158252519081900360200190f35b6102b96109d3565b604080516001600160a01b039092168252519081900360200190f35b6101f2600480360360208110156102eb57600080fd5b50356001600160a01b03166109e2565b610303610a50565b60408051918252519081900360200190f35b6101f26004803603602081101561032b57600080fd5b50356001600160a01b0316610a56565b61029d6004803603606081101561035157600080fd5b506001600160a01b03813581169160208101359091169060400135610b0d565b6101f26004803603602081101561038757600080fd5b810190602081018135600160201b8111156103a157600080fd5b8201836020820111156103b357600080fd5b803590602001918460208302840111600160201b831117156103d457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ba7945050505050565b6103036004803603602081101561042857600080fd5b50356001600160a01b0316610c07565b610440610c19565b6040805160ff9092168252519081900360200190f35b6101f26004803603604081101561046c57600080fd5b506001600160a01b038135169060200135610c1e565b61029d6004803603602081101561049857600080fd5b50356001600160a01b0316610c8b565b61029d600480360360208110156104be57600080fd5b50356001600160a01b0316610ca0565b6102b9600480360360208110156104e457600080fd5b5035610cb5565b6103036004803603604081101561050157600080fd5b506001600160a01b0381358116916020013516610cdc565b6101f26004803603602081101561052f57600080fd5b50351515610cf9565b6103036004803603602081101561054e57600080fd5b50356001600160a01b0316610d59565b6101f26004803603602081101561057457600080fd5b50356001600160a01b0316610da2565b6101f26004803603602081101561059a57600080fd5b50356001600160a01b0316610e95565b610303600480360360208110156105c057600080fd5b50356001600160a01b0316610f06565b610303610f21565b61029d600480360360208110156105ee57600080fd5b50356001600160a01b0316610f3f565b6101fc610f54565b6101f26004803603604081101561061c57600080fd5b506001600160a01b0381358116916020013516610fae565b6101f26004803603604081101561064a57600080fd5b506001600160a01b03813516906020013515156110b5565b6101f26004803603604081101561067857600080fd5b506001600160a01b03813516906020013561112d565b61029d600480360360408110156106a457600080fd5b506001600160a01b03813516906020013561119a565b6101f2600480360360408110156106d057600080fd5b810190602081018135600160201b8111156106ea57600080fd5b8201836020820111156106fc57600080fd5b803590602001918460018302840111600160201b8311171561071d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561076f57600080fd5b82018360208201111561078157600080fd5b803590602001918460018302840111600160201b831117156107a257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111a7945050505050565b61029d600480360360208110156107f957600080fd5b50356001600160a01b031661121b565b6101fc611230565b61030361124d565b6101f26004803603604081101561082f57600080fd5b506001600160a01b0381351690602001351515611253565b6101f26004803603602081101561085d57600080fd5b50356001600160a01b03166112cb565b6103036004803603604081101561088357600080fd5b506001600160a01b038135811691602001351661133a565b61029d611365565b6101f2600480360360208110156108b957600080fd5b50356001600160a01b031661136e565b6004546001600160a01b03163314610916576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b61092a6001600160a01b03841683836114c5565b505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109b55780601f1061098a576101008083540402835291602001916109b5565b820191906000526020600020905b81548152906001019060200180831161099857829003601f168201915b505050505081565b60006109ca338484611517565b50600192915050565b6004546001600160a01b031681565b6004546001600160a01b03163314610a2f576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b60025481565b60005b600754811015610b0957600060078281548110610a7257fe5b6000918252602080832090910154604080516310e059a160e11b81523360048201526001600160a01b038881166024830152915191909216945084936321c0b34293604480850194919392918390030190829087803b158015610ad457600080fd5b505af1158015610ae8573d6000803e3d6000fd5b505050506040513d6020811015610afe57600080fd5b505050600101610a59565b5050565b336000908152600b602052604081205460ff1615610b3857610b30848484611603565b506001610ba0565b6000610b82836040518060600160405280602c8152602001611fcc602c91396001600160a01b03881660009081526006602090815260408083203384529091529020549190611819565b9050610b8f853383611517565b610b9a858585611603565b60019150505b9392505050565b6004546001600160a01b03163314610bf4576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b8051610b09906007906020840190611e23565b60056020526000908152604090205481565b601281565b336000908152600c602052604090205460ff16610c81576040805162461bcd60e51b815260206004820152601c60248201527b26b4b73a30b13632a130b9b2aa37b5b2b71d103337b93134b23232b760211b604482015290519081900360640190fd5b610b0982826118b0565b60096020526000908152604090205460ff1681565b600b6020526000908152604090205460ff1681565b60078181548110610cc257fe5b6000918252602090912001546001600160a01b0316905081565b600660209081526000928352604080842090915290825290205481565b6004546001600160a01b03163314610d46576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b6001600160a01b03811660009081526008602052604081205460ff1615610d8257506000610d9d565b506001600160a01b0381166000908152600560205260409020545b919050565b3360009081526009602052604090205460ff16610df4576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff1615610e4c5760405162461bcd60e51b81526004018080602001828103825260228152602001806120b06022913960400191505060405180910390fd5b610e55816119a2565b6001600160a01b0381166000908152600860209081526040808320805460ff191660011790556005909152902054600354610e8f9161146d565b60035550565b6004546001600160a01b03163314610ee2576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6001600160a01b031660009081526005602052604090205490565b6000610f3a600354600254611a3890919063ffffffff16565b905090565b60086020526000908152604090205460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109b55780601f1061098a576101008083540402835291602001916109b5565b3360009081526009602052604090205460ff16611000576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b60005b60075481101561092a5760006007828154811061101c57fe5b6000918252602080832090910154604080516310e059a160e11b81526001600160a01b0389811660048301528881166024830152915191909216945084936321c0b34293604480850194919392918390030190829087803b15801561108057600080fd5b505af1158015611094573d6000803e3d6000fd5b505050506040513d60208110156110aa57600080fd5b505050600101611003565b6004546001600160a01b03163314611102576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b336000908152600c602052604090205460ff16611190576040805162461bcd60e51b815260206004820152601c60248201527b26b4b73a30b13632a130b9b2aa37b5b2b71d103337b93134b23232b760211b604482015290519081900360640190fd5b610b098282611a7a565b60006109ca338484611603565b6004546001600160a01b031633146111f4576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b8151611207906000906020850190611e88565b50805161092a906001906020840190611e88565b600c6020526000908152604090205460ff1681565b60408051808201909152600381526204d4c560ec1b602082015290565b60035481565b6004546001600160a01b031633146112a0576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6004546001600160a01b03163314611318576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600a5460ff1681565b3360009081526009602052604090205460ff166113c0576040805162461bcd60e51b8152602060048201526014602482015260008051602061201e833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff1661142d576040805162461bcd60e51b815260206004820152601e60248201527f42617365546f6b656e3a205f6163636f756e74206e6f74206d61726b65640000604482015290519081900360640190fd5b611436816119a2565b6001600160a01b0381166000908152600860209081526040808320805460ff191690556005909152902054600354610e8f91611a38565b600082820183811015610ba0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261092a908490611b93565b6001600160a01b03831661155c5760405162461bcd60e51b815260040180806020018281038252602881526020018061203e6028913960400191505060405180910390fd5b6001600160a01b0382166115a15760405162461bcd60e51b8152600401808060200182810382526026815260200180611fa66026913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166116485760405162461bcd60e51b81526004018080602001828103825260298152602001806121476029913960400191505060405180910390fd5b6001600160a01b03821661168d5760405162461bcd60e51b8152600401808060200182810382526027815260200180611f5c6027913960400191505060405180910390fd5b600a5460ff16156116e657336000908152600b602052604090205460ff166116e65760405162461bcd60e51b8152600401808060200182810382526025815260200180611f376025913960400191505060405180910390fd5b6116ef836119a2565b6116f8826119a2565b611735816040518060600160405280602a8152602001612066602a91396001600160a01b0386166000908152600560205260409020549190611819565b6001600160a01b038085166000908152600560205260408082209390935590841681522054611764908261146d565b6001600160a01b0380841660009081526005602090815260408083209490945591861681526008909152205460ff16156117a9576003546117a59082611a38565b6003555b6001600160a01b03821660009081526008602052604090205460ff16156117db576003546117d7908261146d565b6003555b816001600160a01b0316836001600160a01b0316600080516020612090833981519152836040518082815260200191505060405180910390a3505050565b600081848411156118a85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561186d578181015183820152602001611855565b50505050905090810190601f16801561189a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0382166118f55760405162461bcd60e51b8152600401808060200182810382526023815260200180611f836023913960400191505060405180910390fd5b6118fe826119a2565b60025461190b908261146d565b6002556001600160a01b038216600090815260056020526040902054611931908261146d565b6001600160a01b03831660009081526005602090815260408083209390935560089052205460ff161561196f5760035461196b908261146d565b6003555b6040805182815290516001600160a01b038416916000916000805160206120908339815191529181900360200190a35050565b60005b600754811015610b09576000600782815481106119be57fe5b600091825260208220015460408051635fd6196560e01b81526001600160a01b03878116600483015291519190921693508392635fd61965926024808201939182900301818387803b158015611a1357600080fd5b505af1158015611a27573d6000803e3d6000fd5b5050600190930192506119a5915050565b6000610ba083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611819565b6001600160a01b038216611abf5760405162461bcd60e51b81526004018080602001828103825260258152602001806121226025913960400191505060405180910390fd5b611ac8826119a2565b611b05816040518060600160405280602681526020016120d2602691396001600160a01b0385166000908152600560205260409020549190611819565b6001600160a01b038316600090815260056020526040902055600254611b2b9082611a38565b6002556001600160a01b03821660009081526008602052604090205460ff1615611b6057600354611b5c9082611a38565b6003555b6040805182815290516000916001600160a01b038516916000805160206120908339815191529181900360200190a35050565b6060611be8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611c449092919063ffffffff16565b80519091501561092a57808060200190516020811015611c0757600080fd5b505161092a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806120f8602a913960400191505060405180910390fd5b6060611c538484600085611c5b565b949350505050565b606082471015611c9c5760405162461bcd60e51b8152600401808060200182810382526026815260200180611ff86026913960400191505060405180910390fd5b611ca585611db7565b611cf6576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310611d355780518252601f199092019160209182019101611d16565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611d97576040519150601f19603f3d011682016040523d82523d6000602084013e611d9c565b606091505b5091509150611dac828286611dbd565b979650505050505050565b3b151590565b60608315611dcc575081610ba0565b825115611ddc5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561186d578181015183820152602001611855565b828054828255906000526020600020908101928215611e78579160200282015b82811115611e7857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611e43565b50611e84929150611f02565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ec957805160ff1916838001178555611ef6565b82800160010185558215611ef6579182015b82811115611ef6578251825591602001919060010190611edb565b50611e84929150611f21565b5b80821115611e845780546001600160a01b0319168155600101611f03565b5b80821115611e845760008155600101611f2256fe42617365546f6b656e3a206d73672e73656e646572206e6f742077686974656c697374656442617365546f6b656e3a207472616e7366657220746f20746865207a65726f206164647265737342617365546f6b656e3a206d696e7420746f20746865207a65726f206164647265737342617365546f6b656e3a20617070726f766520746f20746865207a65726f206164647265737342617365546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c42617365546f6b656e3a20666f7262696464656e00000000000000000000000042617365546f6b656e3a20617070726f76652066726f6d20746865207a65726f206164647265737342617365546f6b656e3a207472616e7366657220616d6f756e7420657863656564732062616c616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42617365546f6b656e3a205f6163636f756e7420616c7265616479206d61726b656442617365546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e63655361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656442617365546f6b656e3a206275726e2066726f6d20746865207a65726f206164647265737342617365546f6b656e3a207472616e736665722066726f6d20746865207a65726f2061646472657373a26469706673582212207eeec047d899d5d74022c843effc8a7ed4d5e5878587494f3432205de28de6fc64736f6c634300060c003342617365546f6b656e3a206d696e7420746f20746865207a65726f2061646472657373

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.