ETH Price: $2,709.04 (+1.58%)

Contract

0xc654EC1FC5a1C76A19BF169eF2765CEf23Cdd236
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy With Tokens51379592018-02-22 20:07:142548 days ago1519330034IN
0xc654EC1F...f23Cdd236
0 ETH0.0032120550
Add Token51379512018-02-22 20:04:182548 days ago1519329858IN
0xc654EC1F...f23Cdd236
0 ETH0.001824450
Buy With Tokens51379372018-02-22 20:01:512548 days ago1519329711IN
0xc654EC1F...f23Cdd236
0 ETH0.00550
Buy With Tokens51378842018-02-22 19:49:022548 days ago1519328942IN
0xc654EC1F...f23Cdd236
0 ETH0.001821250
Add Token51378732018-02-22 19:46:192548 days ago1519328779IN
0xc654EC1F...f23Cdd236
0 ETH0.001821250
Buy With Tokens51356022018-02-22 10:27:502548 days ago1519295270IN
0xc654EC1F...f23Cdd236
0 ETH0.0112987550
Add Token51355912018-02-22 10:24:032548 days ago1519295043IN
0xc654EC1F...f23Cdd236
0 ETH0.001821250
Add Token51355712018-02-22 10:20:262548 days ago1519294826IN
0xc654EC1F...f23Cdd236
0 ETH0.005316750
Give Reward51355622018-02-22 10:18:102548 days ago1519294690IN
0xc654EC1F...f23Cdd236
0 ETH0.002622250
Give Reward51355592018-02-22 10:17:332548 days ago1519294653IN
0xc654EC1F...f23Cdd236
0 ETH0.002625450
Give Reward51355562018-02-22 10:16:542548 days ago1519294614IN
0xc654EC1F...f23Cdd236
0 ETH0.002625450
Give Reward51355412018-02-22 10:12:452548 days ago1519294365IN
0xc654EC1F...f23Cdd236
0 ETH0.002625450
Give Reward51355362018-02-22 10:11:182548 days ago1519294278IN
0xc654EC1F...f23Cdd236
0 ETH0.002622250
Give Reward51355322018-02-22 10:09:542548 days ago1519294194IN
0xc654EC1F...f23Cdd236
0 ETH0.002622250
Give Reward51355232018-02-22 10:08:322548 days ago1519294112IN
0xc654EC1F...f23Cdd236
0 ETH0.002625450
Give Reward51355222018-02-22 10:08:192548 days ago1519294099IN
0xc654EC1F...f23Cdd236
0 ETH0.003372250

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PreIco

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-25
*/

pragma solidity ^0.4.18;

