ETH Price: $2,164.11 (-6.85%)

Contract

0x0a4aB95D6Cd1D8D719C4E2Bd6E326Ff6dB706b85
 

Overview

ETH Balance

0.4035 ETH

Eth Value

$873.22 (@ $2,164.11/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim117944862021-02-05 5:53:191868 days ago1612504399IN
0x0a4aB95D...6dB706b85
0 ETH0.00365057110
Claim116475972021-01-13 15:56:291890 days ago1610553389IN
0x0a4aB95D...6dB706b85
0 ETH0.0026050570
Claim116392222021-01-12 9:07:141891 days ago1610442434IN
0x0a4aB95D...6dB706b85
0 ETH0.0024189765
Claim Owner116322712021-01-11 7:35:361893 days ago1610350536IN
0x0a4aB95D...6dB706b85
0 ETH0.01089671308.82012032
Claim116198082021-01-09 9:37:581894 days ago1610185078IN
0x0a4aB95D...6dB706b85
0 ETH0.0030144181
Claim116071162021-01-07 10:53:351896 days ago1610016815IN
0x0a4aB95D...6dB706b85
0 ETH0.00390757105
Claim115883152021-01-04 13:46:161899 days ago1609767976IN
0x0a4aB95D...6dB706b85
0 ETH0.00368508111
Claim Owner115868782021-01-04 8:17:501900 days ago1609748270IN
0x0a4aB95D...6dB706b85
0 ETH0.01098665290
Purchase115789892021-01-03 3:09:321901 days ago1609643372IN
0x0a4aB95D...6dB706b85
0.5 ETH0.0304721298
Claim115742742021-01-02 9:48:511901 days ago1609580931IN
0x0a4aB95D...6dB706b85
0 ETH0.0016593550
Purchase115742602021-01-02 9:45:541901 days ago1609580754IN
0x0a4aB95D...6dB706b85
1.98 ETH0.0162114550
Claim115566962020-12-30 17:14:201904 days ago1609348460IN
0x0a4aB95D...6dB706b85
0 ETH0.00394925119
Claim115436732020-12-28 17:06:361906 days ago1609175196IN
0x0a4aB95D...6dB706b85
0 ETH0.0051753156.00000145
Claim115428582020-12-28 13:59:261906 days ago1609163966IN
0x0a4aB95D...6dB706b85
0 ETH0.00915489246
Claim115428212020-12-28 13:49:511906 days ago1609163391IN
0x0a4aB95D...6dB706b85
0 ETH0.0059544160
Claim Owner115385442020-12-27 22:23:551907 days ago1609107835IN
0x0a4aB95D...6dB706b85
0 ETH0.0014396338
Claim115159292020-12-24 11:09:031910 days ago1608808143IN
0x0a4aB95D...6dB706b85
0 ETH0.0019241558
Claim115159152020-12-24 11:04:421910 days ago1608807882IN
0x0a4aB95D...6dB706b85
0 ETH0.0024881275
Claim115158912020-12-24 10:59:301910 days ago1608807570IN
0x0a4aB95D...6dB706b85
0 ETH0.0027757878
Claim115158872020-12-24 10:57:411910 days ago1608807461IN
0x0a4aB95D...6dB706b85
0 ETH0.0029027778
Purchase115158652020-12-24 10:52:501910 days ago1608807170IN
0x0a4aB95D...6dB706b85
1.04 ETH0.0432486374
Claim114979572020-12-21 16:50:201913 days ago1608569420IN
0x0a4aB95D...6dB706b85
0 ETH0.0026422671
Claim Owner114950922020-12-21 6:36:091914 days ago1608532569IN
0x0a4aB95D...6dB706b85
0 ETH0.0015532841
Claim114949032020-12-21 5:53:081914 days ago1608529988IN
0x0a4aB95D...6dB706b85
0 ETH0.0012710638.3
Claim114948592020-12-21 5:42:221914 days ago1608529342IN
0x0a4aB95D...6dB706b85
0 ETH0.0012046836.3
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-117944862021-02-05 5:53:191868 days ago1612504399
0x0a4aB95D...6dB706b85
0.053 ETH
-115883152021-01-04 13:46:161899 days ago1609767976
0x0a4aB95D...6dB706b85
0.149 ETH
-115868782021-01-04 8:17:501900 days ago1609748270
0x0a4aB95D...6dB706b85
0.31 ETH
-115868782021-01-04 8:17:501900 days ago1609748270
0x0a4aB95D...6dB706b85
0.31 ETH
-115742742021-01-02 9:48:511901 days ago1609580931
0x0a4aB95D...6dB706b85
1.386 ETH
-115566962020-12-30 17:14:201904 days ago1609348460
0x0a4aB95D...6dB706b85
0.104 ETH
-115436732020-12-28 17:06:361906 days ago1609175196
0x0a4aB95D...6dB706b85
0.052 ETH
-115385442020-12-27 22:23:551907 days ago1609107835
0x0a4aB95D...6dB706b85
0.13 ETH
-115385442020-12-27 22:23:551907 days ago1609107835
0x0a4aB95D...6dB706b85
0.13 ETH
-115159292020-12-24 11:09:031910 days ago1608808143
0x0a4aB95D...6dB706b85
0.052 ETH
-115159152020-12-24 11:04:421910 days ago1608807882
0x0a4aB95D...6dB706b85
0.052 ETH
-115158912020-12-24 10:59:301910 days ago1608807570
0x0a4aB95D...6dB706b85
0.52 ETH
-114950922020-12-21 6:36:091914 days ago1608532569
0x0a4aB95D...6dB706b85
0.125 ETH
-114950922020-12-21 6:36:091914 days ago1608532569
0x0a4aB95D...6dB706b85
0.125 ETH
-114949032020-12-21 5:53:081914 days ago1608529988
0x0a4aB95D...6dB706b85
0.1 ETH
-114948592020-12-21 5:42:221914 days ago1608529342
0x0a4aB95D...6dB706b85
0.025 ETH
-114916682020-12-20 17:47:021914 days ago1608486422
0x0a4aB95D...6dB706b85
0.25 ETH
-114914522020-12-20 17:03:291914 days ago1608483809
0x0a4aB95D...6dB706b85
0.275 ETH
-114905632020-12-20 13:47:301914 days ago1608472050
0x0a4aB95D...6dB706b85
0.1 ETH
-114636622020-12-16 10:45:141918 days ago1608115514
0x0a4aB95D...6dB706b85
0.025 ETH
-114520702020-12-14 16:03:251920 days ago1607961805
0x0a4aB95D...6dB706b85
0.07 ETH
-114243652020-12-10 9:24:121924 days ago1607592252
0x0a4aB95D...6dB706b85
0.963 ETH
-114123432020-12-08 13:13:281926 days ago1607433208
0x0a4aB95D...6dB706b85
0.2125 ETH
-114123432020-12-08 13:13:281926 days ago1607433208
0x0a4aB95D...6dB706b85
0.2125 ETH
-114120502020-12-08 12:05:151926 days ago1607429115
0x0a4aB95D...6dB706b85
0.12 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Treasury

Compiler Version
v0.5.15+commit.6a57276f

Optimization Enabled:
Yes with 500 runs

Other Settings:
byzantium EvmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-11-03
*/

/**
 *Submitted for verification at Etherscan.io on 2020-11-03
*/

// File: contracts/SafeMath.sol

pragma solidity 0.5.15;

/**
 * @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) {
        require(b <= a, "SafeMath: subtraction overflow");
        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-solidity/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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        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) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

// File: contracts/ERC20/ERC20.sol

pragma solidity 0.5.15;


/**
 * @dev Implementation of the `IERC20` interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using `_mint`.
 * For a generic mechanism see `ERC20Mintable`.
 *
 * *For a detailed writeup see our guide [How to implement supply
 * mechanisms](https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226).*
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an `Approval` event is emitted on calls to `transferFrom`.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard `decreaseAllowance` and `increaseAllowance`
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See `IERC20.approve`.
 */
contract ERC20 {
    using SafeMath for uint256;

    string public name;
    string public symbol;
    string public desc;
    uint8 public decimals;

    mapping (address => uint256) _balances;

    mapping (address => mapping (address => uint256)) _allowances;

    uint256 _totalSupply;

    /**
     * @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 `TokenOwner` is set by
     * a call to `approve`. `value` is the new allowance.
     */
    event Approval(address indexed TokenOwner, address indexed spender, uint256 value);

    /**
     * @dev See `IERC20.totalSupply`.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See `IERC20.balanceOf`.
     */
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See `IERC20.transfer`.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     * @dev See `IERC20.allowance`.
     */
    function allowance(address TokenOwner, address spender) public view returns (uint256) {
        return _allowances[TokenOwner][spender];
    }

    /**
     * @dev See `IERC20.approve`.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev See `IERC20.transferFrom`.
     *
     * Emits an `Approval` event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of `ERC20`;
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `value`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: Not enough in deligation");
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to `transfer`, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a `Transfer` event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(_balances[sender] >= amount, "ERC20: Not Enough balance");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a `Transfer` event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
    * @dev Destroys `amount` tokens from `account`, reducing the
    * total supply.
    *
    * Emits a `Transfer` event with `to` set to the zero address.
    *
    * Requirements
    *
    * - `account` cannot be the zero address.
    * - `account` must have at least `amount` tokens.
    */
    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `TokenOwner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an `Approval` event.
     *
     * Requirements:
     *
     * - `TokenOwner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address TokenOwner, address spender, uint256 value) internal {
        require(TokenOwner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[TokenOwner][spender] = value;
        emit Approval(TokenOwner, spender, value);
    }

    /**
     * @dev Destroys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See `_burn` and `_approve`.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
    }
}

// File: contracts/governance/Owner.sol

pragma solidity 0.5.15;

contract Owner {

    address public OwnerAddress;

    modifier isOwner(){
        require( msg.sender == OwnerAddress);
        _;
    }

    function changeOwner ( address _newAddress )
        isOwner
        public
        returns ( bool )
    {
        OwnerAddress = _newAddress;
        return true;
    }

}

// File: contracts/token/IBTCToken.sol

pragma solidity 0.5.15;



contract IBTCToken is ERC20 , Owner{

    address public TAddr;

    modifier isTreasury(){
        require(msg.sender == TAddr);
        _;
    }

    constructor(  )
        public
    {
        name = "IBTC Blockchain";
        symbol = "IBTC";
        desc = "IBTC Blockchain";
        decimals = 18;
        OwnerAddress = msg.sender;
    }

    function setTreasury ( address _TAddres )
        isOwner
        public
        returns ( bool )
    {
        TAddr = _TAddres;
        return true;
    }

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

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

    function mint(address recipient, uint256 amount)
        isTreasury
        public
        returns (bool result )
    {
        _mint( recipient , amount );
        result = true;
    }

    function transfer(address recipient, uint256 amount)
        public
        returns (bool result )
    {
        _transfer(msg.sender, recipient , amount );
        result = true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: Not enough in deligation");
        _transfer(msg.sender, recipient , amount );
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }


    function allowance(address TokenOwner, address spender) public view returns (uint256) {
        return _allowances[TokenOwner][spender];
    }

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

}

// File: contracts/treasury/Treasury_ds.sol

pragma solidity 0.5.15;


contract Treasury_ds is Owner {
    using SafeMath for uint256;

    bool public contractState;

    IBTCToken Token;

    address public TokenAddr;

    address payable public Owner1;

    address payable public Owner2;

    address masterAddr;

    uint256 public Rate;

    bool public enabled;

    mapping ( uint256 => LLimit ) public Levels;

    struct LLimit{
        uint256 percent;
        uint256 salesLimit;
        uint256 bonus;
    }

    uint256 public MaxLevel;

//    Child -> Parent Mapping
    mapping ( address => address ) public PCTree;

    mapping ( address => userData ) public userLevel;

    struct userData{
        uint256 level;
        uint256 sales;
        uint256 share;
        uint256 bonus;
    }

    modifier isInActive(){
        require(contractState == false);
        _;
    }

    modifier isActive(){
        require(contractState == true);
        _;
    }

    modifier isSameLength ( uint256 _s1 , uint256 _s2 ){
        require(_s1 == _s2);
        _;
    }

    modifier isVaildClaim( uint256 _amt ){
        require( userLevel[msg.sender].share >= _amt );
        _;
    }

    modifier isVaildReferer( address _ref ){
        require( userLevel[_ref].level != 0 );
        _;
    }

    modifier isSaleClose ( uint256 _amt ){
        require( enabled == true );
        _;
    }

    modifier isValidTOwner(){
        require(( Owner1 == msg.sender ) || (Owner2 == msg.sender));
        _;
    }

    event puchaseEvent( address indexed _buyer , address indexed _referer , uint256 _value , uint256 _tokens );

    event claimEvent( address indexed _buyer ,  uint256 _value , uint256 _pendingShare );

    event eventSetAccount( address indexed _child , address indexed _parent , uint256 _sales , uint256 _bonus , uint256 _level );
}

// File: contracts/treasury/Treasury.sol

pragma solidity 0.5.15;


contract Treasury is Treasury_ds{


    constructor( address _TAddr )
        public
    {
        Token = IBTCToken( _TAddr );
        TokenAddr = _TAddr;
        OwnerAddress = msg.sender;
        contractState = false;
    }

    function setLevels( uint256[] memory _percent , uint256[] memory _salesLimit , uint256[] memory _bonus )
        public
        isSameLength( _salesLimit.length , _percent.length )
        isInActive
        isOwner
    {
        MaxLevel = _salesLimit.length;
        for (uint i=0; i<_salesLimit.length; i++) {
            Levels[i+1] = LLimit( _percent[i] ,_salesLimit[i] , _bonus[i] );
        }
    }

    function setAccount ( address _child , address _parent , uint256 _sales )
        isInActive
        isOwner
        public
        returns ( bool )
    {
        PCTree[_child] = _parent;
        userLevel[ _child ].sales = _sales;
        userLevel[ _child ].level = 1;
        for ( uint i= 1 ; i <= MaxLevel ; i++) {
            if( Levels[i].salesLimit < _sales ){
                userLevel[ _child ].bonus = Levels[i].bonus;
                userLevel[ _child ].level = i;
            }
        }
        emit eventSetAccount( _child , _parent , _sales , userLevel[ _child ].bonus , userLevel[ _child ].level );
        return true;
    }

    function setupTreasury ( uint256 _rate , address payable _owner1 , address payable _owner2 )
        isInActive
        isOwner
        public
        returns ( bool )
    {
        enabled = true;
        Rate = _rate;
        masterAddr = address(this);
        PCTree[masterAddr] = address(0);
        Owner1 = _owner1;
        Owner2 = _owner2;
        userLevel[masterAddr].level = MaxLevel;
        contractState = true;
        return true;
    }

    function calcRate ( uint256 _value )
        public
        view
        returns ( uint256 )
    {
        return _value.mul( 10**18 ).div( Rate );
    }

    function LoopFx ( address _addr , uint256 _token ,  uint256 _value , uint256 _shareRatio )
        internal
        returns ( uint256 value )
    {
        userLevel[ _addr ].sales = userLevel[ _addr ].sales.add( _token );
        if( _shareRatio < Levels[ userLevel[ _addr ].level ].percent ){
            uint256 diff = Levels[ userLevel[ _addr ].level ].percent.sub(_shareRatio);
            userLevel[ _addr ].share = userLevel[ _addr ].share.add( _value.mul(diff).div(10000) );
            value = Levels[ userLevel[ _addr ].level ].percent;
        }else if( _shareRatio == Levels[ userLevel[ _addr ].level ].percent ){
            value = Levels[ userLevel[ _addr ].level ].percent;
        }
        return value;
    }

    function LevelChange ( address _addr )
        internal
    {
        uint256 curLevel = userLevel[_addr ].level;
        while( curLevel <= MaxLevel){
            if( ( userLevel[ _addr ].sales < Levels[ curLevel ].salesLimit ) ){
                break;
            }else{
                userLevel[_addr].bonus = Levels[ curLevel ].bonus;
                userLevel[_addr ].level = curLevel;
            }
            curLevel = curLevel.add(1);
        }
    }

    function purchase ( address _referer )
        isActive
        isVaildReferer( _referer )
        payable
        public
        returns ( bool )
    {
        address Parent;
        uint256 cut = 0;
        uint256 tokens = calcRate(msg.value);
        uint256 lx = 0;
        bool overflow = false;
        iMint( msg.sender , tokens);
        if( userLevel[ msg.sender ].level == 0 ){
            userLevel[ msg.sender ].level = 1;
        }
        if( PCTree[msg.sender] == address(0)){
            Parent = _referer;
            PCTree[msg.sender] = Parent;
        }else{
            Parent = PCTree[msg.sender];
        }
        while( lx < 100 ){
            lx = lx.add(1);
            cut = LoopFx( Parent , tokens , msg.value , cut );
            LevelChange( Parent );
            if( PCTree[ Parent ] == address(0)){
                break;
            }
            Parent = PCTree[ Parent ];
            if( lx == 100){
                overflow = true;
            }
        }
        if( overflow ){
            cut = LoopFx( masterAddr , tokens , msg.value , cut );
        }
        emit puchaseEvent( msg.sender , PCTree[msg.sender] , msg.value , tokens );
        return true;
    }

    function iMint ( address _addr , uint256 _value )
        isSaleClose( _value )
        internal
    {
        Token.mint( _addr , _value );
    }

    function claim (uint256 _amt)
        isActive
        isVaildClaim( _amt )
        payable
        public
        returns ( bool )
    {
        userLevel[ msg.sender ].share = userLevel[ msg.sender ].share.sub( _amt );
        Token.mint( msg.sender , userLevel[ msg.sender ].bonus );
        userLevel[ msg.sender ].bonus = 0;
        msg.sender.transfer( _amt );
        emit claimEvent( msg.sender , _amt , userLevel[ msg.sender ].share );
        return true;
    }

    function claimOwner ()
        isActive
        isValidTOwner
        public
        payable
        returns ( bool )
    {
        uint256 _amt  = userLevel[ address(this) ].share.div(2);
        userLevel[ address(this) ].share = 0;
        Owner1.transfer( _amt );
        Owner2.transfer( _amt );
        emit claimEvent( Owner1 , _amt , userLevel[ address(this) ].share );
        emit claimEvent( Owner2 , _amt , userLevel[ address(this) ].share );
        return true;
    }

    function setRate ( uint256 _rate )
        isOwner
        public
        returns ( bool )
    {
        Rate = _rate;
        return true;
    }

    function enableSales ( )
        isOwner
        public
        returns ( bool )
    {
        enabled = true;
        return true;
    }
    function disableSales ( )
        isOwner
        public
        returns ( bool )
    {
        enabled = false;
        return true;
    }

    function viewStatus( address _addr )
        view
        public
        returns ( uint256 _level , uint256 _sales , uint256 _claim , uint256 _bonus )
    {
        _level = userLevel[ _addr ].level;
        _sales = userLevel[ _addr ].sales;
        _claim = userLevel[ _addr ].share;
        _bonus = userLevel[ _addr ].bonus;
    }

    function checkRef ( address _ref)
        public
        view
        returns ( bool )
    {
        return ( userLevel[_ref].level != 0 );
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_TAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_pendingShare","type":"uint256"}],"name":"claimEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_child","type":"address"},{"indexed":true,"internalType":"address","name":"_parent","type":"address"},{"indexed":false,"internalType":"uint256","name":"_sales","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_bonus","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_level","type":"uint256"}],"name":"eventSetAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_buyer","type":"address"},{"indexed":true,"internalType":"address","name":"_referer","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"puchaseEvent","type":"event"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Levels","outputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"salesLimit","type":"uint256"},{"internalType":"uint256","name":"bonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MaxLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Owner1","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Owner2","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OwnerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"PCTree","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"calcRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"changeOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_ref","type":"address"}],"name":"checkRef","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"contractState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableSales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableSales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referer","type":"address"}],"name":"purchase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_child","type":"address"},{"internalType":"address","name":"_parent","type":"address"},{"internalType":"uint256","name":"_sales","type":"uint256"}],"name":"setAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"_percent","type":"uint256[]"},{"internalType":"uint256[]","name":"_salesLimit","type":"uint256[]"},{"internalType":"uint256[]","name":"_bonus","type":"uint256[]"}],"name":"setLevels","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setRate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"},{"internalType":"address payable","name":"_owner1","type":"address"},{"internalType":"address payable","name":"_owner2","type":"address"}],"name":"setupTreasury","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userLevel","outputs":[{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"sales","type":"uint256"},{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"uint256","name":"bonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"viewStatus","outputs":[{"internalType":"uint256","name":"_level","type":"uint256"},{"internalType":"uint256","name":"_sales","type":"uint256"},{"internalType":"uint256","name":"_claim","type":"uint256"},{"internalType":"uint256","name":"_bonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506040516117a63803806117a68339818101604052602081101561003357600080fd5b505160018054600160a060020a03909216600160a060020a0319928316811790915560028054831690911790556000805460a060020a60ff021992163317919091169055611720806100866000396000f3fe6080604052600436106101a8576000357c01000000000000000000000000000000000000000000000000000000009004806374db3064116100f3578063b7fc970e1161009c578063dac06abc11610076578063dac06abc14610690578063ef2de18f146106c3578063f1d2b3c2146106f6576101a8565b8063b7fc970e1461063c578063c63df5ef14610651578063ca43849914610666576101a8565b80638e1807b7116100cd5780638e1807b71461058e578063a6f9dae1146105c1578063b2a6cef8146105f4576101a8565b806374db3064146105335780637f17b05d1461056457806385209ee014610579576101a8565b806334fcf4371161015557806340f6b1bc1161012f57806340f6b1bc1461034f578063613487081461036457806370706ba914610379576101a8565b806334fcf43714610300578063379607f51461032a5780633bd1adec14610347576101a8565b8063238dafe011610186578063238dafe01461026c57806325b31a9714610281578063280e31cc146102a7576101a8565b8063012c7893146101ad5780631b8e94a11461020457806321e8631e1461022b575b600080fd5b3480156101b957600080fd5b506101f0600480360360608110156101d057600080fd5b50600160a060020a0381358116916020810135909116906040013561070b565b604080519115158252519081900360200190f35b34801561021057600080fd5b5061021961086a565b60408051918252519081900360200190f35b34801561023757600080fd5b506101f06004803603606081101561024e57600080fd5b50803590600160a060020a0360208201358116916040013516610870565b34801561027857600080fd5b506101f0610977565b6101f06004803603602081101561029757600080fd5b5035600160a060020a0316610980565b3480156102b357600080fd5b506102da600480360360208110156102ca57600080fd5b5035600160a060020a0316610b97565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561030c57600080fd5b506101f06004803603602081101561032357600080fd5b5035610bbe565b6101f06004803603602081101561034057600080fd5b5035610bdf565b6101f0610d96565b34801561035b57600080fd5b50610219610f5e565b34801561037057600080fd5b506101f0610f64565b34801561038557600080fd5b506105316004803603606081101561039c57600080fd5b8101906020810181356401000000008111156103b757600080fd5b8201836020820111156103c957600080fd5b803590602001918460208302840111640100000000831117156103eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561043b57600080fd5b82018360208201111561044d57600080fd5b8035906020019184602083028401116401000000008311171561046f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460208302840111640100000000831117156104f357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f8c945050505050565b005b34801561053f57600080fd5b50610548611082565b60408051600160a060020a039092168252519081900360200190f35b34801561057057600080fd5b50610548611091565b34801561058557600080fd5b506101f06110a0565b34801561059a57600080fd5b50610548600480360360208110156105b157600080fd5b5035600160a060020a03166110c1565b3480156105cd57600080fd5b506101f0600480360360208110156105e457600080fd5b5035600160a060020a03166110dc565b34801561060057600080fd5b5061061e6004803603602081101561061757600080fd5b5035611126565b60408051938452602084019290925282820152519081900360600190f35b34801561064857600080fd5b50610548611147565b34801561065d57600080fd5b506101f0611156565b34801561067257600080fd5b506102196004803603602081101561068957600080fd5b5035611182565b34801561069c57600080fd5b506101f0600480360360208110156106b357600080fd5b5035600160a060020a03166111b6565b3480156106cf57600080fd5b506102da600480360360208110156106e657600080fd5b5035600160a060020a03166111d3565b34801561070257600080fd5b50610548611204565b6000805474010000000000000000000000000000000000000000900460ff161561073457600080fd5b600054600160a060020a0316331461074b57600080fd5b600160a060020a038481166000908152600a60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff191694881694909417909355600b9052206001818101849055908190555b60095481116107fb576000818152600860205260409020600101548311156107f357600081815260086020908152604080832060020154600160a060020a0389168452600b90925290912060038101919091558190555b60010161079c565b50600160a060020a038481166000818152600b602090815260409182902060038101549054835188815292830191909152818301529051928616927f0b37d68b209cdb4b1e664978a3d1878aa1a636477e785c5a7caef820f09061a39181900360600190a35060019392505050565b60065481565b6000805474010000000000000000000000000000000000000000900460ff161561089957600080fd5b600054600160a060020a031633146108b057600080fd5b506007805460ff1916600190811790915560068490556005805473ffffffffffffffffffffffffffffffffffffffff199081163017808355600160a060020a039081166000908152600a60209081526040808320805486169055600380548a86169087161790556004805489861696169590951790945560095494549092168152600b90915290812091909155805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790559392505050565b60075460ff1681565b6000805474010000000000000000000000000000000000000000900460ff1615156001146109ad57600080fd5b600160a060020a0382166000908152600b602052604090205482906109d157600080fd5b600080806109de34611182565b90506000806109ed3384611213565b336000908152600b6020526040902054610a1557336000908152600b60205260409020600190555b336000908152600a6020526040902054600160a060020a0316610a6f57336000908152600a60205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a16179055879450610a8b565b336000908152600a6020526040902054600160a060020a031694505b6064821015610b1257610aa582600163ffffffff6112c916565b9150610ab385843487611344565b9350610abe856114b0565b600160a060020a038581166000908152600a602052604090205416610ae257610b12565b600160a060020a039485166000908152600a6020526040902054909416936064821415610b0d575060015b610a8b565b8015610b3357600554610b3090600160a060020a0316843487611344565b93505b336000818152600a60209081526040918290205482513481529182018790528251600160a060020a0390911693927f27d9322242c81d1051748f1d416008cc843aae9cc6412180118bb0428a4e1530928290030190a3506001979650505050505050565b600b6020526000908152604090208054600182015460028301546003909301549192909184565b60008054600160a060020a03163314610bd657600080fd5b50600655600190565b6000805474010000000000000000000000000000000000000000900460ff161515600114610c0c57600080fd5b336000908152600b60205260409020600201548290811115610c2d57600080fd5b336000908152600b6020526040902060020154610c50908463ffffffff61155c16565b336000818152600b60209081526040808320600281019590955560015460039095015481517f40c10f190000000000000000000000000000000000000000000000000000000081526004810195909552602485015251600160a060020a03909416936340c10f1993604480820194918390030190829087803b158015610cd557600080fd5b505af1158015610ce9573d6000803e3d6000fd5b505050506040513d6020811015610cff57600080fd5b5050336000818152600b60205260408082206003018290555185156108fc0291869190818181858888f19350505050158015610d3f573d6000803e3d6000fd5b50336000818152600b60209081526040918290206002015482518781529182015281517f983bf7148e3e9ebde769e6a1d5b19b34b9c318555cfb03836448a9376bd68d45929181900390910190a250600192915050565b6000805474010000000000000000000000000000000000000000900460ff161515600114610dc357600080fd5b600354600160a060020a0316331480610de65750600454600160a060020a031633145b610def57600080fd5b306000908152600b60205260408120600290810154610e139163ffffffff6115d316565b306000908152600b60205260408082206002018290556003549051929350600160a060020a03169183156108fc0291849190818181858888f19350505050158015610e62573d6000803e3d6000fd5b50600454604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610e9d573d6000803e3d6000fd5b50600354306000908152600b6020908152604091829020600201548251858152918201528151600160a060020a03909316927f983bf7148e3e9ebde769e6a1d5b19b34b9c318555cfb03836448a9376bd68d45929181900390910190a2600454306000908152600b6020908152604091829020600201548251858152918201528151600160a060020a03909316927f983bf7148e3e9ebde769e6a1d5b19b34b9c318555cfb03836448a9376bd68d45929181900390910190a2600191505090565b60095481565b60008054600160a060020a03163314610f7c57600080fd5b506007805460ff19169055600190565b81518351808214610f9c57600080fd5b60005474010000000000000000000000000000000000000000900460ff1615610fc457600080fd5b600054600160a060020a03163314610fdb57600080fd5b835160095560005b845181101561107a57604051806060016040528087838151811061100357fe5b6020026020010151815260200186838151811061101c57fe5b6020026020010151815260200185838151811061103557fe5b60209081029190910181015190915260019283016000818152600883526040908190208451815592840151948301949094559190920151600290920191909155610fe3565b505050505050565b600454600160a060020a031681565b600054600160a060020a031681565b60005474010000000000000000000000000000000000000000900460ff1681565b600a60205260009081526040902054600160a060020a031681565b60008054600160a060020a031633146110f457600080fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60086020526000908152604090208054600182015460029092015490919083565b600254600160a060020a031681565b60008054600160a060020a0316331461116e57600080fd5b506007805460ff1916600190811790915590565b6006546000906111b0906111a484670de0b6b3a764000063ffffffff61165716565b9063ffffffff6115d316565b92915050565b600160a060020a03166000908152600b6020526040902054151590565b600160a060020a03166000908152600b60205260409020805460018201546002830154600390930154919390929190565b600354600160a060020a031681565b600754819060ff16151560011461122957600080fd5b600154604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015260248201869052915191909216916340c10f199160448083019260209291908290030181600087803b15801561129857600080fd5b505af11580156112ac573d6000803e3d6000fd5b505050506040513d60208110156112c257600080fd5b5050505050565b60008282018381101561133d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600160a060020a0384166000908152600b6020526040812060010154611370908563ffffffff6112c916565b600160a060020a0386166000908152600b6020908152604080832060018101949094559254825260089052205482101561145357600160a060020a0385166000908152600b6020908152604080832054835260089091528120546113da908463ffffffff61155c16565b905061141d6113f56127106111a4878563ffffffff61165716565b600160a060020a0388166000908152600b60205260409020600201549063ffffffff6112c916565b600160a060020a0387166000908152600b6020908152604080832060028101949094559254825260089052205491506114a89050565b600160a060020a0385166000908152600b6020908152604080832054835260089091529020548214156114a85750600160a060020a0384166000908152600b6020908152604080832054835260089091529020545b949350505050565b600160a060020a0381166000908152600b60205260409020545b6009548111611558576000818152600860209081526040808320600190810154600160a060020a0387168552600b909352922090910154101561150c57611558565b600081815260086020908152604080832060020154600160a060020a0386168452600b909252909120600381019190915581905561155181600163ffffffff6112c916565b90506114ca565b5050565b6000828211156115cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080821161164357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161164e57fe5b04949350505050565b600082611666575060006111b0565b8282028284828161167357fe5b041461133d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116cb6021913960400191505060405180910390fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820078087a427f268dec34175a60290e5fd24f7a6e1a48a69c4bafd43d3ce68191464736f6c634300050f003200000000000000000000000008029a00765dc0c71c25f221552fddd2ba4965e8

Deployed Bytecode

0x6080604052600436106101a8576000357c01000000000000000000000000000000000000000000000000000000009004806374db3064116100f3578063b7fc970e1161009c578063dac06abc11610076578063dac06abc14610690578063ef2de18f146106c3578063f1d2b3c2146106f6576101a8565b8063b7fc970e1461063c578063c63df5ef14610651578063ca43849914610666576101a8565b80638e1807b7116100cd5780638e1807b71461058e578063a6f9dae1146105c1578063b2a6cef8146105f4576101a8565b806374db3064146105335780637f17b05d1461056457806385209ee014610579576101a8565b806334fcf4371161015557806340f6b1bc1161012f57806340f6b1bc1461034f578063613487081461036457806370706ba914610379576101a8565b806334fcf43714610300578063379607f51461032a5780633bd1adec14610347576101a8565b8063238dafe011610186578063238dafe01461026c57806325b31a9714610281578063280e31cc146102a7576101a8565b8063012c7893146101ad5780631b8e94a11461020457806321e8631e1461022b575b600080fd5b3480156101b957600080fd5b506101f0600480360360608110156101d057600080fd5b50600160a060020a0381358116916020810135909116906040013561070b565b604080519115158252519081900360200190f35b34801561021057600080fd5b5061021961086a565b60408051918252519081900360200190f35b34801561023757600080fd5b506101f06004803603606081101561024e57600080fd5b50803590600160a060020a0360208201358116916040013516610870565b34801561027857600080fd5b506101f0610977565b6101f06004803603602081101561029757600080fd5b5035600160a060020a0316610980565b3480156102b357600080fd5b506102da600480360360208110156102ca57600080fd5b5035600160a060020a0316610b97565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561030c57600080fd5b506101f06004803603602081101561032357600080fd5b5035610bbe565b6101f06004803603602081101561034057600080fd5b5035610bdf565b6101f0610d96565b34801561035b57600080fd5b50610219610f5e565b34801561037057600080fd5b506101f0610f64565b34801561038557600080fd5b506105316004803603606081101561039c57600080fd5b8101906020810181356401000000008111156103b757600080fd5b8201836020820111156103c957600080fd5b803590602001918460208302840111640100000000831117156103eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561043b57600080fd5b82018360208201111561044d57600080fd5b8035906020019184602083028401116401000000008311171561046f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460208302840111640100000000831117156104f357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f8c945050505050565b005b34801561053f57600080fd5b50610548611082565b60408051600160a060020a039092168252519081900360200190f35b34801561057057600080fd5b50610548611091565b34801561058557600080fd5b506101f06110a0565b34801561059a57600080fd5b50610548600480360360208110156105b157600080fd5b5035600160a060020a03166110c1565b3480156105cd57600080fd5b506101f0600480360360208110156105e457600080fd5b5035600160a060020a03166110dc565b34801561060057600080fd5b5061061e6004803603602081101561061757600080fd5b5035611126565b60408051938452602084019290925282820152519081900360600190f35b34801561064857600080fd5b50610548611147565b34801561065d57600080fd5b506101f0611156565b34801561067257600080fd5b506102196004803603602081101561068957600080fd5b5035611182565b34801561069c57600080fd5b506101f0600480360360208110156106b357600080fd5b5035600160a060020a03166111b6565b3480156106cf57600080fd5b506102da600480360360208110156106e657600080fd5b5035600160a060020a03166111d3565b34801561070257600080fd5b50610548611204565b6000805474010000000000000000000000000000000000000000900460ff161561073457600080fd5b600054600160a060020a0316331461074b57600080fd5b600160a060020a038481166000908152600a60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff191694881694909417909355600b9052206001818101849055908190555b60095481116107fb576000818152600860205260409020600101548311156107f357600081815260086020908152604080832060020154600160a060020a0389168452600b90925290912060038101919091558190555b60010161079c565b50600160a060020a038481166000818152600b602090815260409182902060038101549054835188815292830191909152818301529051928616927f0b37d68b209cdb4b1e664978a3d1878aa1a636477e785c5a7caef820f09061a39181900360600190a35060019392505050565b60065481565b6000805474010000000000000000000000000000000000000000900460ff161561089957600080fd5b600054600160a060020a031633146108b057600080fd5b506007805460ff1916600190811790915560068490556005805473ffffffffffffffffffffffffffffffffffffffff199081163017808355600160a060020a039081166000908152600a60209081526040808320805486169055600380548a86169087161790556004805489861696169590951790945560095494549092168152600b90915290812091909155805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790559392505050565b60075460ff1681565b6000805474010000000000000000000000000000000000000000900460ff1615156001146109ad57600080fd5b600160a060020a0382166000908152600b602052604090205482906109d157600080fd5b600080806109de34611182565b90506000806109ed3384611213565b336000908152600b6020526040902054610a1557336000908152600b60205260409020600190555b336000908152600a6020526040902054600160a060020a0316610a6f57336000908152600a60205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a16179055879450610a8b565b336000908152600a6020526040902054600160a060020a031694505b6064821015610b1257610aa582600163ffffffff6112c916565b9150610ab385843487611344565b9350610abe856114b0565b600160a060020a038581166000908152600a602052604090205416610ae257610b12565b600160a060020a039485166000908152600a6020526040902054909416936064821415610b0d575060015b610a8b565b8015610b3357600554610b3090600160a060020a0316843487611344565b93505b336000818152600a60209081526040918290205482513481529182018790528251600160a060020a0390911693927f27d9322242c81d1051748f1d416008cc843aae9cc6412180118bb0428a4e1530928290030190a3506001979650505050505050565b600b6020526000908152604090208054600182015460028301546003909301549192909184565b60008054600160a060020a03163314610bd657600080fd5b50600655600190565b6000805474010000000000000000000000000000000000000000900460ff161515600114610c0c57600080fd5b336000908152600b60205260409020600201548290811115610c2d57600080fd5b336000908152600b6020526040902060020154610c50908463ffffffff61155c16565b336000818152600b60209081526040808320600281019590955560015460039095015481517f40c10f190000000000000000000000000000000000000000000000000000000081526004810195909552602485015251600160a060020a03909416936340c10f1993604480820194918390030190829087803b158015610cd557600080fd5b505af1158015610ce9573d6000803e3d6000fd5b505050506040513d6020811015610cff57600080fd5b5050336000818152600b60205260408082206003018290555185156108fc0291869190818181858888f19350505050158015610d3f573d6000803e3d6000fd5b50336000818152600b60209081526040918290206002015482518781529182015281517f983bf7148e3e9ebde769e6a1d5b19b34b9c318555cfb03836448a9376bd68d45929181900390910190a250600192915050565b6000805474010000000000000000000000000000000000000000900460ff161515600114610dc357600080fd5b600354600160a060020a0316331480610de65750600454600160a060020a031633145b610def57600080fd5b306000908152600b60205260408120600290810154610e139163ffffffff6115d316565b306000908152600b60205260408082206002018290556003549051929350600160a060020a03169183156108fc0291849190818181858888f19350505050158015610e62573d6000803e3d6000fd5b50600454604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610e9d573d6000803e3d6000fd5b50600354306000908152600b6020908152604091829020600201548251858152918201528151600160a060020a03909316927f983bf7148e3e9ebde769e6a1d5b19b34b9c318555cfb03836448a9376bd68d45929181900390910190a2600454306000908152600b6020908152604091829020600201548251858152918201528151600160a060020a03909316927f983bf7148e3e9ebde769e6a1d5b19b34b9c318555cfb03836448a9376bd68d45929181900390910190a2600191505090565b60095481565b60008054600160a060020a03163314610f7c57600080fd5b506007805460ff19169055600190565b81518351808214610f9c57600080fd5b60005474010000000000000000000000000000000000000000900460ff1615610fc457600080fd5b600054600160a060020a03163314610fdb57600080fd5b835160095560005b845181101561107a57604051806060016040528087838151811061100357fe5b6020026020010151815260200186838151811061101c57fe5b6020026020010151815260200185838151811061103557fe5b60209081029190910181015190915260019283016000818152600883526040908190208451815592840151948301949094559190920151600290920191909155610fe3565b505050505050565b600454600160a060020a031681565b600054600160a060020a031681565b60005474010000000000000000000000000000000000000000900460ff1681565b600a60205260009081526040902054600160a060020a031681565b60008054600160a060020a031633146110f457600080fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60086020526000908152604090208054600182015460029092015490919083565b600254600160a060020a031681565b60008054600160a060020a0316331461116e57600080fd5b506007805460ff1916600190811790915590565b6006546000906111b0906111a484670de0b6b3a764000063ffffffff61165716565b9063ffffffff6115d316565b92915050565b600160a060020a03166000908152600b6020526040902054151590565b600160a060020a03166000908152600b60205260409020805460018201546002830154600390930154919390929190565b600354600160a060020a031681565b600754819060ff16151560011461122957600080fd5b600154604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015260248201869052915191909216916340c10f199160448083019260209291908290030181600087803b15801561129857600080fd5b505af11580156112ac573d6000803e3d6000fd5b505050506040513d60208110156112c257600080fd5b5050505050565b60008282018381101561133d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600160a060020a0384166000908152600b6020526040812060010154611370908563ffffffff6112c916565b600160a060020a0386166000908152600b6020908152604080832060018101949094559254825260089052205482101561145357600160a060020a0385166000908152600b6020908152604080832054835260089091528120546113da908463ffffffff61155c16565b905061141d6113f56127106111a4878563ffffffff61165716565b600160a060020a0388166000908152600b60205260409020600201549063ffffffff6112c916565b600160a060020a0387166000908152600b6020908152604080832060028101949094559254825260089052205491506114a89050565b600160a060020a0385166000908152600b6020908152604080832054835260089091529020548214156114a85750600160a060020a0384166000908152600b6020908152604080832054835260089091529020545b949350505050565b600160a060020a0381166000908152600b60205260409020545b6009548111611558576000818152600860209081526040808320600190810154600160a060020a0387168552600b909352922090910154101561150c57611558565b600081815260086020908152604080832060020154600160a060020a0386168452600b909252909120600381019190915581905561155181600163ffffffff6112c916565b90506114ca565b5050565b6000828211156115cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080821161164357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161164e57fe5b04949350505050565b600082611666575060006111b0565b8282028284828161167357fe5b041461133d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116cb6021913960400191505060405180910390fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820078087a427f268dec34175a60290e5fd24f7a6e1a48a69c4bafd43d3ce68191464736f6c634300050f0032

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

00000000000000000000000008029a00765dc0c71c25f221552fddd2ba4965e8

-----Decoded View---------------
Arg [0] : _TAddr (address): 0x08029A00765Dc0c71C25f221552FddD2ba4965e8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000008029a00765dc0c71c25f221552fddd2ba4965e8


Deployed Bytecode Sourcemap

17314:6587:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17982:660;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17982:660:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17982:660:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;15636:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15636:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;18650:468;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18650:468:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18650:468:0;;;-1:-1:-1;;;;;18650:468:0;;;;;;;;;;;;:::i;15664:19::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15664:19:0;;;:::i;20524:1244::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20524:1244:0;-1:-1:-1;;;;;20524:1244:0;;:::i;15968:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15968:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15968:48:0;-1:-1:-1;;;;;15968:48:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22930:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22930:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22930:152:0;;:::i;21935:484::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21935:484:0;;:::i;22427:495::-;;;:::i;15852:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15852:23:0;;;:::i;23240:146::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23240:146:0;;;:::i;17559:415::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17559:415:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17559:415:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;17559:415:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17559:415:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17559:415:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17559:415:0;;;;;;;;-1:-1:-1;17559:415:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;17559:415:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17559:415:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17559:415:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17559:415:0;;;;;;;;-1:-1:-1;17559:415:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;17559:415:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17559:415:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17559:415:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17559:415:0;;-1:-1:-1;17559:415:0;;-1:-1:-1;;;;;17559:415:0:i;:::-;;15571:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15571:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;15571:29:0;;;;;;;;;;;;;;12635:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12635:27:0;;;:::i;15442:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15442:25:0;;;:::i;15915:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15915:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15915:44:0;-1:-1:-1;;;;;15915:44:0;;:::i;12764:176::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12764:176:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12764:176:0;-1:-1:-1;;;;;12764:176:0;;:::i;15692:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15692:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15692:43:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;15500:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15500:24:0;;;:::i;23090:144::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23090:144:0;;;:::i;19126:159::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19126:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19126:159:0;;:::i;23745:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23745:151:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23745:151:0;-1:-1:-1;;;;;23745:151:0;;:::i;23394:343::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23394:343:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23394:343:0;-1:-1:-1;;;;;23394:343:0;;:::i;15533:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15533:29:0;;;:::i;17982:660::-;18128:4;16192:13;;;;;;;:22;16184:31;;;;;;12723:12;;-1:-1:-1;;;;;12723:12:0;12709:10;:26;12700:36;;;;;;-1:-1:-1;;;;;18151:14:0;;;;;;;:6;:14;;;;;;;;:24;;-1:-1:-1;;18151:24:0;;;;;;;;;;;18186:9;:19;;;-1:-1:-1;18186:25:0;;;:34;;;18231:29;;;;18271:226;18294:8;;18289:1;:13;18271:226;;18329:9;;;;:6;:9;;;;;:20;;;:29;-1:-1:-1;18325:161:0;;;18407:9;;;;:6;:9;;;;;;;;:15;;;-1:-1:-1;;;;;18379:19:0;;;;:9;:19;;;;;;:25;;;:43;;;;18441:29;;;18325:161;18305:3;;18271:226;;;-1:-1:-1;;;;;;18512:100:0;;;18557:19;;;;:9;:19;;;;;;;;;:25;;;;18585;;18512:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18630:4:0;17982:660;;;;;:::o;15636:19::-;;;;:::o;18650:468::-;18815:4;16192:13;;;;;;;:22;16184:31;;;;;;12723:12;;-1:-1:-1;;;;;12723:12:0;12709:10;:26;12700:36;;;;;;-1:-1:-1;18838:7:0;:14;;-1:-1:-1;;18838:14:0;18848:4;18838:14;;;;;;18863:4;:12;;;18886:10;:26;;-1:-1:-1;;18886:26:0;;;18907:4;18886:26;;;;-1:-1:-1;;;;;18930:10:0;;;18838:7;18923:18;;;:6;:18;;;;;;;;:31;;;;;;18965:6;:16;;;;;;;;;;;18992:6;:16;;;;;;;;;;;;;;19049:8;;19029:10;;;;;19019:21;;:9;:21;;;;;;:38;;;;19068:20;;-1:-1:-1;;19068:20:0;;;;;18650:468;;;;;:::o;15664:19::-;;;;;;:::o;20524:1244::-;20669:4;16281:13;;;;;;;:21;;16298:4;16281:21;16273:30;;;;;;-1:-1:-1;;;;;16621:15:0;;;;;;:9;:15;;;;;:21;20606:8;;16612:37;;;;;;20692:14;;;20760:19;20769:9;20760:8;:19::i;:::-;20743:36;-1:-1:-1;20790:10:0;;20847:27;20854:10;20743:36;20847:5;:27::i;:::-;20900:10;20889:23;;;;:9;:23;;;;;:29;20885:100;;20951:10;20940:23;;;;:9;:23;;;;;20972:1;20940:33;;20885:100;21006:10;21029:1;20999:18;;;:6;:18;;;;;;-1:-1:-1;;;;;20999:18:0;20995:181;;21086:10;21079:18;;;;:6;:18;;;;;:27;;-1:-1:-1;;21079:27:0;-1:-1:-1;;;;;21079:27:0;;;;;;;-1:-1:-1;20995:181:0;;;21153:10;21146:18;;;;:6;:18;;;;;;-1:-1:-1;;;;;21146:18:0;;-1:-1:-1;20995:181:0;21198:3;21193:2;:8;21186:365;;;21223:9;:2;21230:1;21223:9;:6;:9;:::i;:::-;21218:14;;21253:43;21261:6;21270;21279:9;21291:3;21253:6;:43::i;:::-;21247:49;;21311:21;21324:6;21311:11;:21::i;:::-;-1:-1:-1;;;;;21351:16:0;;;21379:1;21351:16;;;:6;:16;;;;;;;21347:75;;21401:5;;21347:75;-1:-1:-1;;;;;21445:16:0;;;;;;;:6;:16;;;;;;;;;;21486:3;21480:9;;21476:64;;;-1:-1:-1;21520:4:0;21476:64;21186:365;;;21565:8;21561:94;;;21604:10;;21596:47;;-1:-1:-1;;;;;21604:10:0;21617:6;21626:9;21638:3;21596:6;:47::i;:::-;21590:53;;21561:94;21704:10;21697:18;;;;:6;:18;;;;;;;;;;21670:68;;21718:9;21670:68;;;;;;;;;;-1:-1:-1;;;;;21697:18:0;;;;21704:10;21670:68;;;;;;;;-1:-1:-1;21756:4:0;;20524:1244;-1:-1:-1;;;;;;;20524:1244:0:o;15968:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22930:152::-;23017:4;12723:12;;-1:-1:-1;;;;;12723:12:0;12709:10;:26;12700:36;;;;;;-1:-1:-1;23040:4:0;:12;23070:4;;22930:152::o;21935:484::-;22065:4;16281:13;;;;;;;:21;;16298:4;16281:21;16273:30;;;;;;16507:10;16497:21;;;;:9;:21;;;;;:27;;;22006:4;;16497:35;-1:-1:-1;16497:35:0;16488:46;;;;;;22131:10;22120:23;;;;:9;:23;;;;;:29;;;:41;;22155:4;22120:41;:33;:41;:::i;:::-;22099:10;22088:23;;;;:9;:23;;;;;;;;:29;;;:73;;;;22172:5;;22197:29;;;;;22172:56;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22172:5:0;;;;:10;;:56;;;;;;;;;;;;;:5;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;22172:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22172:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;22250:10:0;22271:1;22239:23;;;:9;22172:56;22239:23;;;;;:29;;:33;;;22283:27;;;;;;22304:4;;22283:27;;22271:1;22283:27;22304:4;22250:10;22283:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;22338:10:0;22358:23;;;;:9;:23;;;;;;;;;:29;;;22326:63;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22407:4:0;;21935:484;-1:-1:-1;;21935:484:0:o;22427:495::-;22543:4;16281:13;;;;;;;:21;;16298:4;16281:21;16273:30;;;;;;16824:6;;-1:-1:-1;;;;;16824:6:0;16834:10;16824:20;;16822:50;;-1:-1:-1;16851:6:0;;-1:-1:-1;;;;;16851:6:0;16861:10;16851:20;16822:50;16814:59;;;;;;22601:4;22566:12;22582:26;;;:9;:26;;;;;22619:1;22582:32;;;;:39;;;:36;:39;:::i;:::-;22651:4;22667:1;22632:26;;;:9;:26;;;;;;:32;;:36;;;22679:6;;:23;;22566:55;;-1:-1:-1;;;;;;22679:6:0;;:23;;;;;22566:55;;22679:23;;22667:1;22679:23;22566:55;22679:6;:23;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;22713:6:0;;:23;;-1:-1:-1;;;;;22713:6:0;;;;:23;;;;;22730:4;;22713:6;:23;:6;:23;22730:4;22713:6;:23;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;22764:6:0;;22799:4;22764:6;22780:26;;;:9;:26;;;;;;;;;:32;;;22752:62;;;;;;;;;;;-1:-1:-1;;;;;22764:6:0;;;;22752:62;;;;;;;;;;;22842:6;;22877:4;22842:6;22858:26;;;:9;:26;;;;;;;;;:32;;;22830:62;;;;;;;;;;;-1:-1:-1;;;;;22842:6:0;;;;22830:62;;;;;;;;;;;22910:4;22903:11;;;22427:495;:::o;15852:23::-;;;;:::o;23240:146::-;23318:4;12723:12;;-1:-1:-1;;;;;12723:12:0;12709:10;:26;12700:36;;;;;;-1:-1:-1;23341:7:0;:15;;-1:-1:-1;;23341:15:0;;;;23240:146;:::o;17559:415::-;17703:11;:18;17724:8;:15;16408:3;16401;:10;16393:19;;;;;;16192:13;;;;;;;:22;16184:31;;;;;;12723:12;;-1:-1:-1;;;;;12723:12:0;12709:10;:26;12700:36;;;;;;17806:18;;17795:8;:29;17840:6;17835:132;17852:11;:18;17850:1;:20;17835:132;;;17906:49;;;;;;;;17914:8;17923:1;17914:11;;;;;;;;;;;;;;17906:49;;;;17927:11;17939:1;17927:14;;;;;;;;;;;;;;17906:49;;;;17944:6;17951:1;17944:9;;;;;;;;;;;;;;;;;;;17906:49;;;17901:1;17899:3;;;17892:11;;;;:6;:11;;;;;;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;17835:132;;;;17559:415;;;;;:::o;15571:29::-;;;-1:-1:-1;;;;;15571:29:0;;:::o;12635:27::-;;;-1:-1:-1;;;;;12635:27:0;;:::o;15442:25::-;;;;;;;;;:::o;15915:44::-;;;;;;;;;;;;-1:-1:-1;;;;;15915:44:0;;:::o;12764:176::-;12861:4;12723:12;;-1:-1:-1;;;;;12723:12:0;12709:10;:26;12700:36;;;;;;-1:-1:-1;12884:12:0;:26;;-1:-1:-1;;;;;12884:26:0;;-1:-1:-1;;12884:26:0;;;;;;;12764:176;;;:::o;15692:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15500:24::-;;;-1:-1:-1;;;;;15500:24:0;;:::o;23090:144::-;23167:4;12723:12;;-1:-1:-1;;;;;12723:12:0;12709:10;:26;12700:36;;;;;;-1:-1:-1;23190:7:0;:14;;-1:-1:-1;;23190:14:0;23200:4;23190:14;;;;;;23090:144;:::o;19126:159::-;19271:4;;19212:7;;19245:32;;:20;:6;19257;19245:20;:10;:20;:::i;:::-;:24;:32;:24;:32;:::i;:::-;19238:39;19126:159;-1:-1:-1;;19126:159:0:o;23745:151::-;-1:-1:-1;;;;;23860:15:0;23828:4;23860:15;;;:9;:15;;;;;:21;:26;;;23745:151::o;23394:343::-;-1:-1:-1;;;;;23573:18:0;23480:14;23573:18;;;:9;:18;;;;;:24;;23617;;;;23661;;;;23705;;;;;23573;;23617;;23661;23705;23394:343::o;15533:29::-;;;-1:-1:-1;;;;;15533:29:0;;:::o;21776:151::-;16734:7;;21848:6;;16734:7;;:15;;:7;:15;16725:26;;;;;;21891:5;;:28;;;;;;-1:-1:-1;;;;;21891:28:0;;;;;;;;;;;;;;;:5;;;;;:10;;:28;;;;;;;;;;;;;;:5;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;21891:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21891:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;21776:151:0:o;965:181::-;1023:7;1055:5;;;1079:6;;;;1071:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1137:1;965:181;-1:-1:-1;;;965:181:0:o;19293:740::-;-1:-1:-1;;;;;19480:18:0;;19421:13;19480:18;;;:9;:18;;;;;:24;;;:38;;19510:6;19480:38;:28;:38;:::i;:::-;-1:-1:-1;;;;;19453:18:0;;;;;;:9;:18;;;;;;;;:24;;;:65;;;;19555:24;;19547:34;;:6;:34;;;:42;19533:56;;19529:474;;;-1:-1:-1;;;;;19629:18:0;;19606:12;19629:18;;;:9;:18;;;;;;;;:24;19621:34;;:6;:34;;;;;:42;:59;;19668:11;19621:59;:46;:59;:::i;:::-;19606:74;-1:-1:-1;19722:59:0;19752:27;19773:5;19752:16;:6;19606:74;19752:16;:10;:16;:::i;:27::-;-1:-1:-1;;;;;19722:18:0;;;;;;:9;:18;;;;;:24;;;;:59;:28;:59;:::i;:::-;-1:-1:-1;;;;;19695:18:0;;;;;;:9;:18;;;;;;;;:24;;;:86;;;;19812:24;;19804:34;;:6;:34;;;:42;;-1:-1:-1;19529:474:0;;-1:-1:-1;19529:474:0;;-1:-1:-1;;;;;19890:18:0;;19882:34;19890:18;;;:9;:18;;;;;;;;:24;19882:34;;:6;:34;;;;;:42;19867:57;;19863:140;;;-1:-1:-1;;;;;;19957:18:0;;19949:34;19957:18;;;:9;:18;;;;;;;;:24;19949:34;;:6;:34;;;;;:42;19863:140;19293:740;;;;;;:::o;20041:475::-;-1:-1:-1;;;;;20133:17:0;;20114:16;20133:17;;;:9;:17;;;;;:23;20167:342;20186:8;;20174;:20;20167:342;;20243:18;;;;:6;:18;;;;;;;;:29;;;;;-1:-1:-1;;;;;20216:18:0;;;;:9;:18;;;;;:24;;;;:56;20210:247;;;20295:5;;20210:247;20364:18;;;;:6;:18;;;;;;;;:24;;;-1:-1:-1;;;;;20339:16:0;;;;:9;:16;;;;;;:22;;;:49;;;;20407:34;;;20482:15;:8;20495:1;20482:15;:12;:15;:::i;:::-;20471:26;;20167:342;;;20041:475;;:::o;1421:184::-;1479:7;1512:1;1507;:6;;1499:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1571:5:0;;;1421:184::o;2794:333::-;2852:7;2951:1;2947;:5;2939:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2994:9;3010:1;3006;:5;;;;;;;2794:333;-1:-1:-1;;;;2794:333:0:o;1856:470::-;1914:7;2158:6;2154:47;;-1:-1:-1;2188:1:0;2181:8;;2154:47;2225:5;;;2229:1;2225;:5;:1;2249:5;;;;;:10;2241:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://078087a427f268dec34175a60290e5fd24f7a6e1a48a69c4bafd43d3ce681914

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

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