Sponsored:   Ubex.com - World roadshow: Seoul Sep 17-19, Singapore Sep 19-20, Dubai 18-23. Meet us!.
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 32 txns
Token Tracker: Remechain Presale Token (RMC)
 Latest 25 txns From a total of 32 Transactions

TxHash Age From To Value [TxFee]
0xfdf62b20b95fa169ad0c1536ed05961b6908c3a3f884c7467415c5fca27e7f16240 days 23 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.001736343
0xa520c185e1cef7811af77b2c8b5e5b82054e7c3a5b9e59a5fbbe9f4314256c1f252 days 22 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.0018372
0x6cef4e5ff85f66635dbef514ca5e991cafaba547a8c6a516a99d55d547ce27ee252 days 22 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.0075
0xf18456b34fe1e371a349a82465b799c485e9bfefd816983862449e811375ebed252 days 22 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.003716582
0xf851e2ee3db5100d9520c9e8ba62562eb9aab200d892621392fd0fdf4fec1a0e252 days 22 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.0018372
0x92becaa40af21b21a8c53408023ba1091d27e35c0ec04fbb0f66f7c6a630fa63253 days 1 hr ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.0033722
0x88cb218acb83952eabab91f67d16734d18184a9d87b331c0a61cf03006ac9cf2253 days 1 hr ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.0018372
0x02702eb03654dd501e6fd95c12c92c6f61235ccc984e46a4313af6dc78b07f9a253 days 2 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.00435
0x1849a1927ac26f593b003c916e808f6b67b9b5d359b7c7e4a9f732681e0f9711253 days 2 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.00320395
0x195b2c0afcd62cbdcd99b6f607e5a09e71d1a0120380ad40fc77a795c4cc0554253 days 2 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.0018372
0xca6fb226d74deffe01559937cf2a3d3ecc9cb734fc247add26958feea48b3d6a253 days 12 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.00320395
0xe5a4e398395ad0739ee19a2a03fb2143b8d2818efa9e658a297a3409fbb48750253 days 12 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.0018372
0x455bed7d79540c1a9f00bac3ed29794bc926d507ec048d404633a0f52b317d04253 days 12 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.00464745
0x2360063855c969cc4b425c883855d98e6f6b0269f6c8cfe1b604e82c475dd701253 days 15 hrs ago0xf55474bf0db4935b3235dc2feed615af770afb82  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.16 Ether0.004091226
0xb2d7498b42168595bcd874ea2455574a9ee40222376589ba02f56983eacb7f3c254 days 7 hrs ago0xa46dff9cd561e6a4613cb46a54b88d48c1abb611  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.24485525 Ether0.00199572
0x79ddb55098a546f9dfd047c0678449f0bcbb6c87d238cac1a6e3b52c23aa2d88254 days 22 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.001345659
0x22a7fa033f832c69415828e494a3ad95da7b18d95d831bc800170834dbf7f7a7254 days 23 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.000771624
0xe410f4fc333e3307139872b4f1a0b728adc7f6a2ee97f75b42d221a1b2f8b06e256 days 18 hrs ago0xf11b5a8b4761e6bfa0026562e201d273cf0d66f6  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.5 Ether0.00399144
0x21491ebfedbf50d98b19ef073cc1e97d8689ec1c1971a616c0d16d970cd5c465258 days 23 hrs ago0x58a1df9f525a38c83c6f103e809a1cc4a41fe245  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.1 Ether0.00249465
0x2abfa1ed3b332707d683f4bfee40b1d9c96438bef6e4399932dc7ff4b39a8a7e262 days 1 hr ago0x633fc9a112b9983fb24b8882da91de0a80884529  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.48 Ether0.00199572
0x50d6e8b49fcde2a924b75e211e26af9a202f494c94ce85acda1f07883c0bb8a7264 days 17 hrs ago0xd2b116ee4bee606eb47cdc9e1af0a21cd21a632d  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.0233 Ether0.00199572
0xf0d764c8275b46eaa63dc259be670be7364531e6166f09e806f2b2ef9c16719f264 days 22 hrs ago0xb7cc471656d8a77926632467b32214fe786c176b  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.15 Ether0.004091226
0x5f06257c8cae0264fc471119d1c7ce420a2b05e95a365081a28ac5d55960abb1265 days 16 hrs ago0x7820774535b91fcea012d0be5a1ab90db9d9e9d0  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620.035 Ether0.002095506
0x054334723465123b8bb6ad7a28179dd356df3186b3e526f32325d6ba9da6a1da265 days 22 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.001345659
0x19b762dc213ec12fd2fa33c7cbe7adc1cdb9200f000544024fced5d1db37bab2265 days 22 hrs ago0x57b22f88eb4aec3ce8d120ca642d5e4f97bb5daf  IN   0xdae46fadfd30e7b6de74937626adf09d947ecc620 Ether0.00077028
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0xfdf62b20b95fa169ad0c1536ed05961b6908c3a3f884c7467415c5fca27e7f164957746240 days 23 hrs ago0xdae46fadfd30e7b6de74937626adf09d947ecc620x0db878904a0a6960c8d7701455d3bc2b81b5d6d51.94915525 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: PreIco
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

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 = "RMC";
    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 = 166 666 RMC = 500 ETH
    uint public constant SOFT_CAPACITY = 166666 * BASE;
    // Hard capacity = 600 000 RMC = 1875 ETH
    uint public constant TOKENS_SUPPLY = 600000 * 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.003 ETH for first 200 000 RMC
    // 1 RMC = 0.003125 ETH for second 200 000 RMC
    // 1 RMC = 0.00325 ETH for third 200 000 RMC
    uint public constant TOKEN_PRICE = 3000000000000000;
    uint tokenAmount1 = 200000 * BASE;
    uint tokenAmount2 = 200000 * BASE;
    uint tokenAmount3 = 200000 * BASE;
    uint tokenPriceMultiply1 = 1;
    uint tokenPriceDivide1 = 1;
    uint tokenPriceMultiply2 = 1041667;
    uint tokenPriceDivide2 = 1000000;
    uint tokenPriceMultiply3 = 1083333;
    uint tokenPriceDivide3 = 1000000;
    
    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.01.11 17:00 MSK
    uint public constant defaultDeadline = 1515679200;
    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);
        tokenPriceMultiplies.push(tokenPriceMultiply2);
        tokenPriceMultiplies.push(tokenPriceMultiply3);
        tokenPriceDivides.push(tokenPriceDivide1);
        tokenPriceDivides.push(tokenPriceDivide2);
        tokenPriceDivides.push(tokenPriceDivide3);
        tokenAmounts.push(tokenAmount1);
        tokenAmounts.push(tokenAmount2);
        tokenAmounts.push(tokenAmount3);
    }
    
    /// @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 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"}]

  Contract Creation Code Switch To Opcodes View
