ETH Price: $2,752.88 (+0.50%)

Contract

0x2C8d4C15E563a607588D194fA250e1aa13B83a64
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer59771062018-07-16 22:20:232411 days ago1531779623IN
0x2C8d4C15...a13B83a64
0.1 ETH0.00086141
Transfer58827662018-06-30 21:03:332427 days ago1530392613IN
0x2C8d4C15...a13B83a64
0.4 ETH0.0008882641
Transfer58827442018-06-30 20:58:502427 days ago1530392330IN
0x2C8d4C15...a13B83a64
0.4 ETH0.0011265852
Transfer58827352018-06-30 20:56:092427 days ago1530392169IN
0x2C8d4C15...a13B83a64
0.4 ETH0.0011265852
Transfer58827252018-06-30 20:52:342427 days ago1530391954IN
0x2C8d4C15...a13B83a64
0.4 ETH0.00086141
Transfer58825972018-06-30 20:19:392427 days ago1530389979IN
0x2C8d4C15...a13B83a64
0.25 ETH0.0008882641
Transfer58818502018-06-30 17:23:002427 days ago1530379380IN
0x2C8d4C15...a13B83a64
0.25 ETH0.00086141
Transfer58817942018-06-30 17:08:292427 days ago1530378509IN
0x2C8d4C15...a13B83a64
0.51108274 ETH0.00086141
Transfer58817712018-06-30 17:02:042427 days ago1530378124IN
0x2C8d4C15...a13B83a64
0.51194374 ETH0.00086141
Transfer58817552018-06-30 16:58:432427 days ago1530377923IN
0x2C8d4C15...a13B83a64
0.25 ETH0.00086141
Transfer58751962018-06-29 14:07:222428 days ago1530281242IN
0x2C8d4C15...a13B83a64
0.36793635 ETH0.000194922
Transfer58748872018-06-29 12:48:062428 days ago1530276486IN
0x2C8d4C15...a13B83a64
0.40548416 ETH0.000329844
Transfer58737232018-06-29 7:49:512428 days ago1530258591IN
0x2C8d4C15...a13B83a64
0.5 ETH0.000584766
Transfer58702262018-06-28 17:22:382429 days ago1530206558IN
0x2C8d4C15...a13B83a64
0.035 ETH0.000219282.25
Transfer58643992018-06-27 17:16:092430 days ago1530119769IN
0x2C8d4C15...a13B83a64
1 ETH0.000292383
Transfer58633092018-06-27 12:55:042430 days ago1530104104IN
0x2C8d4C15...a13B83a64
0.26704696 ETH0.0033808641
Transfer58632672018-06-27 12:42:392430 days ago1530103359IN
0x2C8d4C15...a13B83a64
0.027 ETH0.0039958641
Transfer58579822018-06-26 14:43:082431 days ago1530024188IN
0x2C8d4C15...a13B83a64
0.1 ETH0.0039958641
Transfer58519912018-06-25 13:28:422432 days ago1529933322IN
0x2C8d4C15...a13B83a64
0.24130029 ETH0.0010720611
Transfer58515722018-06-25 11:45:192432 days ago1529927119IN
0x2C8d4C15...a13B83a64
0.2996828 ETH0.001949220
Transfer58334592018-06-22 9:22:572435 days ago1529659377IN
0x2C8d4C15...a13B83a64
0.37643282 ETH0.000292383
Transfer58332862018-06-22 8:39:362435 days ago1529656776IN
0x2C8d4C15...a13B83a64
0.34978614 ETH0.00048735
Transfer58291312018-06-21 15:25:222436 days ago1529594722IN
0x2C8d4C15...a13B83a64
0.5 ETH0.000877149
Transfer58242632018-06-20 19:40:212437 days ago1529523621IN
0x2C8d4C15...a13B83a64
0.55 ETH0.001649220
Transfer58056732018-06-17 15:38:412440 days ago1529249921IN
0x2C8d4C15...a13B83a64
0.11000661 ETH0.000194922
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
58751962018-06-29 14:07:222428 days ago1530281242
0x2C8d4C15...a13B83a64
0.36793635 ETH
58748872018-06-29 12:48:062428 days ago1530276486
0x2C8d4C15...a13B83a64
0.40548416 ETH
58737232018-06-29 7:49:512428 days ago1530258591
0x2C8d4C15...a13B83a64
0.5 ETH
58702262018-06-28 17:22:382429 days ago1530206558
0x2C8d4C15...a13B83a64
0.035 ETH
58643992018-06-27 17:16:092430 days ago1530119769
0x2C8d4C15...a13B83a64
1 ETH
58633092018-06-27 12:55:042430 days ago1530104104
0x2C8d4C15...a13B83a64
0.26704696 ETH
58632672018-06-27 12:42:392430 days ago1530103359
0x2C8d4C15...a13B83a64
0.027 ETH
58579822018-06-26 14:43:082431 days ago1530024188
0x2C8d4C15...a13B83a64
0.1 ETH
58519912018-06-25 13:28:422432 days ago1529933322
0x2C8d4C15...a13B83a64
0.24130029 ETH
58515722018-06-25 11:45:192432 days ago1529927119
0x2C8d4C15...a13B83a64
0.2996828 ETH
58334592018-06-22 9:22:572435 days ago1529659377
0x2C8d4C15...a13B83a64
0.37643282 ETH
58332862018-06-22 8:39:362435 days ago1529656776
0x2C8d4C15...a13B83a64
0.34978614 ETH
58291312018-06-21 15:25:222436 days ago1529594722
0x2C8d4C15...a13B83a64
0.5 ETH
58242632018-06-20 19:40:212437 days ago1529523621
0x2C8d4C15...a13B83a64
0.55 ETH
58056732018-06-17 15:38:412440 days ago1529249921
0x2C8d4C15...a13B83a64
0.11000661 ETH
57938142018-06-15 15:02:422442 days ago1529074962
0x2C8d4C15...a13B83a64
0.213 ETH
57896372018-06-14 21:42:022443 days ago1529012522
0x2C8d4C15...a13B83a64
0.25 ETH
57886212018-06-14 17:33:452443 days ago1528997625
0x2C8d4C15...a13B83a64
1 ETH
57878212018-06-14 14:17:362443 days ago1528985856
0x2C8d4C15...a13B83a64
0.25 ETH
57864682018-06-14 8:34:362443 days ago1528965276
0x2C8d4C15...a13B83a64
0.5 ETH
57839022018-06-13 21:55:072444 days ago1528926907
0x2C8d4C15...a13B83a64
0.11 ETH
57825352018-06-13 16:24:112444 days ago1528907051
0x2C8d4C15...a13B83a64
0.02400414 ETH
57754382018-06-12 10:27:542445 days ago1528799274
0x2C8d4C15...a13B83a64
0.159958 ETH
57721472018-06-11 20:33:142446 days ago1528749194
0x2C8d4C15...a13B83a64
1 ETH
57720382018-06-11 20:05:302446 days ago1528747530
0x2C8d4C15...a13B83a64
1 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RC

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-05-17
*/