contract AbstractToken {
    // This is not an abstract function, because solc won't recognize generated getter functions for public variables as functions
    function totalSupply() public constant returns (uint256) {}
    function balanceOf(address owner) public constant returns (uint256 balance);
    function transfer(address to, uint256 value) public returns (bool success);
    function transferFrom(address from, address to, uint256 value) public returns (bool success);
    function approve(address spender, uint256 value) public returns (bool success);
    function allowance(address owner, address spender) public constant returns (uint256 remaining);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Issuance(address indexed to, uint256 value);
}
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
contract SafeMath {
  function mul(uint256 a, uint256 b) constant internal returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) constant internal returns (uint256) {
    assert(b != 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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

  function mulByFraction(uint256 number, uint256 numerator, uint256 denominator) internal returns (uint256) {
      return div(mul(number, numerator), denominator);
  }
}

contract PreIco is SafeMath {
    /*
     * PreIco meta data
     */
    string public constant name = "Remechain Presale Token";
    string public constant symbol = "iRMC";
    uint public constant decimals = 18;

    // addresses of managers
    address public manager;
    address public reserveManager;
    // addresses of escrows
    address public escrow;
    address public reserveEscrow;

    // BASE = 10^18
    uint constant BASE = 1000000000000000000;

    // amount of supplied tokens
    uint public tokensSupplied = 0;
    // amount of supplied bounty reward
    uint public bountySupplied = 0;
    // Soft capacity = 6250 ETH
    uint public constant SOFT_CAPACITY = 2000000 * BASE;
    // Hard capacity = 18750 ETH
    uint public constant TOKENS_SUPPLY = 6000000 * BASE;
    // Amount of bounty reward
    uint public constant BOUNTY_SUPPLY = 350000 * BASE;
    // Total supply
    uint public constant totalSupply = TOKENS_SUPPLY + BOUNTY_SUPPLY;

    // 1 RMC = 0.003125 ETH for  600 000 000 RMC

    uint public constant TOKEN_PRICE = 3125000000000000;
    uint tokenAmount1 = 6000000 * BASE;

    uint tokenPriceMultiply1 = 1;
    uint tokenPriceDivide1 = 1;

    uint[] public tokenPriceMultiplies;
    uint[] public tokenPriceDivides;
    uint[] public tokenAmounts;

    // ETH balances of accounts
    mapping(address => uint) public ethBalances;
    uint[] public prices;
    uint[] public amounts;

    mapping(address => uint) private balances;

    // 2018.02.25 17:00 MSK
    uint public constant defaultDeadline = 1519567200;
    uint public deadline = defaultDeadline;

    // Is ICO frozen
    bool public isIcoStopped = false;

    // Addresses of allowed tokens for buying
    address[] public allowedTokens;
    // Amount of token
    mapping(address => uint) public tokenAmount;
    // Price of current token amount
    mapping(address => uint) public tokenPrice;

    // Full users list
    address[] public usersList;
    mapping(address => bool) isUserInList;
    // Number of users that have returned their money
    uint numberOfUsersReturned = 0;

    // user => token[]
    mapping(address => address[]) public userTokens;
    //  user => token => amount
    mapping(address => mapping(address => uint)) public userTokensValues;

    /*
     * Events
     */

    event BuyTokens(address indexed _user, uint _ethValue, uint _boughtTokens);
    event BuyTokensWithTokens(address indexed _user, address indexed _token, uint _tokenValue, uint _boughtTokens);
    event GiveReward(address indexed _to, uint _value);

    event IcoStoppedManually();
    event IcoRunnedManually();

    event WithdrawEther(address indexed _escrow, uint _ethValue);
    event WithdrawToken(address indexed _escrow, address indexed _token, uint _value);
    event ReturnEthersFor(address indexed _user, uint _value);
    event ReturnTokensFor(address indexed _user, address indexed _token, uint _value);

    event AddToken(address indexed _token, uint _amount, uint _price);
    event RemoveToken(address indexed _token);

    event MoveTokens(address indexed _from, address indexed _to, uint _value);

    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);

    /*
     * Modifiers
     */

    modifier onlyManager {
        assert(msg.sender == manager || msg.sender == reserveManager);
        _;
    }
    modifier onlyManagerOrContract {
        assert(msg.sender == manager || msg.sender == reserveManager || msg.sender == address(this));
        _;
    }
    modifier IcoIsActive {
        assert(isIcoActive());
        _;
    }


    /// @dev Constructor of PreIco.
    /// @param _manager Address of manager
    /// @param _reserveManager Address of reserve manager
    /// @param _escrow Address of escrow
    /// @param _reserveEscrow Address of reserve escrow
    /// @param _deadline ICO deadline timestamp. If is 0, sets 1515679200
    function PreIco(address _manager, address _reserveManager, address _escrow, address _reserveEscrow, uint _deadline) public {
        assert(_manager != 0x0);
        assert(_reserveManager != 0x0);
        assert(_escrow != 0x0);
        assert(_reserveEscrow != 0x0);

        manager = _manager;
        reserveManager = _reserveManager;
        escrow = _escrow;
        reserveEscrow = _reserveEscrow;

        if (_deadline != 0) {
            deadline = _deadline;
        }
        tokenPriceMultiplies.push(tokenPriceMultiply1);
        tokenPriceDivides.push(tokenPriceDivide1);
        tokenAmounts.push(tokenAmount1);
    }

    /// @dev Returns token balance of user. 1 token = 1/10^18 RMC
    /// @param _user Address of user
    function balanceOf(address _user) public returns(uint balance) {
        return balances[_user];
    }

    /// @dev Returns, is ICO enabled
    function isIcoActive() public returns(bool isActive) {
        return !isIcoStopped && now < deadline;
    }

    /// @dev Returns, is SoftCap reached
    function isIcoSuccessful() public returns(bool isSuccessful) {
        return tokensSupplied >= SOFT_CAPACITY;
    }

    /// @dev Calculates number of tokens RMC for buying with custom price of token
    /// @param _amountOfToken Amount of RMC token
    /// @param _priceAmountOfToken Price of amount of RMC
    /// @param _value Amount of custom token
    function getTokensAmount(uint _amountOfToken, uint _priceAmountOfToken,  uint _value) private returns(uint tokensToBuy) {
        uint currentStep;
        uint tokensRemoved = tokensSupplied;
        for (currentStep = 0; currentStep < tokenAmounts.length; currentStep++) {
            if (tokensRemoved >= tokenAmounts[currentStep]) {
                tokensRemoved -= tokenAmounts[currentStep];
            } else {
                break;
            }
        }
        assert(currentStep < tokenAmounts.length);

        uint result = 0;

        for (; currentStep <= tokenAmounts.length; currentStep++) {
            assert(currentStep < tokenAmounts.length);

            uint tokenOnStepLeft = tokenAmounts[currentStep] - tokensRemoved;
            tokensRemoved = 0;
            uint howManyTokensCanBuy = _value
                    * _amountOfToken / _priceAmountOfToken
                    * tokenPriceDivides[currentStep] / tokenPriceMultiplies[currentStep];

            if (howManyTokensCanBuy > tokenOnStepLeft) {
                result = add(result, tokenOnStepLeft);
                uint spent = tokenOnStepLeft
                    * _priceAmountOfToken / _amountOfToken
                    * tokenPriceMultiplies[currentStep] / tokenPriceDivides[currentStep];
                if (_value <= spent) {
                    break;
                }
                _value -= spent;
                tokensRemoved = 0;
            } else {
                result = add(result, howManyTokensCanBuy);
                break;
            }
        }

        return result;
    }

    /// @dev Calculates number of tokens RMC for buying with ETH
    /// @param _value Amount of ETH token
    function getTokensAmountWithEth(uint _value) private returns(uint tokensToBuy) {
        return getTokensAmount(BASE, TOKEN_PRICE, _value);
    }

    /// @dev Calculates number of tokens RMC for buying with ERC-20 token
    /// @param _token Address of ERC-20 token
    /// @param _tokenValue Amount of ETH token
    function getTokensAmountByTokens(address _token, uint _tokenValue) private returns(uint tokensToBuy) {
        assert(tokenPrice[_token] > 0);
        return getTokensAmount(tokenPrice[_token], tokenAmount[_token], _tokenValue);
    }

    /// @dev Solds tokens for user by ETH
    /// @param _user Address of user which buys token
    /// @param _value Amount of ETH. 1 _value = 1/10^18 ETH
    function buyTokens(address _user, uint _value) private IcoIsActive {
        uint boughtTokens = getTokensAmountWithEth(_value);
        burnTokens(boughtTokens);

        balances[_user] = add(balances[_user], boughtTokens);
        addUserToList(_user);
        BuyTokens(_user, _value, boughtTokens);
    }

    /// @dev Makes ERC-20 token sellable
    /// @param _token Address of ERC-20 token
    /// @param _amount Amount of current token
    /// @param _price Price of _amount of token
    function addToken(address _token, uint _amount, uint _price) onlyManager public {
        assert(_token != 0x0);
        assert(_amount > 0);
        assert(_price > 0);

        bool isNewToken = true;
        for (uint i = 0; i < allowedTokens.length; i++) {
            if (allowedTokens[i] == _token) {
                isNewToken = false;
                break;
            }
        }
        if (isNewToken) {
            allowedTokens.push(_token);
        }

        tokenPrice[_token] = _price;
        tokenAmount[_token] = _amount;
    }

    /// @dev Makes ERC-20 token not sellable
    /// @param _token Address of ERC-20 token
    function removeToken(address _token) onlyManager public {
        for (uint i = 0; i < allowedTokens.length; i++) {
            if (_token == allowedTokens[i]) {
                if (i < allowedTokens.length - 1) {
                    allowedTokens[i] = allowedTokens[allowedTokens.length - 1];
                }
                allowedTokens[allowedTokens.length - 1] = 0x0;
                allowedTokens.length--;
                break;
            }
        }

        tokenPrice[_token] = 0;
        tokenAmount[_token] = 0;
    }

    /// @dev add user to usersList
    /// @param _user Address of user
    function addUserToList(address _user) private {
        if (!isUserInList[_user]) {
            isUserInList[_user] = true;
            usersList.push(_user);
        }
    }

    /// @dev Makes amount of tokens not purchasable
    /// @param _amount Amount of RMC tokens
    function burnTokens(uint _amount) private {
        assert(add(tokensSupplied, _amount) <= TOKENS_SUPPLY);
        tokensSupplied = add(tokensSupplied, _amount);
    }

    /// @dev Takes ERC-20 tokens approved by user for using and gives him RMC tokens
    /// @param _token Address of ERC-20 token
    function buyWithTokens(address _token) public {
        buyWithTokensBy(msg.sender, _token);
    }

    /// @dev Takes ERC-20 tokens approved by user for using and gives him RMC tokens. Can be called by anyone
    /// @param _user Address of user
    /// @param _token Address of ERC-20 token
    function buyWithTokensBy(address _user, address _token) public IcoIsActive {
        // Checks whether the token is allowed
        assert(tokenPrice[_token] > 0);

        AbstractToken token = AbstractToken(_token);
        uint tokensToSend = token.allowance(_user, address(this));
        assert(tokensToSend > 0);

        uint boughtTokens = getTokensAmountByTokens(_token, tokensToSend);
        burnTokens(boughtTokens);
        balances[_user] = add(balances[_user], boughtTokens);

        uint prevBalance = token.balanceOf(address(this));
        assert(token.transferFrom(_user, address(this), tokensToSend));
        assert(token.balanceOf(address(this)) - prevBalance == tokensToSend);

        userTokensValues[_user][_token] = add(userTokensValues[_user][_token], tokensToSend);

        addTokenToUser(_user, _token);
        addUserToList(_user);
        BuyTokensWithTokens(_user, _token, tokensToSend, boughtTokens);
    }

    /// @dev Makes amount of tokens returnable for user. If _buyTokens equals true, buy tokens
    /// @param _user Address of user
    /// @param _token Address of ERC-20 token
    /// @param _tokenValue Amount of ERC-20 token
    /// @param _buyTokens If true, buys tokens for this sum
    function addTokensToReturn(address _user, address _token, uint _tokenValue, bool _buyTokens) public onlyManager {
        // Checks whether the token is allowed
        assert(tokenPrice[_token] > 0);

        if (_buyTokens) {
            uint boughtTokens = getTokensAmountByTokens(_token, _tokenValue);
            burnTokens(boughtTokens);
            balances[_user] = add(balances[_user], boughtTokens);
            BuyTokensWithTokens(_user, _token, _tokenValue, boughtTokens);
        }

        userTokensValues[_user][_token] = add(userTokensValues[_user][_token], _tokenValue);
        addTokenToUser(_user, _token);
        addUserToList(_user);
    }


    /// @dev Adds ERC-20 tokens to user's token list
    /// @param _user Address of user
    /// @param _token Address of ERC-20 token
    function addTokenToUser(address _user, address _token) private {
        for (uint i = 0; i < userTokens[_user].length; i++) {
            if (userTokens[_user][i] == _token) {
                return;
            }
        }
        userTokens[_user].push(_token);
    }

    /// @dev Returns ether and tokens to user. Can be called only if ICO is ended and SoftCap is not reached
    function returnFunds() public {
        assert(!isIcoSuccessful() && !isIcoActive());

        returnFundsFor(msg.sender);
    }

    /// @dev Moves tokens from one user to another. Can be called only by manager. This function added for users that send ether by stock exchanges
    function moveIcoTokens(address _from, address _to, uint _value) public onlyManager {
        balances[_from] = sub(balances[_from], _value);
        balances[_to] = add(balances[_to], _value);

        MoveTokens(_from, _to, _value);
    }

    /// @dev Returns ether and tokens to user. Can be called only by manager or contract
    /// @param _user Address of user
    function returnFundsFor(address _user) public onlyManagerOrContract returns(bool) {
        if (ethBalances[_user] > 0) {
            if (_user.send(ethBalances[_user])) {
                ReturnEthersFor(_user, ethBalances[_user]);
                ethBalances[_user] = 0;
            }
        }

        for (uint i = 0; i < userTokens[_user].length; i++) {
            address tokenAddress = userTokens[_user][i];
            uint userTokenValue = userTokensValues[_user][tokenAddress];
            if (userTokenValue > 0) {
                AbstractToken token = AbstractToken(tokenAddress);
                if (token.transfer(_user, userTokenValue)) {
                    ReturnTokensFor(_user, tokenAddress, userTokenValue);
                    userTokensValues[_user][tokenAddress] = 0;
                }
            }
        }

        balances[_user] = 0;
    }

    /// @dev Returns ether and tokens to list of users. Can be called only by manager
    /// @param _users Array of addresses of users
    function returnFundsForMultiple(address[] _users) public onlyManager {
        for (uint i = 0; i < _users.length; i++) {
            returnFundsFor(_users[i]);
        }
    }

    /// @dev Returns ether and tokens to 50 users. Can be called only by manager
    function returnFundsForAll() public onlyManager {
        assert(!isIcoActive() && !isIcoSuccessful());

        uint first = numberOfUsersReturned;
        uint last  = (first + 50 < usersList.length) ? first + 50 : usersList.length;

        for (uint i = first; i < last; i++) {
            returnFundsFor(usersList[i]);
        }

        numberOfUsersReturned = last;
    }

    /// @dev Withdraws ether and tokens to _escrow if SoftCap is reached
    /// @param _escrow Address of escrow
    function withdrawEtherTo(address _escrow) private {
        assert(isIcoSuccessful());

        if (this.balance > 0) {
            if (_escrow.send(this.balance)) {
                WithdrawEther(_escrow, this.balance);
            }
        }

        for (uint i = 0; i < allowedTokens.length; i++) {
            AbstractToken token = AbstractToken(allowedTokens[i]);
            uint tokenBalance = token.balanceOf(address(this));
            if (tokenBalance > 0) {
                if (token.transfer(_escrow, tokenBalance)) {
                    WithdrawToken(_escrow, address(token), tokenBalance);
                }
            }
        }
    }

    /// @dev Withdraw ether and tokens to escrow. Can be called only by manager
    function withdrawEther() public onlyManager {
        withdrawEtherTo(escrow);
    }

    /// @dev Withdraw ether and tokens to reserve escrow. Can be called only by manager
    function withdrawEtherToReserveEscrow() public onlyManager {
        withdrawEtherTo(reserveEscrow);
    }

    /// @dev Enables disabled ICO. Can be called only by manager
    function runIco() public onlyManager {
        assert(isIcoStopped);
        isIcoStopped = false;
        IcoRunnedManually();
    }

    /// @dev Disables ICO. Can be called only by manager
    function stopIco() public onlyManager {
        isIcoStopped = true;
        IcoStoppedManually();
    }

    /// @dev Fallback function. Buy RMC tokens on sending ether
    function () public payable {
        buyTokens(msg.sender, msg.value);
    }

    /// @dev Gives bounty reward to user. Can be called only by manager
    /// @param _to Address of user
    /// @param _amount Amount of bounty
    function giveReward(address _to, uint _amount) public onlyManager {
        assert(_to != 0x0);
        assert(_amount > 0);
        assert(add(bountySupplied, _amount) <= BOUNTY_SUPPLY);

        bountySupplied = add(bountySupplied, _amount);
        balances[_to] = add(balances[_to], _amount);

        GiveReward(_to, _amount);
    }

    /// Adds other ERC-20 functions
    function transfer(address _to, uint _value) public returns (bool success) {
        return false;
    }

    function transferFrom(address _from, address _to, uint _value) public returns (bool success) {
        return false;
    }

    function approve(address _spender, uint _value) public returns (bool success) {
        return false;
    }

    function allowance(address _owner, address _spender) public constant returns (uint remaining) {
        return 0;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"bountySupplied","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isIcoStopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"moveIcoTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenPriceDivides","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"userTokensValues","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"returnFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"isIcoActive","outputs":[{"name":"isActive","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_token","type":"address"},{"name":"_tokenValue","type":"uint256"},{"name":"_buyTokens","type":"bool"}],"name":"addTokensToReturn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SOFT_CAPACITY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"amounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"usersList","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensSupplied","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BOUNTY_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"runIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allowedTokens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"removeToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"defaultDeadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"}],"name":"returnFundsFor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"isIcoSuccessful","outputs":[{"name":"isSuccessful","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenPriceMultiplies","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenAmounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserveEscrow","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserveManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"prices","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_users","type":"address[]"}],"name":"returnFundsForMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"returnFundsForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"giveReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"addToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"buyWithTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escrow","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_token","type":"address"}],"name":"buyWithTokensBy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"userTokens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEtherToReserveEscrow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_manager","type":"address"},{"name":"_reserveManager","type":"address"},{"name":"_escrow","type":"address"},{"name":"_reserveEscrow","type":"address"},{"name":"_deadline","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"address"},{"indexed":false,"name":"_ethValue","type":"uint256"},{"indexed":false,"name":"_boughtTokens","type":"uint256"}],"name":"BuyTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"address"},{"indexed":true,"name":"_token","type":"address"},{"indexed":false,"name":"_tokenValue","type":"uint256"},{"indexed":false,"name":"_boughtTokens","type":"uint256"}],"name":"BuyTokensWithTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"GiveReward","type":"event"},{"anonymous":false,"inputs":[],"name":"IcoStoppedManually","type":"event"},{"anonymous":false,"inputs":[],"name":"IcoRunnedManually","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_escrow","type":"address"},{"indexed":false,"name":"_ethValue","type":"uint256"}],"name":"WithdrawEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_escrow","type":"address"},{"indexed":true,"name":"_token","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"WithdrawToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"ReturnEthersFor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"address"},{"indexed":true,"name":"_token","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"ReturnTokensFor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"AddToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"}],"name":"RemoveToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"MoveTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526000600481905560058190556a04f68ca6d8cd91c600000060065560016007819055600855635a92c1606010556011805460ff1916905560175534156200004a57600080fd5b60405160a080620022978339810160405280805191906020018051919060200180519190602001805191906020018051915050600160a060020a03851615156200009057fe5b600160a060020a0384161515620000a357fe5b600160a060020a0383161515620000b657fe5b600160a060020a0382161515620000c957fe5b60008054600160a060020a03808816600160a060020a031992831617909255600180548784169083161790556002805486841690831617905560038054928516929091169190911790558015620001205760108190555b60098054600181016200013483826200019b565b5060009182526020909120600754910155600a8054600181016200015983826200019b565b5060009182526020909120600854910155600b8054600181016200017e83826200019b565b506000918252602090912060065491015550620001eb9350505050565b815481835581811511620001c257600083815260209020620001c2918101908301620001c7565b505050565b620001e891905b80821115620001e45760008155600101620001ce565b5090565b90565b61209c80620001fb6000396000f30060606040526004361061024d5763ffffffff60e060020a60003504166306096931811461025957806306fdde031461027e578063095ea7b3146103085780631039cf3c1461033e57806311916ce714610351578063119cb2ff1461037957806318160ddd1461038f57806318d43f0d146103a25780631eb5ea2e146103c75780631fc27ef2146103da57806323b872dd146103ed57806329dcb0cf14610415578063313ce5671461042857806334b122cb1461043b57806337b475d4146104685780633cfba0e31461047b57806345f0a44f1461049a578063481c6a75146104b0578063502aa3b5146104df57806355c8c6fd146104f55780635d771933146105085780635daab2361461051b5780635e5f2e261461052e5780635fa7b5841461054457806370a08231146105635780637362377b146105825780637b274afc146105955780637b73c2ef146105a85780637dfbdf6d146105bb5780637f28c44f146105da57806384ba3f69146105ed57806395d89b411461060c57806397883d1f1461061f5780639ad280c014610635578063a9059cbb14610308578063a96b7f051461064b578063b12e14491461066a578063bb004abc1461067d578063bc31c1c114610690578063c474e70a146106a6578063ccdfcfa4146106f5578063ce8ae9f314610708578063d2d8cb671461072a578063dd62ed3e1461073d578063dee1f2af14610762578063e050491014610787578063e2fdcc17146107a6578063ec0a0b50146107b9578063edb1072e146107cc578063f9f411d8146107f1578063fcc648f614610813575b6102573334610826565b005b341561026457600080fd5b61026c6108da565b60405190815260200160405180910390f35b341561028957600080fd5b6102916108e0565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102cd5780820151838201526020016102b5565b50505050905090810190601f1680156102fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031357600080fd5b61032a600160a060020a0360043516602435610917565b604051901515815260200160405180910390f35b341561034957600080fd5b61032a61091f565b341561035c57600080fd5b610257600160a060020a0360043581169060243516604435610928565b341561038457600080fd5b61026c600435610a09565b341561039a57600080fd5b61026c610a28565b34156103ad57600080fd5b61026c600160a060020a0360043581169060243516610a37565b34156103d257600080fd5b610257610a54565b34156103e557600080fd5b61032a610a82565b34156103f857600080fd5b61032a600160a060020a0360043581169060243516604435610a9f565b341561042057600080fd5b61026c610aa8565b341561043357600080fd5b61026c610aae565b341561044657600080fd5b610257600160a060020a03600435811690602435166044356064351515610ab3565b341561047357600080fd5b61026c610c14565b341561048657600080fd5b61026c600160a060020a0360043516610c23565b34156104a557600080fd5b61026c600435610c35565b34156104bb57600080fd5b6104c3610c43565b604051600160a060020a03909116815260200160405180910390f35b34156104ea57600080fd5b6104c3600435610c52565b341561050057600080fd5b61026c610c7a565b341561051357600080fd5b61026c610c80565b341561052657600080fd5b610257610c8e565b341561053957600080fd5b6104c3600435610d07565b341561054f57600080fd5b610257600160a060020a0360043516610d15565b341561056e57600080fd5b61026c600160a060020a0360043516610e96565b341561058d57600080fd5b610257610eb1565b34156105a057600080fd5b610257610efb565b34156105b357600080fd5b61026c610f69565b34156105c657600080fd5b61032a600160a060020a0360043516610f71565b34156105e557600080fd5b61032a611229565b34156105f857600080fd5b61026c600160a060020a036004351661123e565b341561061757600080fd5b610291611250565b341561062a57600080fd5b61026c600435611287565b341561064057600080fd5b61026c600435611295565b341561065657600080fd5b61026c600160a060020a03600435166112a3565b341561067557600080fd5b6104c36112b5565b341561068857600080fd5b6104c36112c4565b341561069b57600080fd5b61026c6004356112d3565b34156106b157600080fd5b61025760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506112e195505050505050565b341561070057600080fd5b61025761134d565b341561071357600080fd5b610257600160a060020a0360043516602435611410565b341561073557600080fd5b61026c611509565b341561074857600080fd5b61026c600160a060020a0360043581169060243516610917565b341561076d57600080fd5b610257600160a060020a0360043516602435604435611514565b341561079257600080fd5b610257600160a060020a036004351661163f565b34156107b157600080fd5b6104c3611649565b34156107c457600080fd5b61026c611658565b34156107d757600080fd5b610257600160a060020a0360043581169060243516611667565b34156107fc57600080fd5b6104c3600160a060020a03600435166024356119b0565b341561081e57600080fd5b6102576119e7565b6000610830610a82565b151561083857fe5b61084182611a2f565b905061084c81611a51565b600160a060020a0383166000908152600f602052604090205461086f9082611a85565b600160a060020a0384166000908152600f602052604090205561089183611a9b565b82600160a060020a03167f0a37b72bb67eee30e09084cf386f8a17817c57f620c3ab95fb25d6a20356ec77838360405191825260208201526040908101905180910390a2505050565b60055481565b60408051908101604052601781527f52656d65636861696e2050726573616c6520546f6b656e000000000000000000602082015281565b600092915050565b60115460ff1681565b60005433600160a060020a0390811691161480610953575060015433600160a060020a039081169116145b151561095b57fe5b600160a060020a0383166000908152600f602052604090205461097e9082611b2c565b600160a060020a038085166000908152600f602052604080822093909355908416815220546109ad9082611a85565b600160a060020a038084166000818152600f6020526040908190209390935591908516907fdc6ea828c5ab3d3595c27f8b64500252aa852dfa7fe1c7fb54e5a33c6f25cc2f9084905190815260200160405180910390a3505050565b600a805482908110610a1757fe5b600091825260209091200154905081565b6a0540aa3094621824c0000081565b601960209081526000928352604080842090915290825290205481565b610a5c611229565b158015610a6e5750610a6c610a82565b155b1515610a7657fe5b610a7f33610f71565b50565b60115460009060ff16158015610a99575060105442105b90505b90565b60009392505050565b60105481565b601281565b6000805433600160a060020a0390811691161480610adf575060015433600160a060020a039081169116145b1515610ae757fe5b600160a060020a03841660009081526014602052604081205411610b0757fe5b8115610ba457610b178484611b3e565b9050610b2281611a51565b600160a060020a0385166000908152600f6020526040902054610b459082611a85565b600160a060020a038087166000818152600f60205260409081902093909355908616917ffb402c262bfdc97ddc8d67e8e67070dfc65db4eab9b4e8e4159acc90c3e855d090869085905191825260208201526040908101905180910390a35b600160a060020a03808616600090815260196020908152604080832093881683529290522054610bd49084611a85565b600160a060020a03808716600090815260196020908152604080832093891683529290522055610c048585611b90565b610c0d85611a9b565b5050505050565b6a01a784379d99db4200000081565b600c6020526000908152604090205481565b600e805482908110610a1757fe5b600054600160a060020a031681565b6015805482908110610c6057fe5b600091825260209091200154600160a060020a0316905081565b60045481565b694a1d89bb94865ec0000081565b60005433600160a060020a0390811691161480610cb9575060015433600160a060020a039081169116145b1515610cc157fe5b60115460ff161515610ccf57fe5b6011805460ff191690557facf197b1f433a63ad09367de8cfc4c90aa5d0da8d52bff441d92ddbaa8ced9d260405160405180910390a1565b6012805482908110610c6057fe5b6000805433600160a060020a0390811691161480610d41575060015433600160a060020a039081169116145b1515610d4957fe5b5060005b601254811015610e6e576012805482908110610d6557fe5b600091825260209091200154600160a060020a0383811691161415610e665760125460001901811015610e0157601280546000198101908110610da457fe5b60009182526020909120015460128054600160a060020a039092169183908110610dca57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555b60128054600091906000198101908110610e1757fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556012805490610e60906000198301612033565b50610e6e565b600101610d4d565b50600160a060020a031660009081526014602090815260408083208390556013909152812055565b600160a060020a03166000908152600f602052604090205490565b60005433600160a060020a0390811691161480610edc575060015433600160a060020a039081169116145b1515610ee457fe5b600254610ef990600160a060020a0316611c64565b565b60005433600160a060020a0390811691161480610f26575060015433600160a060020a039081169116145b1515610f2e57fe5b6011805460ff191660011790557f18cf59b69a9d6ca96b0ea0b1167071e28fadaa7be75bbfb07122ef2cf807843960405160405180910390a1565b635a92c16081565b60008054819081908190819033600160a060020a0390811691161480610fa5575060015433600160a060020a039081169116145b80610fc1575030600160a060020a031633600160a060020a0316145b1515610fc957fe5b600160a060020a0386166000908152600c6020526040812054111561108857600160a060020a0386166000818152600c6020526040908190205480156108fc029151600060405180830381858888f193505050501561108857600160a060020a0386166000818152600c602052604090819020547f3369c3b6197aae922e83958b09039af5c9e91863a682f4beb947a02b15725844915190815260200160405180910390a2600160a060020a0386166000908152600c60205260408120555b600093505b600160a060020a03861660009081526018602052604090205484101561120757600160a060020a03861660009081526018602052604090208054859081106110d157fe5b6000918252602080832090910154600160a060020a03898116845260198352604080852091909216808552925282205490945092508211156111fc575081600160a060020a03811663a9059cbb878460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561116c57600080fd5b6102c65a03f1151561117d57600080fd5b50505060405180519050156111fc5782600160a060020a031686600160a060020a03167f8e0ea5cfe772598ab9aeab546b2ed6ffcd34b678950c9b3b9b3a4c14a386de828460405190815260200160405180910390a3600160a060020a0380871660009081526019602090815260408083209387168352929052908120555b60019093019261108d565b505050600160a060020a039092166000908152600f6020526040812055919050565b6004546a01a784379d99db4200000090101590565b60146020526000908152604090205481565b60408051908101604052600481527f69524d4300000000000000000000000000000000000000000000000000000000602082015281565b6009805482908110610a1757fe5b600b805482908110610a1757fe5b60136020526000908152604090205481565b600354600160a060020a031681565b600154600160a060020a031681565b600d805482908110610a1757fe5b6000805433600160a060020a039081169116148061130d575060015433600160a060020a039081169116145b151561131557fe5b5060005b81518110156113495761134082828151811061133157fe5b90602001906020020151610f71565b50600101611319565b5050565b600080548190819033600160a060020a039081169116148061137d575060015433600160a060020a039081169116145b151561138557fe5b61138d610a82565b15801561139f575061139d611229565b155b15156113a757fe5b60175460155490935060328401106113c1576015546113c6565b826032015b91508290505b81811015611409576114006015828154811015156113e657fe5b600091825260209091200154600160a060020a0316610f71565b506001016113cc565b5060175550565b60005433600160a060020a039081169116148061143b575060015433600160a060020a039081169116145b151561144357fe5b600160a060020a038216151561145557fe5b6000811161145f57fe5b670de0b6b3a7640000620557300261147960055483611a85565b111561148157fe5b61148d60055482611a85565b600555600160a060020a0382166000908152600f60205260409020546114b39082611a85565b600160a060020a0383166000818152600f60205260409081902092909255907f6f9fd2fc20df30e1950019add5758763bf62ef22f93153f40e7d35521d165e629083905190815260200160405180910390a25050565b660b1a2bc2ec500081565b60008054819033600160a060020a0390811691161480611542575060015433600160a060020a039081169116145b151561154a57fe5b600160a060020a038516151561155c57fe5b6000841161156657fe5b6000831161157057fe5b506001905060005b6012548110156115c75784600160a060020a031660128281548110151561159b57fe5b600091825260209091200154600160a060020a031614156115bf57600091506115c7565b600101611578565b81156116125760128054600181016115df8382612033565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387161790555b5050600160a060020a03909216600090815260146020908152604080832094909455601390529190912055565b610a7f3382611667565b600254600160a060020a031681565b6a04f68ca6d8cd91c600000081565b600080600080611675610a82565b151561167d57fe5b600160a060020a0385166000908152601460205260408120541161169d57fe5b84935083600160a060020a031663dd62ed3e873060006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156116ff57600080fd5b6102c65a03f1151561171057600080fd5b50505060405180519350506000831161172557fe5b61172f8584611b3e565b915061173a82611a51565b600160a060020a0386166000908152600f602052604090205461175d9083611a85565b600160a060020a038088166000908152600f602052604080822093909355908616916370a08231913091516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117ca57600080fd5b6102c65a03f115156117db57600080fd5b5050506040518051915050600160a060020a0384166323b872dd87308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561185057600080fd5b6102c65a03f1151561186157600080fd5b50505060405180519050151561187357fe5b828185600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156118cc57600080fd5b6102c65a03f115156118dd57600080fd5b50505060405180519050031415156118f157fe5b600160a060020a038087166000908152601960209081526040808320938916835292905220546119219084611a85565b600160a060020a038088166000908152601960209081526040808320938a16835292905220556119518686611b90565b61195a86611a9b565b84600160a060020a031686600160a060020a03167ffb402c262bfdc97ddc8d67e8e67070dfc65db4eab9b4e8e4159acc90c3e855d0858560405191825260208201526040908101905180910390a3505050505050565b6018602052816000526040600020818154811015156119cb57fe5b600091825260209091200154600160a060020a03169150829050565b60005433600160a060020a0390811691161480611a12575060015433600160a060020a039081169116145b1515611a1a57fe5b600354610ef990600160a060020a0316611c64565b6000611a4b670de0b6b3a7640000660b1a2bc2ec500084611e88565b92915050565b670de0b6b3a7640000625b8d8002611a6b60045483611a85565b1115611a7357fe5b611a7f60045482611a85565b60045550565b600082820183811015611a9457fe5b9392505050565b600160a060020a03811660009081526016602052604090205460ff161515610a7f57600160a060020a0381166000908152601660205260409020805460ff191660019081179091556015805490918101611af58382612033565b5060009182526020909120018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600082821115611b3857fe5b50900390565b600160a060020a038216600090815260146020526040812054819011611b6057fe5b600160a060020a038316600090815260146020908152604080832054601390925290912054611a94919084611e88565b60005b600160a060020a038316600090815260186020526040902054811015611c0457600160a060020a03838116600090815260186020526040902080549184169183908110611bdc57fe5b600091825260209091200154600160a060020a03161415611bfc57611c5f565b600101611b93565b600160a060020a0383166000908152601860205260409020805460018101611c2c8382612033565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b505050565b6000806000611c71611229565b1515611c7957fe5b600030600160a060020a0316311115611d0b5783600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f1935050505015611d0b5783600160a060020a03167fdb35132c111efe920cede025e819975671cfd1b8fcc1174762c8670c4e94c21130600160a060020a03163160405190815260200160405180910390a25b600092505b601254831015611e82576012805484908110611d2857fe5b6000918252602082200154600160a060020a0316925082906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611d8d57600080fd5b6102c65a03f11515611d9e57600080fd5b50505060405180519150506000811115611e775781600160a060020a031663a9059cbb858360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611e0f57600080fd5b6102c65a03f11515611e2057600080fd5b5050506040518051905015611e775781600160a060020a031684600160a060020a03167f037238854fe57fbf51f09946f854fc3916fe83938d6521f09bd05463839f13048360405190815260200160405180910390a35b600190920191611d10565b50505050565b6004546000908190818080805b600b54861015611ef257600b805487908110611ead57fe5b6000918252602090912001548510611ee257600b805487908110611ecd57fe5b90600052602060002090015485039450611ee7565b611ef2565b600190950194611e95565b600b548610611efd57fe5b600093505b600b54861161202557600b548610611f1657fe5b84600b87815481101515611f2657fe5b90600052602060002090015403925060009450600986815481101515611f4857fe5b906000526020600020900154600a87815481101515611f6357fe5b9060005260206000209001548a8c8b02811515611f7c57fe5b0402811515611f8757fe5b0491508282111561200957611f9c8484611a85565b9350600a86815481101515611fad57fe5b906000526020600020900154600987815481101515611fc857fe5b9060005260206000209001548b8b8602811515611fe157fe5b0402811515611fec57fe5b049050808811611ffb57612025565b80880397506000945061201a565b6120138483611a85565b9350612025565b600190950194611f02565b509198975050505050505050565b815481835581811511611c5f57600083815260209020611c5f918101908301610a9c91905b8082111561206c5760008155600101612058565b50905600a165627a7a72305820f200c370a0bf880859958183f2133c430649954f5fba2e00773dce2ba6e1b4cb002900000000000000000000000057b22f88eb4aec3ce8d120ca642d5e4f97bb5daf0000000000000000000000005b1d7488cfcb03007f99519ee4118f0196c0162c0000000000000000000000000db878904a0a6960c8d7701455d3bc2b81b5d6d5000000000000000000000000bfa78362f3936927c1fc3dd555b358d8626e88530000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60606040526004361061024d5763ffffffff60e060020a60003504166306096931811461025957806306fdde031461027e578063095ea7b3146103085780631039cf3c1461033e57806311916ce714610351578063119cb2ff1461037957806318160ddd1461038f57806318d43f0d146103a25780631eb5ea2e146103c75780631fc27ef2146103da57806323b872dd146103ed57806329dcb0cf14610415578063313ce5671461042857806334b122cb1461043b57806337b475d4146104685780633cfba0e31461047b57806345f0a44f1461049a578063481c6a75146104b0578063502aa3b5146104df57806355c8c6fd146104f55780635d771933146105085780635daab2361461051b5780635e5f2e261461052e5780635fa7b5841461054457806370a08231146105635780637362377b146105825780637b274afc146105955780637b73c2ef146105a85780637dfbdf6d146105bb5780637f28c44f146105da57806384ba3f69146105ed57806395d89b411461060c57806397883d1f1461061f5780639ad280c014610635578063a9059cbb14610308578063a96b7f051461064b578063b12e14491461066a578063bb004abc1461067d578063bc31c1c114610690578063c474e70a146106a6578063ccdfcfa4146106f5578063ce8ae9f314610708578063d2d8cb671461072a578063dd62ed3e1461073d578063dee1f2af14610762578063e050491014610787578063e2fdcc17146107a6578063ec0a0b50146107b9578063edb1072e146107cc578063f9f411d8146107f1578063fcc648f614610813575b6102573334610826565b005b341561026457600080fd5b61026c6108da565b60405190815260200160405180910390f35b341561028957600080fd5b6102916108e0565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102cd5780820151838201526020016102b5565b50505050905090810190601f1680156102fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031357600080fd5b61032a600160a060020a0360043516602435610917565b604051901515815260200160405180910390f35b341561034957600080fd5b61032a61091f565b341561035c57600080fd5b610257600160a060020a0360043581169060243516604435610928565b341561038457600080fd5b61026c600435610a09565b341561039a57600080fd5b61026c610a28565b34156103ad57600080fd5b61026c600160a060020a0360043581169060243516610a37565b34156103d257600080fd5b610257610a54565b34156103e557600080fd5b61032a610a82565b34156103f857600080fd5b61032a600160a060020a0360043581169060243516604435610a9f565b341561042057600080fd5b61026c610aa8565b341561043357600080fd5b61026c610aae565b341561044657600080fd5b610257600160a060020a03600435811690602435166044356064351515610ab3565b341561047357600080fd5b61026c610c14565b341561048657600080fd5b61026c600160a060020a0360043516610c23565b34156104a557600080fd5b61026c600435610c35565b34156104bb57600080fd5b6104c3610c43565b604051600160a060020a03909116815260200160405180910390f35b34156104ea57600080fd5b6104c3600435610c52565b341561050057600080fd5b61026c610c7a565b341561051357600080fd5b61026c610c80565b341561052657600080fd5b610257610c8e565b341561053957600080fd5b6104c3600435610d07565b341561054f57600080fd5b610257600160a060020a0360043516610d15565b341561056e57600080fd5b61026c600160a060020a0360043516610e96565b341561058d57600080fd5b610257610eb1565b34156105a057600080fd5b610257610efb565b34156105b357600080fd5b61026c610f69565b34156105c657600080fd5b61032a600160a060020a0360043516610f71565b34156105e557600080fd5b61032a611229565b34156105f857600080fd5b61026c600160a060020a036004351661123e565b341561061757600080fd5b610291611250565b341561062a57600080fd5b61026c600435611287565b341561064057600080fd5b61026c600435611295565b341561065657600080fd5b61026c600160a060020a03600435166112a3565b341561067557600080fd5b6104c36112b5565b341561068857600080fd5b6104c36112c4565b341561069b57600080fd5b61026c6004356112d3565b34156106b157600080fd5b61025760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506112e195505050505050565b341561070057600080fd5b61025761134d565b341561071357600080fd5b610257600160a060020a0360043516602435611410565b341561073557600080fd5b61026c611509565b341561074857600080fd5b61026c600160a060020a0360043581169060243516610917565b341561076d57600080fd5b610257600160a060020a0360043516602435604435611514565b341561079257600080fd5b610257600160a060020a036004351661163f565b34156107b157600080fd5b6104c3611649565b34156107c457600080fd5b61026c611658565b34156107d757600080fd5b610257600160a060020a0360043581169060243516611667565b34156107fc57600080fd5b6104c3600160a060020a03600435166024356119b0565b341561081e57600080fd5b6102576119e7565b6000610830610a82565b151561083857fe5b61084182611a2f565b905061084c81611a51565b600160a060020a0383166000908152600f602052604090205461086f9082611a85565b600160a060020a0384166000908152600f602052604090205561089183611a9b565b82600160a060020a03167f0a37b72bb67eee30e09084cf386f8a17817c57f620c3ab95fb25d6a20356ec77838360405191825260208201526040908101905180910390a2505050565b60055481565b60408051908101604052601781527f52656d65636861696e2050726573616c6520546f6b656e000000000000000000602082015281565b600092915050565b60115460ff1681565b60005433600160a060020a0390811691161480610953575060015433600160a060020a039081169116145b151561095b57fe5b600160a060020a0383166000908152600f602052604090205461097e9082611b2c565b600160a060020a038085166000908152600f602052604080822093909355908416815220546109ad9082611a85565b600160a060020a038084166000818152600f6020526040908190209390935591908516907fdc6ea828c5ab3d3595c27f8b64500252aa852dfa7fe1c7fb54e5a33c6f25cc2f9084905190815260200160405180910390a3505050565b600a805482908110610a1757fe5b600091825260209091200154905081565b6a0540aa3094621824c0000081565b601960209081526000928352604080842090915290825290205481565b610a5c611229565b158015610a6e5750610a6c610a82565b155b1515610a7657fe5b610a7f33610f71565b50565b60115460009060ff16158015610a99575060105442105b90505b90565b60009392505050565b60105481565b601281565b6000805433600160a060020a0390811691161480610adf575060015433600160a060020a039081169116145b1515610ae757fe5b600160a060020a03841660009081526014602052604081205411610b0757fe5b8115610ba457610b178484611b3e565b9050610b2281611a51565b600160a060020a0385166000908152600f6020526040902054610b459082611a85565b600160a060020a038087166000818152600f60205260409081902093909355908616917ffb402c262bfdc97ddc8d67e8e67070dfc65db4eab9b4e8e4159acc90c3e855d090869085905191825260208201526040908101905180910390a35b600160a060020a03808616600090815260196020908152604080832093881683529290522054610bd49084611a85565b600160a060020a03808716600090815260196020908152604080832093891683529290522055610c048585611b90565b610c0d85611a9b565b5050505050565b6a01a784379d99db4200000081565b600c6020526000908152604090205481565b600e805482908110610a1757fe5b600054600160a060020a031681565b6015805482908110610c6057fe5b600091825260209091200154600160a060020a0316905081565b60045481565b694a1d89bb94865ec0000081565b60005433600160a060020a0390811691161480610cb9575060015433600160a060020a039081169116145b1515610cc157fe5b60115460ff161515610ccf57fe5b6011805460ff191690557facf197b1f433a63ad09367de8cfc4c90aa5d0da8d52bff441d92ddbaa8ced9d260405160405180910390a1565b6012805482908110610c6057fe5b6000805433600160a060020a0390811691161480610d41575060015433600160a060020a039081169116145b1515610d4957fe5b5060005b601254811015610e6e576012805482908110610d6557fe5b600091825260209091200154600160a060020a0383811691161415610e665760125460001901811015610e0157601280546000198101908110610da457fe5b60009182526020909120015460128054600160a060020a039092169183908110610dca57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555b60128054600091906000198101908110610e1757fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556012805490610e60906000198301612033565b50610e6e565b600101610d4d565b50600160a060020a031660009081526014602090815260408083208390556013909152812055565b600160a060020a03166000908152600f602052604090205490565b60005433600160a060020a0390811691161480610edc575060015433600160a060020a039081169116145b1515610ee457fe5b600254610ef990600160a060020a0316611c64565b565b60005433600160a060020a0390811691161480610f26575060015433600160a060020a039081169116145b1515610f2e57fe5b6011805460ff191660011790557f18cf59b69a9d6ca96b0ea0b1167071e28fadaa7be75bbfb07122ef2cf807843960405160405180910390a1565b635a92c16081565b60008054819081908190819033600160a060020a0390811691161480610fa5575060015433600160a060020a039081169116145b80610fc1575030600160a060020a031633600160a060020a0316145b1515610fc957fe5b600160a060020a0386166000908152600c6020526040812054111561108857600160a060020a0386166000818152600c6020526040908190205480156108fc029151600060405180830381858888f193505050501561108857600160a060020a0386166000818152600c602052604090819020547f3369c3b6197aae922e83958b09039af5c9e91863a682f4beb947a02b15725844915190815260200160405180910390a2600160a060020a0386166000908152600c60205260408120555b600093505b600160a060020a03861660009081526018602052604090205484101561120757600160a060020a03861660009081526018602052604090208054859081106110d157fe5b6000918252602080832090910154600160a060020a03898116845260198352604080852091909216808552925282205490945092508211156111fc575081600160a060020a03811663a9059cbb878460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561116c57600080fd5b6102c65a03f1151561117d57600080fd5b50505060405180519050156111fc5782600160a060020a031686600160a060020a03167f8e0ea5cfe772598ab9aeab546b2ed6ffcd34b678950c9b3b9b3a4c14a386de828460405190815260200160405180910390a3600160a060020a0380871660009081526019602090815260408083209387168352929052908120555b60019093019261108d565b505050600160a060020a039092166000908152600f6020526040812055919050565b6004546a01a784379d99db4200000090101590565b60146020526000908152604090205481565b60408051908101604052600481527f69524d4300000000000000000000000000000000000000000000000000000000602082015281565b6009805482908110610a1757fe5b600b805482908110610a1757fe5b60136020526000908152604090205481565b600354600160a060020a031681565b600154600160a060020a031681565b600d805482908110610a1757fe5b6000805433600160a060020a039081169116148061130d575060015433600160a060020a039081169116145b151561131557fe5b5060005b81518110156113495761134082828151811061133157fe5b90602001906020020151610f71565b50600101611319565b5050565b600080548190819033600160a060020a039081169116148061137d575060015433600160a060020a039081169116145b151561138557fe5b61138d610a82565b15801561139f575061139d611229565b155b15156113a757fe5b60175460155490935060328401106113c1576015546113c6565b826032015b91508290505b81811015611409576114006015828154811015156113e657fe5b600091825260209091200154600160a060020a0316610f71565b506001016113cc565b5060175550565b60005433600160a060020a039081169116148061143b575060015433600160a060020a039081169116145b151561144357fe5b600160a060020a038216151561145557fe5b6000811161145f57fe5b670de0b6b3a7640000620557300261147960055483611a85565b111561148157fe5b61148d60055482611a85565b600555600160a060020a0382166000908152600f60205260409020546114b39082611a85565b600160a060020a0383166000818152600f60205260409081902092909255907f6f9fd2fc20df30e1950019add5758763bf62ef22f93153f40e7d35521d165e629083905190815260200160405180910390a25050565b660b1a2bc2ec500081565b60008054819033600160a060020a0390811691161480611542575060015433600160a060020a039081169116145b151561154a57fe5b600160a060020a038516151561155c57fe5b6000841161156657fe5b6000831161157057fe5b506001905060005b6012548110156115c75784600160a060020a031660128281548110151561159b57fe5b600091825260209091200154600160a060020a031614156115bf57600091506115c7565b600101611578565b81156116125760128054600181016115df8382612033565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387161790555b5050600160a060020a03909216600090815260146020908152604080832094909455601390529190912055565b610a7f3382611667565b600254600160a060020a031681565b6a04f68ca6d8cd91c600000081565b600080600080611675610a82565b151561167d57fe5b600160a060020a0385166000908152601460205260408120541161169d57fe5b84935083600160a060020a031663dd62ed3e873060006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156116ff57600080fd5b6102c65a03f1151561171057600080fd5b50505060405180519350506000831161172557fe5b61172f8584611b3e565b915061173a82611a51565b600160a060020a0386166000908152600f602052604090205461175d9083611a85565b600160a060020a038088166000908152600f602052604080822093909355908616916370a08231913091516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117ca57600080fd5b6102c65a03f115156117db57600080fd5b5050506040518051915050600160a060020a0384166323b872dd87308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561185057600080fd5b6102c65a03f1151561186157600080fd5b50505060405180519050151561187357fe5b828185600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156118cc57600080fd5b6102c65a03f115156118dd57600080fd5b50505060405180519050031415156118f157fe5b600160a060020a038087166000908152601960209081526040808320938916835292905220546119219084611a85565b600160a060020a038088166000908152601960209081526040808320938a16835292905220556119518686611b90565b61195a86611a9b565b84600160a060020a031686600160a060020a03167ffb402c262bfdc97ddc8d67e8e67070dfc65db4eab9b4e8e4159acc90c3e855d0858560405191825260208201526040908101905180910390a3505050505050565b6018602052816000526040600020818154811015156119cb57fe5b600091825260209091200154600160a060020a03169150829050565b60005433600160a060020a0390811691161480611a12575060015433600160a060020a039081169116145b1515611a1a57fe5b600354610ef990600160a060020a0316611c64565b6000611a4b670de0b6b3a7640000660b1a2bc2ec500084611e88565b92915050565b670de0b6b3a7640000625b8d8002611a6b60045483611a85565b1115611a7357fe5b611a7f60045482611a85565b60045550565b600082820183811015611a9457fe5b9392505050565b600160a060020a03811660009081526016602052604090205460ff161515610a7f57600160a060020a0381166000908152601660205260409020805460ff191660019081179091556015805490918101611af58382612033565b5060009182526020909120018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600082821115611b3857fe5b50900390565b600160a060020a038216600090815260146020526040812054819011611b6057fe5b600160a060020a038316600090815260146020908152604080832054601390925290912054611a94919084611e88565b60005b600160a060020a038316600090815260186020526040902054811015611c0457600160a060020a03838116600090815260186020526040902080549184169183908110611bdc57fe5b600091825260209091200154600160a060020a03161415611bfc57611c5f565b600101611b93565b600160a060020a0383166000908152601860205260409020805460018101611c2c8382612033565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b505050565b6000806000611c71611229565b1515611c7957fe5b600030600160a060020a0316311115611d0b5783600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f1935050505015611d0b5783600160a060020a03167fdb35132c111efe920cede025e819975671cfd1b8fcc1174762c8670c4e94c21130600160a060020a03163160405190815260200160405180910390a25b600092505b601254831015611e82576012805484908110611d2857fe5b6000918252602082200154600160a060020a0316925082906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611d8d57600080fd5b6102c65a03f11515611d9e57600080fd5b50505060405180519150506000811115611e775781600160a060020a031663a9059cbb858360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611e0f57600080fd5b6102c65a03f11515611e2057600080fd5b5050506040518051905015611e775781600160a060020a031684600160a060020a03167f037238854fe57fbf51f09946f854fc3916fe83938d6521f09bd05463839f13048360405190815260200160405180910390a35b600190920191611d10565b50505050565b6004546000908190818080805b600b54861015611ef257600b805487908110611ead57fe5b6000918252602090912001548510611ee257600b805487908110611ecd57fe5b90600052602060002090015485039450611ee7565b611ef2565b600190950194611e95565b600b548610611efd57fe5b600093505b600b54861161202557600b548610611f1657fe5b84600b87815481101515611f2657fe5b90600052602060002090015403925060009450600986815481101515611f4857fe5b906000526020600020900154600a87815481101515611f6357fe5b9060005260206000209001548a8c8b02811515611f7c57fe5b0402811515611f8757fe5b0491508282111561200957611f9c8484611a85565b9350600a86815481101515611fad57fe5b906000526020600020900154600987815481101515611fc857fe5b9060005260206000209001548b8b8602811515611fe157fe5b0402811515611fec57fe5b049050808811611ffb57612025565b80880397506000945061201a565b6120138483611a85565b9350612025565b600190950194611f02565b509198975050505050505050565b815481835581811511611c5f57600083815260209020611c5f918101908301610a9c91905b8082111561206c5760008155600101612058565b50905600a165627a7a72305820f200c370a0bf880859958183f2133c430649954f5fba2e00773dce2ba6e1b4cb0029

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