6060604052600060048190556005819055692a5a058fc295ed0000006006819055600781905560085560016009819055600a55620fe503600b55620f4240600c819055621087c5600d55600e55635a576de06016556017805460ff19169055601d5534156200006d57600080fd5b60405160a080620023948339810160405280805191906020018051919060200180519190602001805191906020018051915050600160a060020a0385161515620000b357fe5b600160a060020a0384161515620000c657fe5b600160a060020a0383161515620000d957fe5b600160a060020a0382161515620000ec57fe5b60008054600160a060020a03808816600160a060020a031992831617909255600180548784169083161790556002805486841690831617905560038054928516929091169190911790558015620001435760168190555b600f8054600181016200015783826200029c565b5060009182526020909120600954910155600f8054600181016200017c83826200029c565b5060009182526020909120600b54910155600f805460018101620001a183826200029c565b5060009182526020909120600d549101556010805460018101620001c683826200029c565b5060009182526020909120600a549101556010805460018101620001eb83826200029c565b5060009182526020909120600c5491015560108054600181016200021083826200029c565b5060009182526020909120600e5491015560118054600181016200023583826200029c565b506000918252602090912060065491015560118054600181016200025a83826200029c565b506000918252602090912060075491015560118054600181016200027f83826200029c565b506000918252602090912060085491015550620002ec9350505050565b815481835581811511620002c357600083815260209020620002c3918101908301620002c8565b505050565b620002e991905b80821115620002e55760008155600101620002cf565b5090565b90565b61209880620002fc6000396000f30060606040526004361061024d5763ffffffff60e060020a60003504166306096931811461025957806306fdde031461027e578063095ea7b3146103085780631039cf3c1461033e57806311916ce714610351578063119cb2ff1461037957806318160ddd1461038f57806318d43f0d146103a25780631eb5ea2e146103c75780631fc27ef2146103da57806323b872dd146103ed57806329dcb0cf14610415578063313ce5671461042857806334b122cb1461043b57806337b475d4146104685780633cfba0e31461047b57806345f0a44f1461049a578063481c6a75146104b0578063502aa3b5146104df57806355c8c6fd146104f55780635d771933146105085780635daab2361461051b5780635e5f2e261461052e5780635fa7b5841461054457806370a08231146105635780637362377b146105825780637b274afc146105955780637b73c2ef146105a85780637dfbdf6d146105bb5780637f28c44f146105da57806384ba3f69146105ed57806395d89b411461060c57806397883d1f1461061f5780639ad280c014610635578063a9059cbb14610308578063a96b7f051461064b578063b12e14491461066a578063bb004abc1461067d578063bc31c1c114610690578063c474e70a146106a6578063ccdfcfa4146106f5578063ce8ae9f314610708578063d2d8cb671461072a578063dd62ed3e1461073d578063dee1f2af14610762578063e050491014610787578063e2fdcc17146107a6578063ec0a0b50146107b9578063edb1072e146107cc578063f9f411d8146107f1578063fcc648f614610813575b6102573334610826565b005b341561026457600080fd5b61026c6108da565b60405190815260200160405180910390f35b341561028957600080fd5b6102916108e0565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102cd5780820151838201526020016102b5565b50505050905090810190601f1680156102fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031357600080fd5b61032a600160a060020a0360043516602435610917565b604051901515815260200160405180910390f35b341561034957600080fd5b61032a61091f565b341561035c57600080fd5b610257600160a060020a0360043581169060243516604435610928565b341561038457600080fd5b61026c600435610a09565b341561039a57600080fd5b61026c610a28565b34156103ad57600080fd5b61026c600160a060020a0360043581169060243516610a36565b34156103d257600080fd5b610257610a53565b34156103e557600080fd5b61032a610a81565b34156103f857600080fd5b61032a600160a060020a0360043581169060243516604435610a9e565b341561042057600080fd5b61026c610aa7565b341561043357600080fd5b61026c610aad565b341561044657600080fd5b610257600160a060020a03600435811690602435166044356064351515610ab2565b341561047357600080fd5b61026c610c13565b341561048657600080fd5b61026c600160a060020a0360043516610c21565b34156104a557600080fd5b61026c600435610c33565b34156104bb57600080fd5b6104c3610c41565b604051600160a060020a03909116815260200160405180910390f35b34156104ea57600080fd5b6104c3600435610c50565b341561050057600080fd5b61026c610c78565b341561051357600080fd5b61026c610c7e565b341561052657600080fd5b610257610c8c565b341561053957600080fd5b6104c3600435610d05565b341561054f57600080fd5b610257600160a060020a0360043516610d13565b341561056e57600080fd5b61026c600160a060020a0360043516610e94565b341561058d57600080fd5b610257610eaf565b34156105a057600080fd5b610257610ef9565b34156105b357600080fd5b61026c610f67565b34156105c657600080fd5b61032a600160a060020a0360043516610f6f565b34156105e557600080fd5b61032a611227565b34156105f857600080fd5b61026c600160a060020a036004351661123b565b341561061757600080fd5b61029161124d565b341561062a57600080fd5b61026c600435611284565b341561064057600080fd5b61026c600435611292565b341561065657600080fd5b61026c600160a060020a03600435166112a0565b341561067557600080fd5b6104c36112b2565b341561068857600080fd5b6104c36112c1565b341561069b57600080fd5b61026c6004356112d0565b34156106b157600080fd5b61025760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506112de95505050505050565b341561070057600080fd5b61025761134a565b341561071357600080fd5b610257600160a060020a036004351660243561140d565b341561073557600080fd5b61026c611506565b341561074857600080fd5b61026c600160a060020a0360043581169060243516610917565b341561076d57600080fd5b610257600160a060020a0360043516602435604435611511565b341561079257600080fd5b610257600160a060020a036004351661163c565b34156107b157600080fd5b6104c3611646565b34156107c457600080fd5b61026c611655565b34156107d757600080fd5b610257600160a060020a0360043581169060243516611663565b34156107fc57600080fd5b6104c3600160a060020a03600435166024356119ac565b341561081e57600080fd5b6102576119e3565b6000610830610a81565b151561083857fe5b61084182611a2b565b905061084c81611a4d565b600160a060020a03831660009081526015602052604090205461086f9082611a81565b600160a060020a03841660009081526015602052604090205561089183611a97565b82600160a060020a03167f0a37b72bb67eee30e09084cf386f8a17817c57f620c3ab95fb25d6a20356ec77838360405191825260208201526040908101905180910390a2505050565b60055481565b60408051908101604052601781527f52656d65636861696e2050726573616c6520546f6b656e000000000000000000602082015281565b600092915050565b60175460ff1681565b60005433600160a060020a0390811691161480610953575060015433600160a060020a039081169116145b151561095b57fe5b600160a060020a03831660009081526015602052604090205461097e9082611b28565b600160a060020a0380851660009081526015602052604080822093909355908416815220546109ad9082611a81565b600160a060020a03808416600081815260156020526040908190209390935591908516907fdc6ea828c5ab3d3595c27f8b64500252aa852dfa7fe1c7fb54e5a33c6f25cc2f9084905190815260200160405180910390a3505050565b6010805482908110610a1757fe5b600091825260209091200154905081565b69c92b9a6adc4825c0000081565b601f60209081526000928352604080842090915290825290205481565b610a5b611227565b158015610a6d5750610a6b610a81565b155b1515610a7557fe5b610a7e33610f6f565b50565b60175460009060ff16158015610a98575060165442105b90505b90565b60009392505050565b60165481565b601281565b6000805433600160a060020a0390811691161480610ade575060015433600160a060020a039081169116145b1515610ae657fe5b600160a060020a0384166000908152601a602052604081205411610b0657fe5b8115610ba357610b168484611b3a565b9050610b2181611a4d565b600160a060020a038516600090815260156020526040902054610b449082611a81565b600160a060020a038087166000818152601560205260409081902093909355908616917ffb402c262bfdc97ddc8d67e8e67070dfc65db4eab9b4e8e4159acc90c3e855d090869085905191825260208201526040908101905180910390a35b600160a060020a038086166000908152601f6020908152604080832093881683529290522054610bd39084611a81565b600160a060020a038087166000908152601f6020908152604080832093891683529290522055610c038585611b8c565b610c0c85611a97565b5050505050565b69234afb61fdafd5e8000081565b60126020526000908152604090205481565b6014805482908110610a1757fe5b600054600160a060020a031681565b601b805482908110610c5e57fe5b600091825260209091200154600160a060020a0316905081565b60045481565b694a1d89bb94865ec0000081565b60005433600160a060020a0390811691161480610cb7575060015433600160a060020a039081169116145b1515610cbf57fe5b60175460ff161515610ccd57fe5b6017805460ff191690557facf197b1f433a63ad09367de8cfc4c90aa5d0da8d52bff441d92ddbaa8ced9d260405160405180910390a1565b6018805482908110610c5e57fe5b6000805433600160a060020a0390811691161480610d3f575060015433600160a060020a039081169116145b1515610d4757fe5b5060005b601854811015610e6c576018805482908110610d6357fe5b600091825260209091200154600160a060020a0383811691161415610e645760185460001901811015610dff57601880546000198101908110610da257fe5b60009182526020909120015460188054600160a060020a039092169183908110610dc857fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555b60188054600091906000198101908110610e1557fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556018805490610e5e90600019830161202f565b50610e6c565b600101610d4b565b50600160a060020a03166000908152601a602090815260408083208390556019909152812055565b600160a060020a031660009081526015602052604090205490565b60005433600160a060020a0390811691161480610eda575060015433600160a060020a039081169116145b1515610ee257fe5b600254610ef790600160a060020a0316611c60565b565b60005433600160a060020a0390811691161480610f24575060015433600160a060020a039081169116145b1515610f2c57fe5b6017805460ff191660011790557f18cf59b69a9d6ca96b0ea0b1167071e28fadaa7be75bbfb07122ef2cf807843960405160405180910390a1565b635a576de081565b60008054819081908190819033600160a060020a0390811691161480610fa3575060015433600160a060020a039081169116145b80610fbf575030600160a060020a031633600160a060020a0316145b1515610fc757fe5b600160a060020a038616600090815260126020526040812054111561108657600160a060020a038616600081815260126020526040908190205480156108fc029151600060405180830381858888f193505050501561108657600160a060020a03861660008181526012602052604090819020547f3369c3b6197aae922e83958b09039af5c9e91863a682f4beb947a02b15725844915190815260200160405180910390a2600160a060020a0386166000908152601260205260408120555b600093505b600160a060020a0386166000908152601e602052604090205484101561120557600160a060020a0386166000908152601e602052604090208054859081106110cf57fe5b6000918252602080832090910154600160a060020a038981168452601f8352604080852091909216808552925282205490945092508211156111fa575081600160a060020a03811663a9059cbb878460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561116a57600080fd5b6102c65a03f1151561117b57600080fd5b50505060405180519050156111fa5782600160a060020a031686600160a060020a03167f8e0ea5cfe772598ab9aeab546b2ed6ffcd34b678950c9b3b9b3a4c14a386de828460405190815260200160405180910390a3600160a060020a038087166000908152601f602090815260408083209387168352929052908120555b60019093019261108b565b505050600160a060020a03909216600090815260156020526040812055919050565b60045469234afb61fdafd5e8000090101590565b601a6020526000908152604090205481565b60408051908101604052600381527f524d430000000000000000000000000000000000000000000000000000000000602082015281565b600f805482908110610a1757fe5b6011805482908110610a1757fe5b60196020526000908152604090205481565b600354600160a060020a031681565b600154600160a060020a031681565b6013805482908110610a1757fe5b6000805433600160a060020a039081169116148061130a575060015433600160a060020a039081169116145b151561131257fe5b5060005b81518110156113465761133d82828151811061132e57fe5b90602001906020020151610f6f565b50600101611316565b5050565b600080548190819033600160a060020a039081169116148061137a575060015433600160a060020a039081169116145b151561138257fe5b61138a610a81565b15801561139c575061139a611227565b155b15156113a457fe5b601d54601b5490935060328401106113be57601b546113c3565b826032015b91508290505b81811015611406576113fd601b828154811015156113e357fe5b600091825260209091200154600160a060020a0316610f6f565b506001016113c9565b50601d5550565b60005433600160a060020a0390811691161480611438575060015433600160a060020a039081169116145b151561144057fe5b600160a060020a038216151561145257fe5b6000811161145c57fe5b670de0b6b3a7640000620557300261147660055483611a81565b111561147e57fe5b61148a60055482611a81565b600555600160a060020a0382166000908152601560205260409020546114b09082611a81565b600160a060020a0383166000818152601560205260409081902092909255907f6f9fd2fc20df30e1950019add5758763bf62ef22f93153f40e7d35521d165e629083905190815260200160405180910390a25050565b660aa87bee53800081565b60008054819033600160a060020a039081169116148061153f575060015433600160a060020a039081169116145b151561154757fe5b600160a060020a038516151561155957fe5b6000841161156357fe5b6000831161156d57fe5b506001905060005b6018548110156115c45784600160a060020a031660188281548110151561159857fe5b600091825260209091200154600160a060020a031614156115bc57600091506115c4565b600101611575565b811561160f5760188054600181016115dc838261202f565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387161790555b5050600160a060020a039092166000908152601a6020908152604080832094909455601990529190912055565b610a7e3382611663565b600254600160a060020a031681565b697f0e10af47c1c700000081565b600080600080611671610a81565b151561167957fe5b600160a060020a0385166000908152601a60205260408120541161169957fe5b84935083600160a060020a031663dd62ed3e873060006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156116fb57600080fd5b6102c65a03f1151561170c57600080fd5b50505060405180519350506000831161172157fe5b61172b8584611b3a565b915061173682611a4d565b600160a060020a0386166000908152601560205260409020546117599083611a81565b600160a060020a0380881660009081526015602052604080822093909355908616916370a08231913091516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117c657600080fd5b6102c65a03f115156117d757600080fd5b5050506040518051915050600160a060020a0384166323b872dd87308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b50505060405180519050151561186f57fe5b828185600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156118c857600080fd5b6102c65a03f115156118d957600080fd5b50505060405180519050031415156118ed57fe5b600160a060020a038087166000908152601f602090815260408083209389168352929052205461191d9084611a81565b600160a060020a038088166000908152601f60209081526040808320938a168352929052205561194d8686611b8c565b61195686611a97565b84600160a060020a031686600160a060020a03167ffb402c262bfdc97ddc8d67e8e67070dfc65db4eab9b4e8e4159acc90c3e855d0858560405191825260208201526040908101905180910390a3505050505050565b601e602052816000526040600020818154811015156119c757fe5b600091825260209091200154600160a060020a03169150829050565b60005433600160a060020a0390811691161480611a0e575060015433600160a060020a039081169116145b1515611a1657fe5b600354610ef790600160a060020a0316611c60565b6000611a47670de0b6b3a7640000660aa87bee53800084611e84565b92915050565b670de0b6b3a7640000620927c002611a6760045483611a81565b1115611a6f57fe5b611a7b60045482611a81565b60045550565b600082820183811015611a9057fe5b9392505050565b600160a060020a0381166000908152601c602052604090205460ff161515610a7e57600160a060020a0381166000908152601c60205260409020805460ff19166001908117909155601b805490918101611af1838261202f565b5060009182526020909120018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600082821115611b3457fe5b50900390565b600160a060020a0382166000908152601a6020526040812054819011611b5c57fe5b600160a060020a0383166000908152601a6020908152604080832054601990925290912054611a90919084611e84565b60005b600160a060020a0383166000908152601e6020526040902054811015611c0057600160a060020a038381166000908152601e6020526040902080549184169183908110611bd857fe5b600091825260209091200154600160a060020a03161415611bf857611c5b565b600101611b8f565b600160a060020a0383166000908152601e60205260409020805460018101611c28838261202f565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b505050565b6000806000611c6d611227565b1515611c7557fe5b600030600160a060020a0316311115611d075783600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f1935050505015611d075783600160a060020a03167fdb35132c111efe920cede025e819975671cfd1b8fcc1174762c8670c4e94c21130600160a060020a03163160405190815260200160405180910390a25b600092505b601854831015611e7e576018805484908110611d2457fe5b6000918252602082200154600160a060020a0316925082906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611d8957600080fd5b6102c65a03f11515611d9a57600080fd5b50505060405180519150506000811115611e735781600160a060020a031663a9059cbb858360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611e0b57600080fd5b6102c65a03f11515611e1c57600080fd5b5050506040518051905015611e735781600160a060020a031684600160a060020a03167f037238854fe57fbf51f09946f854fc3916fe83938d6521f09bd05463839f13048360405190815260200160405180910390a35b600190920191611d0c565b50505050565b6004546000908190818080805b601154861015611eee576011805487908110611ea957fe5b6000918252602090912001548510611ede576011805487908110611ec957fe5b90600052602060002090015485039450611ee3565b611eee565b600190950194611e91565b6011548610611ef957fe5b600093505b6011548611612021576011548610611f1257fe5b84601187815481101515611f2257fe5b90600052602060002090015403925060009450600f86815481101515611f4457fe5b906000526020600020900154601087815481101515611f5f57fe5b9060005260206000209001548a8c8b02811515611f7857fe5b0402811515611f8357fe5b0491508282111561200557611f988484611a81565b9350601086815481101515611fa957fe5b906000526020600020900154600f87815481101515611fc457fe5b9060005260206000209001548b8b8602811515611fdd57fe5b0402811515611fe857fe5b049050808811611ff757612021565b808803975060009450612016565b61200f8483611a81565b9350612021565b600190950194611efe565b509198975050505050505050565b815481835581811511611c5b57600083815260209020611c5b918101908301610a9b91905b808211156120685760008155600101612054565b50905600a165627a7a72305820d45a54ec3b54e905a68bb30ef872059d4501e8d6efb0199b298c17aea9d42983002900000000000000000000000057b22f88eb4aec3ce8d120ca642d5e4f97bb5daf0000000000000000000000005b1d7488cfcb03007f99519ee4118f0196c0162c0000000000000000000000000db878904a0a6960c8d7701455d3bc2b81b5d6d5000000000000000000000000bfa78362f3936927c1fc3dd555b358d8626e88530000000000000000000000000000000000000000000000000000000000000000

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

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


   Swarm Source:
bzzr://d45a54ec3b54e905a68bb30ef872059d4501e8d6efb0199b298c17aea9d42983

 

View All
Block Age transaction Difficulty Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.