ETH Price: $3,040.84 (+4.46%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer102323032020-06-09 15:25:221613 days ago1591716322IN
0x8E23ECF1...f481697C0
0 ETH0.0007339329
0xef32ca4d102198182020-06-07 16:50:481615 days ago1591548648IN
0x8E23ECF1...f481697C0
0.1 ETH0.0025517122
0x2e0a8889100963542020-05-19 12:21:461634 days ago1589890906IN
0x8E23ECF1...f481697C0
0.12063581 ETH0.0025495522
Change Min Balan...100957352020-05-19 10:04:061634 days ago1589882646IN
0x8E23ECF1...f481697C0
0 ETH0.0002841220.8
Transfer100954102020-05-19 8:52:131634 days ago1589878333IN
0x8E23ECF1...f481697C0
0 ETH0.0005727323.28
0x79c5540b100953502020-05-19 8:39:061634 days ago1589877546IN
0x8E23ECF1...f481697C0
0.1445 ETH0.0028974725
Transfer100953092020-05-19 8:29:051634 days ago1589876945IN
0x8E23ECF1...f481697C0
0.1275 ETH0.0005502723
Transfer100950942020-05-19 7:42:241634 days ago1589874144IN
0x8E23ECF1...f481697C0
0.1105 ETH0.0005502723
Transfer100904562020-05-18 14:13:361635 days ago1589811216IN
0x8E23ECF1...f481697C0
0.1105 ETH0.0008373735
Transfer100846252020-05-17 16:15:411636 days ago1589732141IN
0x8E23ECF1...f481697C0
0.085 ETH0.0005944626
Transfer100699552020-05-15 9:33:331638 days ago1589535213IN
0x8E23ECF1...f481697C0
0.005 ETH0.0005784525.30000023
Transfer100698762020-05-15 9:13:541638 days ago1589534034IN
0x8E23ECF1...f481697C0
0.00501326 ETH0.0005258723
0xa476740f100454022020-05-11 14:15:241642 days ago1589206524IN
0x8E23ECF1...f481697C0
0.3 ETH0.0017292114.91999995
0x80ddba3d100252982020-05-08 11:27:531645 days ago1588937273IN
0x8E23ECF1...f481697C0
0.29 ETH0.0017336614.95845422
0x79c5540b100244752020-05-08 8:28:221645 days ago1588926502IN
0x8E23ECF1...f481697C0
2.488 ETH0.001043099
0x80ddba3d100243842020-05-08 8:08:251645 days ago1588925305IN
0x8E23ECF1...f481697C0
0.19 ETH0.001019918.80000023
0x4b7b1878100210042020-05-07 19:26:011646 days ago1588879561IN
0x8E23ECF1...f481697C0
0.1 ETH0.001884814.4
0x60806040100208322020-05-07 18:51:581646 days ago1588877518IN
 Create: VomerPartner
0 ETH0.0250078921

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
102198182020-06-07 16:50:481615 days ago1591548648
0x8E23ECF1...f481697C0
0.095 ETH
102198182020-06-07 16:50:481615 days ago1591548648
0x8E23ECF1...f481697C0
0.005 ETH
100963542020-05-19 12:21:461634 days ago1589890906
0x8E23ECF1...f481697C0
0.11460402 ETH
100963542020-05-19 12:21:461634 days ago1589890906
0x8E23ECF1...f481697C0
0.00603179 ETH
100953502020-05-19 8:39:061634 days ago1589877546
0x8E23ECF1...f481697C0
0.137275 ETH
100953502020-05-19 8:39:061634 days ago1589877546
0x8E23ECF1...f481697C0
0.007225 ETH
100454022020-05-11 14:15:241642 days ago1589206524
0x8E23ECF1...f481697C0
0.285 ETH
100454022020-05-11 14:15:241642 days ago1589206524
0x8E23ECF1...f481697C0
0.015 ETH
100252982020-05-08 11:27:531645 days ago1588937273
0x8E23ECF1...f481697C0
0.2755 ETH
100252982020-05-08 11:27:531645 days ago1588937273
0x8E23ECF1...f481697C0
0.0145 ETH
100244752020-05-08 8:28:221645 days ago1588926502
0x8E23ECF1...f481697C0
2.3636 ETH
100244752020-05-08 8:28:221645 days ago1588926502
0x8E23ECF1...f481697C0
0.1244 ETH
100243842020-05-08 8:08:251645 days ago1588925305
0x8E23ECF1...f481697C0
0.1805 ETH
100243842020-05-08 8:08:251645 days ago1588925305
0x8E23ECF1...f481697C0
0.0095 ETH
100210042020-05-07 19:26:011646 days ago1588879561
0x8E23ECF1...f481697C0
0.095 ETH
100210042020-05-07 19:26:011646 days ago1588879561
0x8E23ECF1...f481697C0
0.005 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VomerPartner

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-07
*/

pragma solidity ^0.5.16;

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;
    }
}

contract ERC20 {
    uint public decimals;
    function allowance(address, address) public view returns (uint);
    function balanceOf(address) public view returns (uint);
    function approve(address, uint) public;
    function transfer(address, uint) public returns (bool);
    function transferFrom(address, address, uint) public returns (bool);
}