pragma solidity ^0.4.23;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
     return a / b;
  }

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

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


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
	address public owner;
	address public newOwner;

	event OwnershipTransferred(address indexed oldOwner, address indexed newOwner);

	constructor() public {
		owner = msg.sender;
		newOwner = address(0);
	}

	modifier onlyOwner() {
		require(msg.sender == owner, "msg.sender == owner");
		_;
	}

	function transferOwnership(address _newOwner) public onlyOwner {
		require(address(0) != _newOwner, "address(0) != _newOwner");
		newOwner = _newOwner;
	}

	function acceptOwnership() public {
		require(msg.sender == newOwner, "msg.sender == newOwner");
		emit OwnershipTransferred(owner, msg.sender);
		owner = msg.sender;
		newOwner = address(0);
	}
}

contract tokenInterface {
	function balanceOf(address _owner) public constant returns (uint256 balance);
	function transfer(address _to, uint256 _value) public returns (bool);
	function burn(uint256 _value) public returns(bool);
	uint256 public totalSupply;
	uint256 public decimals;
}

contract rateInterface {
    function readRate(string _currency) public view returns (uint256 oneEtherValue);
}

contract RC {
    using SafeMath for uint256;
    DaicoCoinCrowd tokenSaleContract;
    uint256 public startTime;
    uint256 public endTime;
    
    uint256 public etherMinimum;
    uint256 public soldTokens;
    uint256 public remainingTokens;
    
    uint256 public oneTokenInFiatWei;

    constructor(address _tokenSaleContract, uint256 _oneTokenInFiatWei, uint256 _remainingTokens, uint256 _etherMinimum, uint256 _startTime , uint256 _endTime) public {
        require ( _tokenSaleContract != 0, "Token Sale Contract can not be 0" );
        require ( _oneTokenInFiatWei != 0, "Token price can no be 0" );
        require( _remainingTokens != 0, "Remaining tokens can no be 0");
       
        
        
        tokenSaleContract = DaicoCoinCrowd(_tokenSaleContract);
        
        soldTokens = 0;
        remainingTokens = _remainingTokens;
        oneTokenInFiatWei = _oneTokenInFiatWei;
        etherMinimum = _etherMinimum;
        
        setTimeRC( _startTime, _endTime );
    }
    
    function setTimeRC(uint256 _startTime, uint256 _endTime ) internal {
        if( _startTime == 0 ) {
            startTime = tokenSaleContract.startTime();
        } else {
            startTime = _startTime;
        }
        if( _endTime == 0 ) {
            endTime = tokenSaleContract.endTime();
        } else {
            endTime = _endTime;
        }
    }
    
    modifier onlyTokenSaleOwner() {
        require(msg.sender == tokenSaleContract.owner(), "msg.sender == tokenSaleContract.owner()" );
        _;
    }
    
    function setTime(uint256 _newStart, uint256 _newEnd) public onlyTokenSaleOwner {
        if ( _newStart != 0 ) startTime = _newStart;
        if ( _newEnd != 0 ) endTime = _newEnd;
    }
    
    function changeMinimum(uint256 _newEtherMinimum) public onlyTokenSaleOwner {
        etherMinimum = _newEtherMinimum;
    }
    
    function started() public view returns(bool) {
        return now > startTime || remainingTokens == 0;
    }
    
    function ended() public view returns(bool) {
        return now > endTime || remainingTokens == 0;
    }
    
    function startTime() public view returns(uint) {
        return startTime;
    }
    
    function endTime() public view returns(uint) {
        return endTime;
    }
    
    function totalTokens() public view returns(uint) {
        return remainingTokens.add(soldTokens);
    }
    
    function remainingTokens() public view returns(uint) {
        return remainingTokens;
    }
    
    function price() public view returns(uint) {
        uint256 oneEther = 1 ether;
        return oneEther.mul(10**18).div( tokenSaleContract.tokenValueInEther(oneTokenInFiatWei) );
    }
    
    event BuyRC(address indexed buyer, bytes trackID, uint256 value, uint256 soldToken, uint256 valueTokenInUsdWei );
	
    function () public payable {
        require( now > startTime, "now > startTime" );
        require( now < endTime, "now < endTime" );
        require( msg.value >= etherMinimum, "msg.value >= etherMinimum"); 
        require( remainingTokens > 0, "remainingTokens > 0" );
        
        uint256 tokenAmount = tokenSaleContract.buyFromRC.value(msg.value)(msg.sender, oneTokenInFiatWei, remainingTokens);
        
        remainingTokens = remainingTokens.sub(tokenAmount);
        soldTokens = soldTokens.add(tokenAmount);
        
        emit BuyRC( msg.sender, msg.data, msg.value, tokenAmount, oneTokenInFiatWei );
    }
}