00000000000000000000000057b22f88eb4aec3ce8d120ca642d5e4f97bb5daf0000000000000000000000005b1d7488cfcb03007f99519ee4118f0196c0162c0000000000000000000000000db878904a0a6960c8d7701455d3bc2b81b5d6d5000000000000000000000000bfa78362f3936927c1fc3dd555b358d8626e88530000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _manager (address): 0x57B22f88Eb4aeC3Ce8D120CA642D5e4F97bb5dAf
Arg [1] : _reserveManager (address): 0x5b1d7488cfcB03007F99519Ee4118f0196c0162c
Arg [2] : _escrow (address): 0x0Db878904a0A6960C8d7701455D3bc2B81B5D6D5
Arg [3] : _reserveEscrow (address): 0xBfa78362F3936927C1FC3DD555b358D8626e8853
Arg [4] : _deadline (uint256): 0

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000057b22f88eb4aec3ce8d120ca642d5e4f97bb5daf
Arg [1] : 0000000000000000000000005b1d7488cfcb03007f99519ee4118f0196c0162c
Arg [2] : 0000000000000000000000000db878904a0a6960c8d7701455d3bc2b81b5d6d5
Arg [3] : 000000000000000000000000bfa78362f3936927c1fc3dd555b358d8626e8853
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://f200c370a0bf880859958183f2133c430649954f5fba2e00773dce2ba6e1b4cb

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  ]

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.