/**
 * @dev Collection of functions related to the address type,
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * This test is non-exhaustive, and there may be false-negatives: during the
     * execution of a contract's constructor, its address will be reported as
     * not containing a contract.
     *
     * > It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in 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;
    }
}

/**
 * @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 ERC20;` 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(ERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

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

    function safeApprove(ERC20 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(ERC20 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(ERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value);
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function callOptionalReturn(ERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves.

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

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

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

library UniversalERC20 {

    using SafeMath for uint256;
    using SafeERC20 for ERC20;

    ERC20 private constant ZERO_ADDRESS = ERC20(0x0000000000000000000000000000000000000000);
    ERC20 private constant ETH_ADDRESS = ERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);

    function universalTransfer(ERC20 token, address to, uint256 amount) internal {
        universalTransfer(token, to, amount, false);
    }

    function universalTransfer(ERC20 token, address to, uint256 amount, bool mayFail) internal returns(bool) {
        if (amount == 0) {
            return true;
        }

        if (token == ZERO_ADDRESS || token == ETH_ADDRESS) {
            if (mayFail) {
                return address(uint160(to)).send(amount);
            } else {
                address(uint160(to)).transfer(amount);
                return true;
            }
        } else {
            token.safeTransfer(to, amount);
            return true;
        }
    }

    function universalApprove(ERC20 token, address to, uint256 amount) internal {
        if (token != ZERO_ADDRESS && token != ETH_ADDRESS) {
            token.safeApprove(to, amount);
        }
    }

    function universalTransferFrom(ERC20 token, address from, address to, uint256 amount) internal {
        if (amount == 0) {
            return;
        }

        if (token == ZERO_ADDRESS || token == ETH_ADDRESS) {
            require(from == msg.sender && msg.value >= amount, "msg.value is zero");
            if (to != address(this)) {
                address(uint160(to)).transfer(amount);
            }
            if (msg.value > amount) {
                msg.sender.transfer(uint256(msg.value).sub(amount));
            }
        } else {
            token.safeTransferFrom(from, to, amount);
        }
    }

    function universalBalanceOf(ERC20 token, address who) internal view returns (uint256) {
        if (token == ZERO_ADDRESS || token == ETH_ADDRESS) {
            return who.balance;
        } else {
            return token.balanceOf(who);
        }
    }
}

contract ERC20Token
{
    mapping (address => uint256) public balanceOf;
    function transfer(address _to, uint256 _value) public;
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
}

contract ShareholderVomer 
{
    function takeEth(address targetAddr, uint256 amount) public;
    function giveBackEth() payable public;
}
    
contract VomerPartner
{
    using SafeMath for uint256;

    address payable public owner;
    address payable public newOwnerCandidate;

    uint256 MinBalanceVMR;
    ERC20Token VMR_Token;
    
    ShareholderVomer partnerContract;
    address payable supportAddress;

    struct InvestorData {
        uint256 funds;
        uint256 lastDatetime;
        uint256 totalProfit;
        uint256 totalVMR;
        uint256 pendingReward;
        // Partner info
        uint256 totalReferralProfit;
        uint256 pendingReferralReward;
    }
    mapping (address => InvestorData) investors;
    
    mapping(address => address) refList;

    mapping(address => bool) public admins;

    modifier onlyOwner()
    {
        assert(msg.sender == owner);
        _;
    }

    modifier onlyAdminOrOwner()
    {
        require(admins[msg.sender] || msg.sender == owner);
        _;
    }

    event Reward(address indexed userAddress, uint256 amount);
    event ReferralReward(address indexed userAddress, uint256 amount);
    
    constructor() public {
        VMR_Token = ERC20Token(0x063b98a414EAA1D4a5D4fC235a22db1427199024); 
        partnerContract = ShareholderVomer(0xE1f5c6FD86628E299955a84f44E2DFCA47aAaaa4);
        MinBalanceVMR = 100 * 10**18;
        supportAddress = 0x4B7b1878338251874Ad8Dace56D198e31278676d;
        newOwnerCandidate = 0x4B7b1878338251874Ad8Dace56D198e31278676d;
        owner = msg.sender;
        admins[0x6Ecb917AfD0611F8Ab161f992a12c82e29dc533c] = true;
    }

    function changeSupportAddress(address newSupportAddress) onlyOwner public 
    {
        require(newSupportAddress != address(0));
        supportAddress = address(uint160(newSupportAddress));
    }
    
    function safeEthTransfer(address target, uint256 amount) internal {
        address payable payableTarget = address(uint160(target));
        (bool ok, ) = payableTarget.call.value(amount)("");
        require(ok, "can't send eth to address");
    }

    function setAdmin(address newAdmin, bool activate) onlyOwner public {
        admins[newAdmin] = activate;
    }

    uint256 public fundsLockedtoWithdraw;
    uint256 public dateUntilFundsLocked;

    function withdraw(uint256 amount)  public onlyOwner {
        if (dateUntilFundsLocked > now) require(address(this).balance.sub(amount) > fundsLockedtoWithdraw);
        owner.transfer(amount);
    }

    function lockFunds(uint256 amount) public onlyOwner {
        // funds lock is active
        if (dateUntilFundsLocked > now) {
            require(amount > fundsLockedtoWithdraw);
        }
        fundsLockedtoWithdraw = amount;
        dateUntilFundsLocked = now + 30 days;
    }

    function changeOwnerCandidate(address payable newOwner) public onlyOwner {
        newOwnerCandidate = newOwner;
    }

    function acceptOwner() public {
        require(msg.sender == newOwnerCandidate);
        owner = newOwnerCandidate;
    }

    function changeMinBalance(uint256 newMinBalance) public onlyOwner {
        MinBalanceVMR = newMinBalance * 10**18;
    }

    function bytesToAddress(bytes memory bys) private pure returns (address payable addr) {
        assembly {
            addr := mload(add(bys,20))
        }
    }
    // function for transfer any token from contract
    function transferTokens (address token, address target, uint256 amount) onlyOwner public
    {
        ERC20Token(token).transfer(target, amount);
    }

    function getInfo(address investor) view public returns (uint256 totalFunds, uint256 pendingReward, uint256 totalProfit, uint256 contractBalance, uint256 totalVMR, uint256 minVMR, uint256 totalReferralProfit, uint256 pendingReferralReward)
    {
        contractBalance = address(this).balance;
        minVMR = MinBalanceVMR;
        InvestorData memory data = investors[investor];
        totalFunds = data.funds;
        if (data.funds > 0) {
            pendingReward = data.pendingReward + data.funds.mul(20).div(100).mul(block.timestamp - data.lastDatetime).div(30 days);
            pendingReward = pendingReward * 85 / 100; // -15% to ref payments
        }
        totalProfit = data.totalProfit;
        totalVMR = data.totalVMR;
        
        // Referral\partner data
        totalReferralProfit = data.totalReferralProfit;
        pendingReferralReward = data.pendingReferralReward;
    }

    function getLevelReward(uint8 level) pure internal returns(uint256 rewardLevel) {
        if (level == 0) 
            return 5; 
        else if (level == 1)
            return 2; 
        else             
            return 1;
    }
    
    function setDepositTokens(address[] calldata userAddress, uint256[] calldata amountTokens) onlyAdminOrOwner external {
        uint256 len = userAddress.length;
        require(len == amountTokens.length);

        for(uint16 i = 0;i < len; i++) {
            investors[userAddress[i]].totalVMR = amountTokens[i];
        }
    }
    
    function getRefByUser(address addr) view public returns (address) {
        return refList[addr];
    }
    
    function withdrawReward(InvestorData storage data) internal {
        uint256 reward;
        
        require(data.totalVMR >= MinBalanceVMR, "Not enough VMR");
        
        require(data.funds > 0);
        
        // 20% per 30 days
        reward = data.pendingReward + data.funds.mul(20).div(100).mul(block.timestamp - data.lastDatetime).div(30 days);
        data.pendingReward = 0;
        data.lastDatetime = block.timestamp;

        uint256 maxRewardReferal = reward * 15 / 100; // 15% to ref
        reward = reward * 85 / 100;                   // 85% to user
        uint256 restReferralFunds = maxRewardReferal;
        
        address ref = refList[msg.sender];
        require(ref != address(0));
        
        for(uint8 i = 0; i < 10;i++) {
            uint256 rewardForRef = maxRewardReferal * getLevelReward(i) / 100;
            restReferralFunds = restReferralFunds.sub(rewardForRef);

            investors[ref].pendingReferralReward += rewardForRef;
            
            ref = refList[ref];
            if (ref == address(0)) break;
        }
        
        if (restReferralFunds > 0) {
            partnerContract.takeEth(supportAddress, restReferralFunds);
        }
                    
        data.totalProfit = data.totalProfit.add(reward);
        data.totalReferralProfit = data.totalReferralProfit.add(data.pendingReferralReward);
        
        uint256 _pendingReferralReward = data.pendingReferralReward;
        data.pendingReferralReward = 0;
        
        address payable payableUser = address(uint160(msg.sender));
        
        if (reward > 0) {
            partnerContract.takeEth(payableUser, reward);
            emit Reward(payableUser, reward);
        }
        
        if (_pendingReferralReward > 0) {
            partnerContract.takeEth(payableUser, _pendingReferralReward);
            emit ReferralReward(payableUser, _pendingReferralReward);
        }
    }
    
    function () payable external
    {
        if (msg.sender == address(partnerContract)) return;
        
        require(msg.sender == tx.origin); // prevent bots to interact with contract

        if (msg.sender == owner) return;

        InvestorData storage data = investors[msg.sender];
        
        if (msg.value == 0) {
            withdrawReward(data);
            return;
        }
        
        require(msg.value >= 0.1 ether);
        
        address ref;
        if (refList[msg.sender] != address(0))
        {
            ref = refList[msg.sender];
        } else {
            require(msg.data.length == 20, "first interaction with contract should be with referral address");
            ref = bytesToAddress(msg.data);
            require(ref != msg.sender, "You can't ref yourself");
        
            refList[msg.sender] = ref;
        }
        
        supportAddress.transfer(msg.value.mul(5).div(100));  // 5%
        
        if (data.funds > 0) data.pendingReward += data.funds.mul(20).div(100).mul(block.timestamp - data.lastDatetime).div(30 days);
        data.lastDatetime = block.timestamp;
        data.funds = data.funds.add(msg.value * 95 / 100); // 95%
        
        partnerContract.giveBackEth.value(address(this).balance)();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ReferralReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"acceptOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"admins","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newMinBalance","type":"uint256"}],"name":"changeMinBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"changeOwnerCandidate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newSupportAddress","type":"address"}],"name":"changeSupportAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dateUntilFundsLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsLockedtoWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"getInfo","outputs":[{"internalType":"uint256","name":"totalFunds","type":"uint256"},{"internalType":"uint256","name":"pendingReward","type":"uint256"},{"internalType":"uint256","name":"totalProfit","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"},{"internalType":"uint256","name":"totalVMR","type":"uint256"},{"internalType":"uint256","name":"minVMR","type":"uint256"},{"internalType":"uint256","name":"totalReferralProfit","type":"uint256"},{"internalType":"uint256","name":"pendingReferralReward","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRefByUser","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lockFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"bool","name":"activate","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"userAddress","type":"address[]"},{"internalType":"uint256[]","name":"amountTokens","type":"uint256[]"}],"name":"setDepositTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600380546001600160a01b031990811673063b98a414eaa1d4a5d4fc235a22db14271990241790915560048054821673e1f5c6fd86628e299955a84f44e2dfca47aaaaa417905568056bc75e2d63100000600255600580548216734b7b1878338251874ad8dace56d198e31278676d90811790915560018054831690911781556000805490921633178255736ecb917afd0611f8ab161f992a12c82e29dc533c90915260086020527fae8f92d0e5c63b69135da2167796ed3663113eacdb51447f8421b3ca00c9f925805460ff191690911790556111e8806100f46000396000f3fe6080604052600436106100f35760003560e01c806389c3ef6c1161008a578063d091b55011610059578063d091b550146106d1578063ebbc4965146106e6578063f8800fae146106fb578063ffdd5cf114610710576100f3565b806389c3ef6c146106285780638c8f95fb1461064f5780638da5cb5b14610679578063a64b6e5f1461068e576100f3565b8063524b50e5116100c6578063524b50e5146104a4578063561a01b8146104f35780635aaf4166146105265780635b14319c14610559576100f3565b80632e1a7d4d146103ce578063429b62e5146103f85780634b0bddd21461043f5780634ea18fab1461047a575b6004546001600160a01b031633141561010b576103cc565b33321461011757600080fd5b6000546001600160a01b031633141561012f576103cc565b336000908152600660205260409020346101525761014c81610784565b506103cc565b67016345785d8a000034101561016757600080fd5b336000908152600760205260408120546001600160a01b0316156101a45750336000908152600760205260409020546001600160a01b03166102a5565b601436146101e35760405162461bcd60e51b815260040180806020018281038252603f815260200180611154603f913960400191505060405180910390fd5b6102236000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b0992505050565b90506001600160a01b03811633141561027c576040805162461bcd60e51b81526020600482015260166024820152752cb7ba9031b0b713ba103932b3103cb7bab939b2b63360511b604482015290519081900360640190fd5b33600090815260076020526040902080546001600160a01b0319166001600160a01b0383161790555b600580546001600160a01b0316906108fc906102db906064906102cf90349063ffffffff610b1016565b9063ffffffff610b7216565b6040518115909202916000818181858888f19350505050158015610303573d6000803e3d6000fd5b508154156103515761034562278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b9063ffffffff610b1016565b60048301805490910190555b426001830155815461036990606434605f0204610bdc565b8255600480546040805163ab7c63f160e01b815290516001600160a01b039092169263ab7c63f1924792808301926000929182900301818588803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050505050505b005b3480156103da57600080fd5b506103cc600480360360208110156103f157600080fd5b5035610c36565b34801561040457600080fd5b5061042b6004803603602081101561041b57600080fd5b50356001600160a01b0316610cae565b604080519115158252519081900360200190f35b34801561044b57600080fd5b506103cc6004803603604081101561046257600080fd5b506001600160a01b0381351690602001351515610cc3565b34801561048657600080fd5b506103cc6004803603602081101561049d57600080fd5b5035610d02565b3480156104b057600080fd5b506104d7600480360360208110156104c757600080fd5b50356001600160a01b0316610d25565b604080516001600160a01b039092168252519081900360200190f35b3480156104ff57600080fd5b506103cc6004803603602081101561051657600080fd5b50356001600160a01b0316610d46565b34801561053257600080fd5b506103cc6004803603602081101561054957600080fd5b50356001600160a01b0316610d7c565b34801561056557600080fd5b506103cc6004803603604081101561057c57600080fd5b81019060208101813564010000000081111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111640100000000831117156105cb57600080fd5b9193909290916020810190356401000000008111156105e957600080fd5b8201836020820111156105fb57600080fd5b8035906020019184602083028401116401000000008311171561061d57600080fd5b509092509050610dc5565b34801561063457600080fd5b5061063d610e73565b60408051918252519081900360200190f35b34801561065b57600080fd5b506103cc6004803603602081101561067257600080fd5b5035610e79565b34801561068557600080fd5b506104d7610eb3565b34801561069a57600080fd5b506103cc600480360360608110156106b157600080fd5b506001600160a01b03813581169160208101359091169060400135610ec2565b3480156106dd57600080fd5b506104d7610f4a565b3480156106f257600080fd5b506103cc610f59565b34801561070757600080fd5b5061063d610f94565b34801561071c57600080fd5b506107436004803603602081101561073357600080fd5b50356001600160a01b0316610f9a565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6000600254826003015410156107d2576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1032b737bab3b4102b26a960911b604482015290519081900360640190fd5b81546107dd57600080fd5b61080b62278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b600483018054600091829055426001860155338252600760205260409091205460646055939092019283028290049350600f909202049081906001600160a01b03168061085757600080fd5b60005b600a8160ff1610156108d657600060646108738361108b565b86028161087c57fe5b04905061088f848263ffffffff6110b916565b6001600160a01b0393841660009081526006602081815260408084209092018054860190556007905290205490945090921691826108cd57506108d6565b5060010161085a565b50811561094e5760048054600554604080516306d89ffb60e41b81526001600160a01b03928316948101949094526024840186905251911691636d89ffb091604480830192600092919082900301818387803b15801561093557600080fd5b505af1158015610949573d6000803e3d6000fd5b505050505b6002850154610963908563ffffffff610bdc16565b6002860155600685015460058601546109819163ffffffff610bdc16565b60058601556006850180546000909155338515610a495760048054604080516306d89ffb60e41b81526001600160a01b0385811694820194909452602481018a905290519290911691636d89ffb09160448082019260009290919082900301818387803b1580156109f157600080fd5b505af1158015610a05573d6000803e3d6000fd5b50506040805189815290516001600160a01b03851693507f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc992509081900360200190a25b8115610b005760048054604080516306d89ffb60e41b81526001600160a01b03858116948201949094526024810186905290519290911691636d89ffb09160448082019260009290919082900301818387803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b50506040805185815290516001600160a01b03851693507fe7e15037b577ae985e6019722e882f64c5c6a2124ccc573bab8f79bda0a0c55192509081900360200190a25b50505050505050565b6014015190565b600082610b1f57506000610b6c565b82820282848281610b2c57fe5b0414610b695760405162461bcd60e51b81526004018080602001828103825260218152602001806111936021913960400191505060405180910390fd5b90505b92915050565b6000808211610bc8576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610bd357fe5b04949350505050565b600082820183811015610b69576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610c4a57fe5b42600a541115610c7157600954610c67478363ffffffff6110b916565b11610c7157600080fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610caa573d6000803e3d6000fd5b5050565b60086020526000908152604090205460ff1681565b6000546001600160a01b03163314610cd757fe5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1657fe5b670de0b6b3a764000002600255565b6001600160a01b03808216600090815260076020526040902054165b919050565b6000546001600160a01b03163314610d5a57fe5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d9057fe5b6001600160a01b038116610da357600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526008602052604090205460ff1680610ded57506000546001600160a01b031633145b610df657600080fd5b82818114610e0357600080fd5b60005b818161ffff161015610e6b5783838261ffff16818110610e2257fe5b905060200201356006600088888561ffff16818110610e3d57fe5b602090810292909201356001600160a01b031683525081019190915260400160002060030155600101610e06565b505050505050565b60095481565b6000546001600160a01b03163314610e8d57fe5b42600a541115610ea5576009548111610ea557600080fd5b60095562278d004201600a55565b6000546001600160a01b031681565b6000546001600160a01b03163314610ed657fe5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610f3657600080fd5b505af1158015610b00573d6000803e3d6000fd5b6001546001600160a01b031681565b6001546001600160a01b03163314610f7057600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600a5481565b60025460009081908190479082908180610fb2611116565b506001600160a01b038916600090815260066020818152604092839020835160e08101855281548082526001830154938201939093526002820154948101949094526003810154606085015260048101546080850152600581015460a08501529091015460c0830152985088156110635761105162278d006102cf8360200151420361033960646102cf60148860000151610b1090919063ffffffff16565b60808201510197506064605589020497505b80604001519650806060015194508060a0015192508060c00151915050919395975091939597565b600060ff821661109d57506005610d41565b8160ff16600114156110b157506002610d41565b506001610d41565b600082821115611110576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe666972737420696e746572616374696f6e207769746820636f6e74726163742073686f756c64206265207769746820726566657272616c2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582035d388dddab538fa955c4829e028270c3a882eb8ba872e72cce3427d654d319d64736f6c63430005110032

Deployed Bytecode

0x6080604052600436106100f35760003560e01c806389c3ef6c1161008a578063d091b55011610059578063d091b550146106d1578063ebbc4965146106e6578063f8800fae146106fb578063ffdd5cf114610710576100f3565b806389c3ef6c146106285780638c8f95fb1461064f5780638da5cb5b14610679578063a64b6e5f1461068e576100f3565b8063524b50e5116100c6578063524b50e5146104a4578063561a01b8146104f35780635aaf4166146105265780635b14319c14610559576100f3565b80632e1a7d4d146103ce578063429b62e5146103f85780634b0bddd21461043f5780634ea18fab1461047a575b6004546001600160a01b031633141561010b576103cc565b33321461011757600080fd5b6000546001600160a01b031633141561012f576103cc565b336000908152600660205260409020346101525761014c81610784565b506103cc565b67016345785d8a000034101561016757600080fd5b336000908152600760205260408120546001600160a01b0316156101a45750336000908152600760205260409020546001600160a01b03166102a5565b601436146101e35760405162461bcd60e51b815260040180806020018281038252603f815260200180611154603f913960400191505060405180910390fd5b6102236000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b0992505050565b90506001600160a01b03811633141561027c576040805162461bcd60e51b81526020600482015260166024820152752cb7ba9031b0b713ba103932b3103cb7bab939b2b63360511b604482015290519081900360640190fd5b33600090815260076020526040902080546001600160a01b0319166001600160a01b0383161790555b600580546001600160a01b0316906108fc906102db906064906102cf90349063ffffffff610b1016565b9063ffffffff610b7216565b6040518115909202916000818181858888f19350505050158015610303573d6000803e3d6000fd5b508154156103515761034562278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b9063ffffffff610b1016565b60048301805490910190555b426001830155815461036990606434605f0204610bdc565b8255600480546040805163ab7c63f160e01b815290516001600160a01b039092169263ab7c63f1924792808301926000929182900301818588803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050505050505b005b3480156103da57600080fd5b506103cc600480360360208110156103f157600080fd5b5035610c36565b34801561040457600080fd5b5061042b6004803603602081101561041b57600080fd5b50356001600160a01b0316610cae565b604080519115158252519081900360200190f35b34801561044b57600080fd5b506103cc6004803603604081101561046257600080fd5b506001600160a01b0381351690602001351515610cc3565b34801561048657600080fd5b506103cc6004803603602081101561049d57600080fd5b5035610d02565b3480156104b057600080fd5b506104d7600480360360208110156104c757600080fd5b50356001600160a01b0316610d25565b604080516001600160a01b039092168252519081900360200190f35b3480156104ff57600080fd5b506103cc6004803603602081101561051657600080fd5b50356001600160a01b0316610d46565b34801561053257600080fd5b506103cc6004803603602081101561054957600080fd5b50356001600160a01b0316610d7c565b34801561056557600080fd5b506103cc6004803603604081101561057c57600080fd5b81019060208101813564010000000081111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111640100000000831117156105cb57600080fd5b9193909290916020810190356401000000008111156105e957600080fd5b8201836020820111156105fb57600080fd5b8035906020019184602083028401116401000000008311171561061d57600080fd5b509092509050610dc5565b34801561063457600080fd5b5061063d610e73565b60408051918252519081900360200190f35b34801561065b57600080fd5b506103cc6004803603602081101561067257600080fd5b5035610e79565b34801561068557600080fd5b506104d7610eb3565b34801561069a57600080fd5b506103cc600480360360608110156106b157600080fd5b506001600160a01b03813581169160208101359091169060400135610ec2565b3480156106dd57600080fd5b506104d7610f4a565b3480156106f257600080fd5b506103cc610f59565b34801561070757600080fd5b5061063d610f94565b34801561071c57600080fd5b506107436004803603602081101561073357600080fd5b50356001600160a01b0316610f9a565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6000600254826003015410156107d2576040805162461bcd60e51b815260206004820152600e60248201526d2737ba1032b737bab3b4102b26a960911b604482015290519081900360640190fd5b81546107dd57600080fd5b61080b62278d006102cf8460010154420361033960646102cf60148960000154610b1090919063ffffffff16565b600483018054600091829055426001860155338252600760205260409091205460646055939092019283028290049350600f909202049081906001600160a01b03168061085757600080fd5b60005b600a8160ff1610156108d657600060646108738361108b565b86028161087c57fe5b04905061088f848263ffffffff6110b916565b6001600160a01b0393841660009081526006602081815260408084209092018054860190556007905290205490945090921691826108cd57506108d6565b5060010161085a565b50811561094e5760048054600554604080516306d89ffb60e41b81526001600160a01b03928316948101949094526024840186905251911691636d89ffb091604480830192600092919082900301818387803b15801561093557600080fd5b505af1158015610949573d6000803e3d6000fd5b505050505b6002850154610963908563ffffffff610bdc16565b6002860155600685015460058601546109819163ffffffff610bdc16565b60058601556006850180546000909155338515610a495760048054604080516306d89ffb60e41b81526001600160a01b0385811694820194909452602481018a905290519290911691636d89ffb09160448082019260009290919082900301818387803b1580156109f157600080fd5b505af1158015610a05573d6000803e3d6000fd5b50506040805189815290516001600160a01b03851693507f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc992509081900360200190a25b8115610b005760048054604080516306d89ffb60e41b81526001600160a01b03858116948201949094526024810186905290519290911691636d89ffb09160448082019260009290919082900301818387803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b50506040805185815290516001600160a01b03851693507fe7e15037b577ae985e6019722e882f64c5c6a2124ccc573bab8f79bda0a0c55192509081900360200190a25b50505050505050565b6014015190565b600082610b1f57506000610b6c565b82820282848281610b2c57fe5b0414610b695760405162461bcd60e51b81526004018080602001828103825260218152602001806111936021913960400191505060405180910390fd5b90505b92915050565b6000808211610bc8576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610bd357fe5b04949350505050565b600082820183811015610b69576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610c4a57fe5b42600a541115610c7157600954610c67478363ffffffff6110b916565b11610c7157600080fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610caa573d6000803e3d6000fd5b5050565b60086020526000908152604090205460ff1681565b6000546001600160a01b03163314610cd757fe5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1657fe5b670de0b6b3a764000002600255565b6001600160a01b03808216600090815260076020526040902054165b919050565b6000546001600160a01b03163314610d5a57fe5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d9057fe5b6001600160a01b038116610da357600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526008602052604090205460ff1680610ded57506000546001600160a01b031633145b610df657600080fd5b82818114610e0357600080fd5b60005b818161ffff161015610e6b5783838261ffff16818110610e2257fe5b905060200201356006600088888561ffff16818110610e3d57fe5b602090810292909201356001600160a01b031683525081019190915260400160002060030155600101610e06565b505050505050565b60095481565b6000546001600160a01b03163314610e8d57fe5b42600a541115610ea5576009548111610ea557600080fd5b60095562278d004201600a55565b6000546001600160a01b031681565b6000546001600160a01b03163314610ed657fe5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610f3657600080fd5b505af1158015610b00573d6000803e3d6000fd5b6001546001600160a01b031681565b6001546001600160a01b03163314610f7057600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600a5481565b60025460009081908190479082908180610fb2611116565b506001600160a01b038916600090815260066020818152604092839020835160e08101855281548082526001830154938201939093526002820154948101949094526003810154606085015260048101546080850152600581015460a08501529091015460c0830152985088156110635761105162278d006102cf8360200151420361033960646102cf60148860000151610b1090919063ffffffff16565b60808201510197506064605589020497505b80604001519650806060015194508060a0015192508060c00151915050919395975091939597565b600060ff821661109d57506005610d41565b8160ff16600114156110b157506002610d41565b506001610d41565b600082821115611110576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe666972737420696e746572616374696f6e207769746820636f6e74726163742073686f756c64206265207769746820726566657272616c2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582035d388dddab538fa955c4829e028270c3a882eb8ba872e72cce3427d654d319d64736f6c63430005110032

Deployed Bytecode Sourcemap

10559:8479:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:15;;-1:-1:-1;;;;;17794:15:0;17772:10;:38;17768:51;;;17812:7;;17768:51;17847:10;17861:9;17847:23;17839:32;;;;;;17944:5;;-1:-1:-1;;;;;17944:5:0;17930:10;:19;17926:32;;;17951:7;;17926:32;18008:10;17970:25;17998:21;;;:9;:21;;;;;18044:9;18040:88;;18075:20;18090:4;18075:14;:20::i;:::-;18110:7;;;18040:88;18169:9;18156;:22;;18148:31;;;;;;18234:10;18200:11;18226:19;;;:7;:19;;;;;;-1:-1:-1;;;;;18226:19:0;:33;18222:392;;-1:-1:-1;18299:10:0;18291:19;;;;:7;:19;;;;;;-1:-1:-1;;;;;18291:19:0;18222:392;;;18370:2;18351:8;:21;18343:97;;;;-1:-1:-1;;;18343:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18461:24;18476:8;;18461:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18461:14:0;;-1:-1:-1;;;18461:24:0:i;:::-;18455:30;-1:-1:-1;;;;;;18508:17:0;;18515:10;18508:17;;18500:52;;;;;-1:-1:-1;;;18500:52:0;;;;;;;;;;;;-1:-1:-1;;;18500:52:0;;;;;;;;;;;;;;;18585:10;18577:19;;;;:7;:19;;;;;:25;;-1:-1:-1;;;;;;18577:25:0;-1:-1:-1;;;;;18577:25:0;;;;;18222:392;18634:14;;;-1:-1:-1;;;;;18634:14:0;;:50;;18658:25;;18679:3;;18658:16;;:9;;:16;:13;:16;:::i;:::-;:20;:25;:20;:25;:::i;:::-;18634:50;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18716:10:0;;:14;18712:123;;18754:81;18827:7;18754:68;18804:4;:17;;;18786:15;:35;18754:27;18777:3;18754:18;18769:2;18754:4;:10;;;:14;;:18;;;;:::i;:27::-;:31;:68;:31;:68;:::i;:81::-;18732:18;;;:103;;;;;;;18712:123;18866:15;18846:17;;;:35;18905:10;;:36;;18937:3;18920:9;18932:2;18920:14;:20;18905:14;:36::i;:::-;18892:49;;18969:15;;;:58;;;-1:-1:-1;;;18969:58:0;;;;-1:-1:-1;;;;;18969:15:0;;;;:27;;19003:21;;18969:58;;;;18892:10;;18969:58;;;;;;19003:21;18969:15;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;18969:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18969:58:0;;;;;17723:1312;;;10559:8479;12798:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12798:202:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12798:202:0;;:::i;11228:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11228:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11228:38:0;-1:-1:-1;;;;;11228:38:0;;:::i;:::-;;;;;;;;;;;;;;;;;;12589:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12589:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12589:114:0;;;;;;;;;;:::i;13566:123::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13566:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13566:123:0;;:::i;15613:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15613:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15613:105:0;-1:-1:-1;;;;;15613:105:0;;:::i;:::-;;;;-1:-1:-1;;;;;15613:105:0;;;;;;;;;;;;;;13305:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13305:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13305:120:0;-1:-1:-1;;;;;13305:120:0;;:::i;12114:202::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12114:202:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12114:202:0;-1:-1:-1;;;;;12114:202:0;;:::i;15265:336::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15265:336:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15265:336:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15265:336:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15265:336: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;15265:336:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15265:336:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15265:336: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;-1:-1;15265:336:0;;-1:-1:-1;15265:336:0;-1:-1:-1;15265:336:0;:::i;12711:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12711:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;13008:289;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13008:289:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13008:289:0;;:::i;10624:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10624:28:0;;;:::i;13922:155::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13922:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13922:155:0;;;;;;;;;;;;;;;;;:::i;10659:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10659:40:0;;;:::i;13433:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13433:125:0;;;:::i;12754:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12754:35:0;;;:::i;14085:918::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14085:918:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14085:918:0;-1:-1:-1;;;;;14085:918:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15730:1981;15801:14;15861:13;;15844:4;:13;;;:30;;15836:57;;;;;-1:-1:-1;;;15836:57:0;;;;;;;;;;;;-1:-1:-1;;;15836:57:0;;;;;;;;;;;;;;;15922:10;;15914:23;;;;;;16016:81;16089:7;16016:68;16066:4;:17;;;16048:15;:35;16016:27;16039:3;16016:18;16031:2;16016:4;:10;;;:14;;:18;;;;:::i;:81::-;15995:18;;;;;16129:1;16108:22;;;;16161:15;-1:-1:-1;16141:17:0;;:35;16415:10;16407:19;;:7;:19;;;;;;;16230:3;16276:2;15995:102;;;;16267:11;;;:17;;;;-1:-1:-1;16225:2:0;16216:11;;;:17;;;;-1:-1:-1;;;;;16407:19:0;;16437:26;;;;;;16488:7;16484:350;16505:2;16501:1;:6;;;16484:350;;;16528:20;16590:3;16570:17;16585:1;16570:14;:17::i;:::-;16551:16;:36;:42;;;;;;;-1:-1:-1;16628:35:0;:17;16551:42;16628:35;:21;:35;:::i;:::-;-1:-1:-1;;;;;16680:14:0;;;;;;;:9;:14;;;;;;;;:36;;;:52;;;;;;16767:7;:12;;;;;16608:55;;-1:-1:-1;16767:12:0;;;;16798:17;16794:28;;16817:5;;;16794:28;-1:-1:-1;16508:3:0;;16484:350;;;-1:-1:-1;16858:21:0;;16854:112;;16896:15;;;16920:14;;16896:58;;;-1:-1:-1;;;16896:58:0;;-1:-1:-1;;;;;16920:14:0;;;16896:58;;;;;;;;;;;;;;:15;;;:23;;:58;;;;;:15;;:58;;;;;;;:15;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;16896:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16896:58:0;;;;16854:112;17017:16;;;;:28;;17038:6;17017:28;:20;:28;:::i;:::-;16998:16;;;:47;17112:26;;;;17083:24;;;;:56;;;:28;:56;:::i;:::-;17056:24;;;:83;17193:26;;;;;17160:30;17230;;;17327:10;17364;;17360:134;;17391:15;;;:44;;;-1:-1:-1;;;17391:44:0;;-1:-1:-1;;;;;17391:44:0;;;;;;;;;;;;;;;;;;:15;;;;;:23;;:44;;;;;:15;;:44;;;;;;;;:15;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17391:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17455:27:0;;;;;;;;-1:-1:-1;;;;;17455:27:0;;;-1:-1:-1;17455:27:0;;-1:-1:-1;17455:27:0;;;;;;;;17360:134;17518:26;;17514:190;;17561:15;;;:60;;;-1:-1:-1;;;17561:60:0;;-1:-1:-1;;;;;17561:60:0;;;;;;;;;;;;;;;;;;:15;;;;;:23;;:60;;;;;:15;;:60;;;;;;;;:15;;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;17561:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17641:51:0;;;;;;;;-1:-1:-1;;;;;17641:51:0;;;-1:-1:-1;17641:51:0;;-1:-1:-1;17641:51:0;;;;;;;;17514:190;15730:1981;;;;;;;:::o;13697:165::-;13840:2;13832:11;13826:18;;13803:52::o;1174:470::-;1232:7;1476:6;1472:47;;-1:-1:-1;1506:1:0;1499:8;;1472:47;1543:5;;;1547:1;1543;:5;:1;1567:5;;;;;:10;1559:56;;;;-1:-1:-1;;;1559:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1635:1;-1:-1:-1;1174:470:0;;;;;:::o;2112:333::-;2170:7;2269:1;2265;:5;2257:44;;;;;-1:-1:-1;;;2257:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2312:9;2328:1;2324;:5;;;;;;;2112:333;-1:-1:-1;;;;2112:333:0:o;283:181::-;341:7;373:5;;;397:6;;;;389:46;;;;;-1:-1:-1;;;389:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12798:202;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;12888:3;12865:20;;:26;12861:98;;;12937:21;;12901:33;:21;12927:6;12901:33;:25;:33;:::i;:::-;:57;12893:66;;;;;;12970:5;;;:22;;-1:-1:-1;;;;;12970:5:0;;;;:22;;;;;12985:6;;12970:22;:5;:22;12985:6;12970:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12970:22:0;12798:202;:::o;11228:38::-;;;;;;;;;;;;;;;:::o;12589:114::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;-1:-1:-1;;;;;12668:16:0;;;;;;;;:6;:16;;;;;:27;;-1:-1:-1;;12668:27:0;;;;;;;;;;12589:114::o;13566:123::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;13675:6;13659:22;13643:13;:38;13566:123::o;15613:105::-;-1:-1:-1;;;;;15697:13:0;;;15670:7;15697:13;;;:7;:13;;;;;;;15613:105;;;;:::o;13305:120::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;13389:17;:28;;-1:-1:-1;;;;;;13389:28:0;-1:-1:-1;;;;;13389:28:0;;;;;;;;;;13305:120::o;12114:202::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;-1:-1:-1;;;;;12213:31:0;;12205:40;;;;;;12256:14;:52;;-1:-1:-1;;;;;;12256:52:0;-1:-1:-1;;;;;12256:52:0;;;;;;;;;;12114:202::o;15265:336::-;11426:10;11419:18;;;;:6;:18;;;;;;;;;:41;;-1:-1:-1;11455:5:0;;-1:-1:-1;;;;;11455:5:0;11441:10;:19;11419:41;11411:50;;;;;;15407:11;15444:26;;;15436:35;;;;;;15488:8;15484:110;15505:3;15501:1;:7;;;15484:110;;;15567:12;;15580:1;15567:15;;;;;;;;;;;;;;;15530:9;:25;15540:11;;15552:1;15540:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15540:14:0;15530:25;;-1:-1:-1;15530:25:0;;;;;;;;-1:-1:-1;15530:25:0;:34;;:52;15510:3;;15484:110;;;;11472:1;15265:336;;;;:::o;12711:36::-;;;;:::o;13008:289::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;13131:3;13108:20;;:26;13104:98;;;13168:21;;13159:6;:30;13151:39;;;;;;13212:21;:30;13282:7;13276:3;:13;13253:20;:36;13008:289::o;10624:28::-;;;-1:-1:-1;;;;;10624:28:0;;:::o;13922:155::-;11333:5;;-1:-1:-1;;;;;11333:5:0;11319:10;:19;11312:27;;;;14038:5;-1:-1:-1;;;;;14027:26:0;;14054:6;14062;14027:42;;;;;;;;;;;;;-1:-1:-1;;;;;14027:42:0;-1:-1:-1;;;;;14027:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14027:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;10659:40:0;;;-1:-1:-1;;;;;10659:40:0;;:::o;13433:125::-;13496:17;;-1:-1:-1;;;;;13496:17:0;13482:10;:31;13474:40;;;;;;13533:17;;;13525:25;;-1:-1:-1;;;;;;13525:25:0;-1:-1:-1;;;;;13533:17:0;;;13525:25;;;;;;13433:125::o;12754:35::-;;;;:::o;14085:918::-;14399:13;;14141:18;;;;;;14358:21;;14141:18;;;;14423:24;;:::i;:::-;-1:-1:-1;;;;;;14450:19:0;;;;;;:9;:19;;;;;;;;;14423:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14518:14:0;;14514:244;;14586:81;14659:7;14586:68;14636:4;:17;;;14618:15;:35;14586:27;14609:3;14586:18;14601:2;14586:4;:10;;;:14;;:18;;;;:::i;:81::-;14565:18;;;;:102;;-1:-1:-1;14719:3:0;14714:2;14698:18;;:24;14682:40;;14514:244;14782:4;:16;;;14768:30;;14820:4;:13;;;14809:24;;14910:4;:24;;;14888:46;;14969:4;:26;;;14945:50;;14085:918;;;;;;;;;;:::o;15011:242::-;15070:19;15106:10;;;15102:143;;-1:-1:-1;15139:1:0;15132:8;;15102:143;15161:5;:10;;15170:1;15161:10;15157:88;;;-1:-1:-1;15193:1:0;15186:8;;15157:88;-1:-1:-1;15244:1:0;15237:8;;739:184;797:7;830:1;825;:6;;817:49;;;;;-1:-1:-1;;;817:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;889:5:0;;;739:184::o;10559:8479::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://35d388dddab538fa955c4829e028270c3a882eb8ba872e72cce3427d654d319d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.