contract DaicoCoinCrowd is Ownable {
    using SafeMath for uint256;
    tokenInterface public tokenContract;
    rateInterface public rateContract;
    
    address public wallet;
    
	uint256 public decimals;
    
    uint256 public endTime;  // seconds from 1970-01-01T00:00:00Z
    uint256 public startTime;  // seconds from 1970-01-01T00:00:00Z
    
    uint256 public oneTokenInEur;

    mapping(address => bool) public rc;

    constructor(address _tokenAddress, address _rateAddress, uint256 _startTime, uint256 _endTime, uint256[] _time, uint256[] _funds, uint256 _oneTokenInEur, uint256 _activeSupply) public {
        tokenContract = tokenInterface(_tokenAddress);
        rateContract = rateInterface(_rateAddress);
        setTime(_startTime, _endTime); 
        decimals = tokenContract.decimals();
        oneTokenInEur = _oneTokenInEur;
        wallet = new MilestoneSystem(_tokenAddress, _time, _funds, _oneTokenInEur, _activeSupply);
    }
    
    function tokenValueInEther(uint256 _oneTokenInFiatWei) public view returns(uint256 tknValue) {
        uint256 oneEtherPrice = rateContract.readRate("eur");
        tknValue = _oneTokenInFiatWei.mul(10 ** uint256(decimals)).div(oneEtherPrice);
        return tknValue;
    } 
    
    modifier isBuyable() {
        require( wallet != address(0), "wallet != address(0)" );
        require( now > startTime, "now > startTime" ); // check if started
        require( now < endTime, "now < endTime"); // check if ended
        require( msg.value > 0, "msg.value > 0" );
		
		uint256 remainingTokens = tokenContract.balanceOf(this);
        require( remainingTokens > 0, "remainingTokens > 0" ); // Check if there are any remaining tokens 
        _;
    }
    
    event Buy(address buyer, uint256 value, address indexed ambassador);
    
    modifier onlyRC() {
        require( rc[msg.sender], "rc[msg.sender]" ); //check if is an authorized rcContract
        _;
    }
    
    function buyFromRC(address _buyer, uint256 _rcTokenValue, uint256 _remainingTokens) onlyRC isBuyable public payable returns(uint256) {
        uint256 oneToken = 10 ** uint256(decimals);
        uint256 tokenValue = tokenValueInEther(_rcTokenValue);
        uint256 tokenAmount = msg.value.mul(oneToken).div(tokenValue);
        address _ambassador = msg.sender;
        
        uint256 remainingTokens = tokenContract.balanceOf(this);
        if ( _remainingTokens < remainingTokens ) {
            remainingTokens = _remainingTokens;
        }
        
        if ( remainingTokens < tokenAmount ) {
            uint256 refund = tokenAmount.sub(remainingTokens).mul(tokenValue).div(oneToken);
            tokenAmount = remainingTokens;
            forward(msg.value.sub(refund));
			remainingTokens = 0; // set remaining token to 0
             _buyer.transfer(refund);
        } else {
			remainingTokens = remainingTokens.sub(tokenAmount); // update remaining token without bonus
            forward(msg.value);
        }
        
        tokenContract.transfer(_buyer, tokenAmount);
        emit Buy(_buyer, tokenAmount, _ambassador);
		
        return tokenAmount; 
    }
    
    function forward(uint256 _amount) internal {
        wallet.transfer(_amount);
    }

    event NewRC(address contr);
    
    function addRC(address _rc) onlyOwner public {
        rc[ _rc ]  = true;
        emit NewRC(_rc);
    }
    
    function setTime(uint256 _newStart, uint256 _newEnd) public onlyOwner {
        if ( _newStart != 0 ) startTime = _newStart;
        if ( _newEnd != 0 ) endTime = _newEnd;
    }
    
    function withdrawTokens(address to, uint256 value) public onlyOwner returns (bool) {
        return tokenContract.transfer(to, value);
    }
    
    function setTokenContract(address _tokenContract) public onlyOwner {
        tokenContract = tokenInterface(_tokenContract);
    }
    
    function setRateContract(address _rateAddress) public onlyOwner {
        rateContract = rateInterface(_rateAddress);
    }
	
	function claim(address _buyer, uint256 _amount) onlyRC public returns(bool) {
        return tokenContract.transfer(_buyer, _amount);
    }

    function () public payable {
        revert();
    }
}

contract MilestoneSystem {
    using SafeMath for uint256;
    tokenInterface public tokenContract;
    DaicoCoinCrowd public tokenSaleContract;
    
    uint256[] public time;
    uint256[] public funds;
    
    bool public locked = false; 
    uint256 public endTimeToReturnTokens; 
    
    uint8 public step = 0;
    
    uint256 public constant timeframeMilestone = 3 days; 
    uint256 public constant timeframeDeath = 30 days; 
    
    uint256 public activeSupply;
    
    uint256 public oneTokenInEur;
    
    mapping(address => mapping(uint8 => uint256) ) public balance;
    mapping(uint8 => uint256) public tokenDistrusted;
    
    constructor(address _tokenAddress, uint256[] _time, uint256[] _funds, uint256 _oneTokenInEur, uint256 _activeSupply) public {
        require( _time.length != 0, "_time.length != 0" );
        require( _time.length == _funds.length, "_time.length == _funds.length" );
        
        tokenContract = tokenInterface(_tokenAddress);
        tokenSaleContract = DaicoCoinCrowd(msg.sender);
        
        time = _time;
        funds = _funds;
        
        activeSupply = _activeSupply;
        oneTokenInEur = _oneTokenInEur;
    }
    
    modifier onlyTokenSaleOwner() {
        require(msg.sender == tokenSaleContract.owner(), "msg.sender == tokenSaleContract.owner()" );
        _;
    }
    
    event Distrust(address sender, uint256 amount);
    event Locked();
    
    function distrust(address _from, uint _value, bytes _data) public {
        require(msg.sender == address(tokenContract), "msg.sender == address(tokenContract)");
        
        if ( !locked ) {
            
            uint256 startTimeMilestone = time[step].sub(timeframeMilestone);
            uint256 endTimeMilestone = time[step];
            uint256 startTimeProjectDeath = time[step].add(timeframeDeath);
            bool unclaimedFunds = funds[step] > 0;
            
            require( 
                ( now > startTimeMilestone && now < endTimeMilestone ) || 
                ( now > startTimeProjectDeath && unclaimedFunds ), 
                "( now > startTimeMilestone && now < endTimeMilestone ) || ( now > startTimeProjectDeath && unclaimedFunds )" 
            );
        } else {
            require( locked && now < endTimeToReturnTokens ); //a timeframePost to deposit all tokens and then claim the refundMe method
        }
        
        balance[_from][step] = balance[_from][step].add(_value);
        tokenDistrusted[step] = tokenDistrusted[step].add(_value);
        
        emit Distrust(msg.sender, _value);
        
        if( tokenDistrusted[step] > activeSupply && !locked ) {
            locked = true;
            endTimeToReturnTokens = now.add(timeframeDeath);
            emit Locked();
        }
    }
    
    function tokenFallback(address _from, uint _value, bytes _data) public {
        distrust( _from, _value, _data);
    }
	
	function receiveApproval( address _from, uint _value, bytes _data) public {
	    require(msg.sender == address(tokenContract), "msg.sender == address(tokenContract)");
		require(msg.sender.call(bytes4(keccak256("transferFrom(address,address,uint256)")), _from, this, _value));
        distrust( _from, _value, _data);
    }
    
    event Trust(address sender, uint256 amount);
    event Unlocked();
    
    function trust(uint8 _step) public {
        require( balance[msg.sender][_step] > 0 , "balance[msg.sender] > 0");
        
        uint256 amount = balance[msg.sender][_step];
        balance[msg.sender][_step] = 0;
        
        tokenDistrusted[_step] = tokenDistrusted[_step].sub(amount);
        tokenContract.transfer(msg.sender, amount);
        
        emit Trust(msg.sender, amount);
        
        if( tokenDistrusted[step] <= activeSupply && locked ) {
            locked = false;
            endTimeToReturnTokens = 0;
            emit Unlocked();
        }
    }
    
    event Refund(address sender, uint256 money);
    
    function refundMe() public {
        require(locked, "locked");
        require( now > endTimeToReturnTokens, "now > endTimeToReturnTokens" );
        
        uint256 ethTot = address(this).balance;
        require( ethTot > 0 , "ethTot > 0");
        
        uint256 tknAmount = balance[msg.sender][step];
        require( tknAmount > 0 , "tknAmount > 0");
        
        balance[msg.sender][step] = 0;
        
        tokenContract.burn(tknAmount);
        
        uint256 tknTot = tokenDistrusted[step];
        uint256 rate = tknAmount.mul(1 ether).div(tknTot);
        uint256 money = ethTot.mul(rate).div(1 ether);
        
        uint256 moneyMax = tknAmount.mul( tokenSaleContract.tokenValueInEther( oneTokenInEur )).div(1 ether) ;
        
        if ( money > moneyMax) { //This protects the project from the overvaluation of ether
            money = moneyMax;
        }
        
        if( money > address(this).balance ) {
		    money = address(this).balance;
		}
        msg.sender.transfer(money);
        
        emit Refund(msg.sender, money);
    }
    
    function OwnerWithdraw() public onlyTokenSaleOwner {
        require(!locked, "!locked");
        
        require(now > time[step], "now > time[step]");
        require(funds[step] > 0, "funds[step] > 0");
        
        uint256 amountApplied = funds[step];
        funds[step] = 0;
		step = step+1;
		
		uint256 value;
		if( amountApplied > address(this).balance || time.length == step+1)
		    value = address(this).balance;
		else {
		    value = amountApplied;
		}
		
        msg.sender.transfer(value);
    }
    
    function OwnerWithdrawTokens(address _tokenContract, address to, uint256 value) public onlyTokenSaleOwner returns (bool) { //for airdrop reason to distribute to CoinCrowd Token Holder
        require( _tokenContract != address(tokenContract), "_tokenContract != address(tokenContract)"); // the owner can withdraw tokens except CoinCrowd Tokens
        return tokenInterface(_tokenContract).transfer(to, value);
    }
    
    function () public payable {
        require(msg.sender == address(tokenSaleContract), "msg.sender == address(tokenSaleContract)");
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"oneTokenInFiatWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ended","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"started","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newEtherMinimum","type":"uint256"}],"name":"changeMinimum","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherMinimum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newStart","type":"uint256"},{"name":"_newEnd","type":"uint256"}],"name":"setTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"remainingTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenSaleContract","type":"address"},{"name":"_oneTokenInFiatWei","type":"uint256"},{"name":"_remainingTokens","type":"uint256"},{"name":"_etherMinimum","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"trackID","type":"bytes"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"soldToken","type":"uint256"},{"indexed":false,"name":"valueTokenInUsdWei","type":"uint256"}],"name":"BuyRC","type":"event"}]

608060405234801561001057600080fd5b5060405160c080610bc283398101604090815281516020830151918301516060840151608085015160a09095015192949192909190600160a060020a03861615156100bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f546f6b656e2053616c6520436f6e74726163742063616e206e6f742062652030604482015290519081900360640190fd5b84151561012a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f546f6b656e2070726963652063616e206e6f2062652030000000000000000000604482015290519081900360640190fd5b83151561019857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f52656d61696e696e6720746f6b656e732063616e206e6f206265203000000000604482015290519081900360640190fd5b60008054600160a060020a031916600160a060020a0388161781556004556005849055600685905560038390556101d882826401000000006101e3810204565b50505050505061033f565b811515610289576000809054906101000a9004600160a060020a0316600160a060020a03166378e979256040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561025557600080fd5b505af1158015610269573d6000803e3d6000fd5b505050506040513d602081101561027f57600080fd5b505160015561028f565b60018290555b801515610335576000809054906101000a9004600160a060020a0316600160a060020a0316633197cbb66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561030157600080fd5b505af1158015610315573d6000803e3d6000fd5b505050506040513d602081101561032b57600080fd5b505160025561033b565b60028190555b5050565b6108748061034e6000396000f3006080604052600436106100a05763ffffffff60e060020a60003504166312ade015811461035b57806312fa6feb146103825780631f2698ab146103ab5780632a513dd9146103c05780633197cbb6146103da5780635ed9ebfc146103ef578063675cef141461040457806378e97925146104195780637e1c0c091461042e578063a0355eca14610443578063a035b1fe1461045e578063bf58390314610473575b60015460009042116100fc576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f77203e20737461727454696d650000000000000000000000000000000000604482015290519081900360640190fd5b6002544210610155576040805160e560020a62461bcd02815260206004820152600d60248201527f6e6f77203c20656e6454696d6500000000000000000000000000000000000000604482015290519081900360640190fd5b6003543410156101af576040805160e560020a62461bcd02815260206004820152601960248201527f6d73672e76616c7565203e3d2065746865724d696e696d756d00000000000000604482015290519081900360640190fd5b600554600010610209576040805160e560020a62461bcd02815260206004820152601360248201527f72656d61696e696e67546f6b656e73203e203000000000000000000000000000604482015290519081900360640190fd5b600054600654600554604080517f4769ed8f0000000000000000000000000000000000000000000000000000000081523360048201526024810193909352604483019190915251600160a060020a0390921691634769ed8f913491606480830192602092919082900301818588803b15801561028457600080fd5b505af1158015610298573d6000803e3d6000fd5b50505050506040513d60208110156102af57600080fd5b50516005549091506102c7908263ffffffff61048816565b6005556004546102dd908263ffffffff61049f16565b60048190555033600160a060020a03167f99d83b77a8a0fbdd924ad497f587bec4b963b71e8925e31a2baed1fbce2a165260003634856006546040518080602001858152602001848152602001838152602001828103825287878281815260200192508082843760405192018290039850909650505050505050a250005b34801561036757600080fd5b506103706104ac565b60408051918252519081900360200190f35b34801561038e57600080fd5b506103976104b2565b604080519115158252519081900360200190f35b3480156103b757600080fd5b506103976104c9565b3480156103cc57600080fd5b506103d86004356104de565b005b3480156103e657600080fd5b506103706105e6565b3480156103fb57600080fd5b506103706105ec565b34801561041057600080fd5b506103706105f2565b34801561042557600080fd5b506103706105f8565b34801561043a57600080fd5b506103706105fe565b34801561044f57600080fd5b506103d8600435602435610617565b34801561046a57600080fd5b50610370610736565b34801561047f57600080fd5b50610370610804565b60008282111561049457fe5b508082035b92915050565b8181018281101561049957fe5b60065481565b60006002544211806104c45750600554155b905090565b60006001544211806104c45750506005541590565b6000809054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506040513d602081101561055a57600080fd5b5051600160a060020a031633146105e1576040805160e560020a62461bcd02815260206004820152602760248201527f6d73672e73656e646572203d3d20746f6b656e53616c65436f6e74726163742e60448201527f6f776e6572282900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600355565b60025490565b60045481565b60035481565b60015490565b60006104c460045460055461049f90919063ffffffff16565b6000809054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561066957600080fd5b505af115801561067d573d6000803e3d6000fd5b505050506040513d602081101561069357600080fd5b5051600160a060020a0316331461071a576040805160e560020a62461bcd02815260206004820152602760248201527f6d73672e73656e646572203d3d20746f6b656e53616c65436f6e74726163742e60448201527f6f776e6572282900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b81156107265760018290555b80156107325760028190555b5050565b60008054600654604080517f7b413985000000000000000000000000000000000000000000000000000000008152600481019290925251670de0b6b3a7640000926107fe92600160a060020a0390911691637b4139859160248082019260209290919082900301818987803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b505050506040513d60208110156107d857600080fd5b50516107f283670de0b6b3a764000063ffffffff61080a16565b9063ffffffff61083316565b91505090565b60055490565b600082151561081b57506000610499565b5081810281838281151561082b57fe5b041461049957fe5b6000818381151561084057fe5b0493925050505600a165627a7a72305820c6da7fefbf2996fdb547b09edb091b1457d5fc68b4fa9b9f27455ad9455e70ce0029000000000000000000000000ca6a39b0f21ed02bfce35daaf588f4b677e5e35b0000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000009c56aa7867b1a4d380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100a05763ffffffff60e060020a60003504166312ade015811461035b57806312fa6feb146103825780631f2698ab146103ab5780632a513dd9146103c05780633197cbb6146103da5780635ed9ebfc146103ef578063675cef141461040457806378e97925146104195780637e1c0c091461042e578063a0355eca14610443578063a035b1fe1461045e578063bf58390314610473575b60015460009042116100fc576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f77203e20737461727454696d650000000000000000000000000000000000604482015290519081900360640190fd5b6002544210610155576040805160e560020a62461bcd02815260206004820152600d60248201527f6e6f77203c20656e6454696d6500000000000000000000000000000000000000604482015290519081900360640190fd5b6003543410156101af576040805160e560020a62461bcd02815260206004820152601960248201527f6d73672e76616c7565203e3d2065746865724d696e696d756d00000000000000604482015290519081900360640190fd5b600554600010610209576040805160e560020a62461bcd02815260206004820152601360248201527f72656d61696e696e67546f6b656e73203e203000000000000000000000000000604482015290519081900360640190fd5b600054600654600554604080517f4769ed8f0000000000000000000000000000000000000000000000000000000081523360048201526024810193909352604483019190915251600160a060020a0390921691634769ed8f913491606480830192602092919082900301818588803b15801561028457600080fd5b505af1158015610298573d6000803e3d6000fd5b50505050506040513d60208110156102af57600080fd5b50516005549091506102c7908263ffffffff61048816565b6005556004546102dd908263ffffffff61049f16565b60048190555033600160a060020a03167f99d83b77a8a0fbdd924ad497f587bec4b963b71e8925e31a2baed1fbce2a165260003634856006546040518080602001858152602001848152602001838152602001828103825287878281815260200192508082843760405192018290039850909650505050505050a250005b34801561036757600080fd5b506103706104ac565b60408051918252519081900360200190f35b34801561038e57600080fd5b506103976104b2565b604080519115158252519081900360200190f35b3480156103b757600080fd5b506103976104c9565b3480156103cc57600080fd5b506103d86004356104de565b005b3480156103e657600080fd5b506103706105e6565b3480156103fb57600080fd5b506103706105ec565b34801561041057600080fd5b506103706105f2565b34801561042557600080fd5b506103706105f8565b34801561043a57600080fd5b506103706105fe565b34801561044f57600080fd5b506103d8600435602435610617565b34801561046a57600080fd5b50610370610736565b34801561047f57600080fd5b50610370610804565b60008282111561049457fe5b508082035b92915050565b8181018281101561049957fe5b60065481565b60006002544211806104c45750600554155b905090565b60006001544211806104c45750506005541590565b6000809054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506040513d602081101561055a57600080fd5b5051600160a060020a031633146105e1576040805160e560020a62461bcd02815260206004820152602760248201527f6d73672e73656e646572203d3d20746f6b656e53616c65436f6e74726163742e60448201527f6f776e6572282900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600355565b60025490565b60045481565b60035481565b60015490565b60006104c460045460055461049f90919063ffffffff16565b6000809054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561066957600080fd5b505af115801561067d573d6000803e3d6000fd5b505050506040513d602081101561069357600080fd5b5051600160a060020a0316331461071a576040805160e560020a62461bcd02815260206004820152602760248201527f6d73672e73656e646572203d3d20746f6b656e53616c65436f6e74726163742e60448201527f6f776e6572282900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b81156107265760018290555b80156107325760028190555b5050565b60008054600654604080517f7b413985000000000000000000000000000000000000000000000000000000008152600481019290925251670de0b6b3a7640000926107fe92600160a060020a0390911691637b4139859160248082019260209290919082900301818987803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b505050506040513d60208110156107d857600080fd5b50516107f283670de0b6b3a764000063ffffffff61080a16565b9063ffffffff61083316565b91505090565b60055490565b600082151561081b57506000610499565b5081810281838281151561082b57fe5b041461049957fe5b6000818381151561084057fe5b0493925050505600a165627a7a72305820c6da7fefbf2996fdb547b09edb091b1457d5fc68b4fa9b9f27455ad9455e70ce0029

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

000000000000000000000000ca6a39b0f21ed02bfce35daaf588f4b677e5e35b0000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000009c56aa7867b1a4d380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenSaleContract (address): 0xca6A39B0F21Ed02bfCE35daAf588f4b677e5E35b
Arg [1] : _oneTokenInFiatWei (uint256): 320000000000000000
Arg [2] : _remainingTokens (uint256): 11812606000000000000000000
Arg [3] : _etherMinimum (uint256): 0
Arg [4] : _startTime (uint256): 0
Arg [5] : _endTime (uint256): 0

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000ca6a39b0f21ed02bfce35daaf588f4b677e5e35b
Arg [1] : 0000000000000000000000000000000000000000000000000470de4df8200000
Arg [2] : 00000000000000000000000000000000000000000009c56aa7867b1a4d380000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://c6da7fefbf2996fdb547b09edb091b1457d5fc68b4fa9b9f27455ad9455e70ce

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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