Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Sponsored
Latest 25 from a total of 143 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 5874941 | 1786 days 10 hrs ago | IN | 0 ETH | 0.00018003 | ||||
| Transfer | 5652770 | 1825 days 6 hrs ago | IN | 0 ETH | 0.00054009 | ||||
| Transfer | 5568714 | 1840 days 24 mins ago | IN | 0 ETH | 0.00004332 | ||||
| Transfer | 5567465 | 1840 days 5 hrs ago | IN | 0 ETH | 0.00002166 | ||||
| Transfer | 5565371 | 1840 days 14 hrs ago | IN | 0 ETH | 0.00007208 | ||||
| Transfer | 5560692 | 1841 days 9 hrs ago | IN | 0 ETH | 0.00004332 | ||||
| Transfer | 5559422 | 1841 days 15 hrs ago | IN | 0 ETH | 0.00008936 | ||||
| Transfer | 5558297 | 1841 days 19 hrs ago | IN | 0 ETH | 0.00021664 | ||||
| Transfer | 5544446 | 1844 days 6 hrs ago | IN | 0 ETH | 0.00082259 | ||||
| Transfer | 5544394 | 1844 days 6 hrs ago | IN | 0 ETH | 0.00017331 | ||||
| Transfer | 5543332 | 1844 days 11 hrs ago | IN | 0 ETH | 0.00036765 | ||||
| Transfer | 5533602 | 1846 days 4 hrs ago | IN | 0 ETH | 0.00017331 | ||||
| Transfer | 5533583 | 1846 days 4 hrs ago | IN | 0 ETH | 0.00010832 | ||||
| Transfer | 5530375 | 1846 days 17 hrs ago | IN | 0 ETH | 0.00002166 | ||||
| Transfer | 5529530 | 1846 days 21 hrs ago | IN | 0 ETH | 0.00017331 | ||||
| Transfer | 5529524 | 1846 days 21 hrs ago | IN | 0 ETH | 0.00010832 | ||||
| Transfer | 5526926 | 1847 days 8 hrs ago | IN | 0 ETH | 0.00043328 | ||||
| Transfer | 5525779 | 1847 days 13 hrs ago | IN | 0 ETH | 0.00036006 | ||||
| Transfer | 5522705 | 1848 days 1 hr ago | IN | 0 ETH | 0.00004332 | ||||
| Transfer | 5511303 | 1850 days 1 hr ago | IN | 0 ETH | 0.00004332 | ||||
| Transfer | 5493409 | 1853 days 3 hrs ago | IN | 0 ETH | 0.00088822 | ||||
| Transfer | 5415702 | 1866 days 9 hrs ago | IN | 0 ETH | 0.00008641 | ||||
| Transfer | 5414806 | 1866 days 12 hrs ago | IN | 0 ETH | 0.00045494 | ||||
| Transfer | 5411440 | 1867 days 1 hr ago | IN | 0 ETH | 0.00115219 | ||||
| Transfer | 5409851 | 1867 days 7 hrs ago | IN | 0 ETH | 0.00006499 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Txn Hash | Block | From | To | Value | ||
|---|---|---|---|---|---|---|
| 5349664 | 1877 days 7 hrs ago | 2.79 ETH | ||||
| 5349256 | 1877 days 9 hrs ago | 1.3 ETH | ||||
| 5347525 | 1877 days 16 hrs ago | 1.9 ETH | ||||
| 5345259 | 1878 days 1 hr ago | 2.19 ETH | ||||
| 5345234 | 1878 days 1 hr ago | 2.27 ETH | ||||
| 5345110 | 1878 days 2 hrs ago | 2.5 ETH | ||||
| 5344865 | 1878 days 3 hrs ago | 1.8 ETH | ||||
| 5344587 | 1878 days 4 hrs ago | 0.42 ETH | ||||
| 5344116 | 1878 days 5 hrs ago | 3.24 ETH | ||||
| 5343762 | 1878 days 7 hrs ago | 1.25 ETH | ||||
| 5343104 | 1878 days 10 hrs ago | 0.25 ETH | ||||
| 5342859 | 1878 days 11 hrs ago | 0.2 ETH | ||||
| 5303273 | 1885 days 2 hrs ago | 0.5 ETH | ||||
| 5303176 | 1885 days 2 hrs ago | 1.34 ETH | ||||
| 5302199 | 1885 days 6 hrs ago | 1.8 ETH | ||||
| 5301930 | 1885 days 7 hrs ago | 0.21 ETH | ||||
| 5301872 | 1885 days 7 hrs ago | 3.3353 ETH | ||||
| 5301797 | 1885 days 8 hrs ago | 2.199 ETH | ||||
| 5301351 | 1885 days 9 hrs ago | 6 ETH | ||||
| 5301198 | 1885 days 10 hrs ago | 0.1 ETH | ||||
| 5301140 | 1885 days 10 hrs ago | 0.45 ETH | ||||
| 5301097 | 1885 days 10 hrs ago | 1 ETH | ||||
| 5300959 | 1885 days 11 hrs ago | 1.5 ETH | ||||
| 5300845 | 1885 days 11 hrs ago | 1 ETH | ||||
| 5300690 | 1885 days 12 hrs ago | 3.9 ETH |
Loading...
Loading
Contract Name:
RC
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-03-14
*/
pragma solidity ^0.4.19;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure 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) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() internal {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) onlyOwner public {
require(newOwner != address(0));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract tokenInterface {
function balanceOf(address _owner) public constant returns (uint256 balance);
function transfer(address _to, uint256 _value) public returns (bool);
}
contract rateInterface {
function readRate(string _currency) public view returns (uint256 oneEtherValue);
}
contract ICOEngineInterface {
// false if the ico is not started, true if the ico is started and running, true if the ico is completed
function started() public view returns(bool);
// false if the ico is not started, false if the ico is started and running, true if the ico is completed
function ended() public view returns(bool);
// time stamp of the starting time of the ico, must return 0 if it depends on the block number
function startTime() public view returns(uint);
// time stamp of the ending time of the ico, must retrun 0 if it depends on the block number
function endTime() public view returns(uint);
// Optional function, can be implemented in place of startTime
// Returns the starting block number of the ico, must return 0 if it depends on the time stamp
// function startBlock() public view returns(uint);
// Optional function, can be implemented in place of endTime
// Returns theending block number of the ico, must retrun 0 if it depends on the time stamp
// function endBlock() public view returns(uint);
// returns the total number of the tokens available for the sale, must not change when the ico is started
function totalTokens() public view returns(uint);
// returns the number of the tokens available for the ico. At the moment that the ico starts it must be equal to totalTokens(),
// then it will decrease. It is used to calculate the percentage of sold tokens as remainingTokens() / totalTokens()
function remainingTokens() public view returns(uint);
// return the price as number of tokens released for each ether
function price() public view returns(uint);
}
contract KYCBase {
using SafeMath for uint256;
mapping (address => bool) public isKycSigner;
mapping (uint64 => uint256) public alreadyPayed;
event KycVerified(address indexed signer, address buyerAddress, uint64 buyerId, uint maxAmount);
function KYCBase(address [] kycSigners) internal {
for (uint i = 0; i < kycSigners.length; i++) {
isKycSigner[kycSigners[i]] = true;
}
}
// Must be implemented in descending contract to assign tokens to the buyers. Called after the KYC verification is passed
function releaseTokensTo(address buyer) internal returns(bool);
// This method can be overridden to enable some sender to buy token for a different address
function senderAllowedFor(address buyer)
internal view returns(bool)
{
return buyer == msg.sender;
}
function buyTokensFor(address buyerAddress, uint64 buyerId, uint maxAmount, uint8 v, bytes32 r, bytes32 s)
public payable returns (bool)
{
require(senderAllowedFor(buyerAddress));
return buyImplementation(buyerAddress, buyerId, maxAmount, v, r, s);
}
function buyTokens(uint64 buyerId, uint maxAmount, uint8 v, bytes32 r, bytes32 s)
public payable returns (bool)
{
return buyImplementation(msg.sender, buyerId, maxAmount, v, r, s);
}
function buyImplementation(address buyerAddress, uint64 buyerId, uint maxAmount, uint8 v, bytes32 r, bytes32 s)
private returns (bool)
{
// check the signature
bytes32 hash = sha256("Eidoo icoengine authorization", this, buyerAddress, buyerId, maxAmount);
address signer = ecrecover(hash, v, r, s);
if (!isKycSigner[signer]) {
revert();
} else {
uint256 totalPayed = alreadyPayed[buyerId].add(msg.value);
require(totalPayed <= maxAmount);
alreadyPayed[buyerId] = totalPayed;
emit KycVerified(signer, buyerAddress, buyerId, maxAmount);
return releaseTokensTo(buyerAddress);
}
}
}
contract RC is ICOEngineInterface, KYCBase {
using SafeMath for uint256;
TokenSale tokenSaleContract;
uint256 public startTime;
uint256 public endTime;
uint256 public soldTokens;
uint256 public remainingTokens;
uint256 public oneTokenInUsdWei;
mapping(address => uint256) public balanceUser; // address => token amount
uint256[] public tokenThreshold; // array of token threshold reached in wei of token
uint256[] public bonusThreshold; // array of bonus of each tokenThreshold reached - 20% = 20
function RC(address _tokenSaleContract, uint256 _oneTokenInUsdWei, uint256 _remainingTokens, uint256 _startTime , uint256 _endTime, address [] kycSigner, uint256[] _tokenThreshold, uint256[] _bonusThreshold ) public KYCBase(kycSigner) {
require ( _tokenSaleContract != 0 );
require ( _oneTokenInUsdWei != 0 );
require( _remainingTokens != 0 );
require ( _tokenThreshold.length != 0 );
require ( _tokenThreshold.length == _bonusThreshold.length );
bonusThreshold = _bonusThreshold;
tokenThreshold = _tokenThreshold;
tokenSaleContract = TokenSale(_tokenSaleContract);
tokenSaleContract.addMeByRC();
soldTokens = 0;
remainingTokens = _remainingTokens;
oneTokenInUsdWei = _oneTokenInUsdWei;
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() );
_;
}
function setTime(uint256 _newStart, uint256 _newEnd) public onlyTokenSaleOwner {
if ( _newStart != 0 ) startTime = _newStart;
if ( _newEnd != 0 ) endTime = _newEnd;
}
event BuyRC(address indexed buyer, bytes trackID, uint256 value, uint256 soldToken, uint256 valueTokenInUsdWei );
function releaseTokensTo(address buyer) internal returns(bool) {
require( now > startTime );
require( now < endTime );
//require( msg.value >= 1*10**18); //1 Ether
require( remainingTokens > 0 );
uint256 tokenAmount = tokenSaleContract.buyFromRC.value(msg.value)(buyer, oneTokenInUsdWei, remainingTokens);
balanceUser[msg.sender] = balanceUser[msg.sender].add(tokenAmount);
remainingTokens = remainingTokens.sub(tokenAmount);
soldTokens = soldTokens.add(tokenAmount);
emit BuyRC( msg.sender, msg.data, msg.value, tokenAmount, oneTokenInUsdWei );
return true;
}
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 = 10**18;
return oneEther.mul(10**18).div( tokenSaleContract.tokenValueInEther(oneTokenInUsdWei) );
}
function () public {
require( now > endTime );
require( balanceUser[msg.sender] > 0 );
uint256 bonusApplied = 0;
for (uint i = 0; i < tokenThreshold.length; i++) {
if ( soldTokens > tokenThreshold[i] ) {
bonusApplied = bonusThreshold[i];
}
}
require( bonusApplied > 0 );
uint256 addTokenAmount = balanceUser[msg.sender].mul( bonusApplied ).div(10**2);
balanceUser[msg.sender] = 0;
tokenSaleContract.claim(msg.sender, addTokenAmount);
}
}
contract TokenSale is Ownable {
using SafeMath for uint256;
tokenInterface public tokenContract;
rateInterface public rateContract;
address public wallet;
address public advisor;
uint256 public advisorFee; // 1 = 0,1%
uint256 public constant decimals = 18;
uint256 public endTime; // seconds from 1970-01-01T00:00:00Z
uint256 public startTime; // seconds from 1970-01-01T00:00:00Z
mapping(address => bool) public rc;
function TokenSale(address _tokenAddress, address _rateAddress, uint256 _startTime, uint256 _endTime) public {
tokenContract = tokenInterface(_tokenAddress);
rateContract = rateInterface(_rateAddress);
setTime(_startTime, _endTime);
wallet = msg.sender;
advisor = msg.sender;
advisorFee = 0 * 10**3;
}
function tokenValueInEther(uint256 _oneTokenInUsdWei) public view returns(uint256 tknValue) {
uint256 oneEtherInUsd = rateContract.readRate("usd");
tknValue = _oneTokenInUsdWei.mul(10 ** uint256(decimals)).div(oneEtherInUsd);
return tknValue;
}
modifier isBuyable() {
require( now > startTime ); // check if started
require( now < endTime ); // check if ended
require( msg.value > 0 );
uint256 remainingTokens = tokenContract.balanceOf(this);
require( remainingTokens > 0 ); // Check if there are any remaining tokens
_;
}
event Buy(address buyer, uint256 value, address indexed ambassador);
modifier onlyRC() {
require( 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 - remainingTokens).mul(tokenValue).div(oneToken);
tokenAmount = remainingTokens;
forward(msg.value-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 {
uint256 advisorAmount = _amount.mul(advisorFee).div(10**3);
uint256 walletAmount = _amount - advisorAmount;
advisor.transfer(advisorAmount);
wallet.transfer(walletAmount);
}
event NewRC(address contr);
function addMeByRC() public {
require(tx.origin == owner);
rc[ msg.sender ] = true;
emit NewRC(msg.sender);
}
function setTime(uint256 _newStart, uint256 _newEnd) public onlyOwner {
if ( _newStart != 0 ) startTime = _newStart;
if ( _newEnd != 0 ) endTime = _newEnd;
}
function withdraw(address to, uint256 value) public onlyOwner {
to.transfer(value);
}
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 setWalletAddress(address _wallet) public onlyOwner {
wallet = _wallet;
}
function setAdvisorAddress(address _advisor) public onlyOwner {
advisor = _advisor;
}
function setAdvisorFee(uint256 _advisorFee) public onlyOwner {
advisorFee = _advisorFee;
}
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 Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isKycSigner","outputs":[{"name":"","type":"bool"}],"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":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":"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":true,"inputs":[{"name":"","type":"uint64"}],"name":"alreadyPayed","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":"","type":"uint256"}],"name":"tokenThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"buyerAddress","type":"address"},{"name":"buyerId","type":"uint64"},{"name":"maxAmount","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"buyTokensFor","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"bonusThreshold","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"},{"constant":true,"inputs":[],"name":"oneTokenInUsdWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"buyerId","type":"uint64"},{"name":"maxAmount","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"buyTokens","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenSaleContract","type":"address"},{"name":"_oneTokenInUsdWei","type":"uint256"},{"name":"_remainingTokens","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"kycSigner","type":"address[]"},{"name":"_tokenThreshold","type":"uint256[]"},{"name":"_bonusThreshold","type":"uint256[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"signer","type":"address"},{"indexed":false,"name":"buyerAddress","type":"address"},{"indexed":false,"name":"buyerId","type":"uint64"},{"indexed":false,"name":"maxAmount","type":"uint256"}],"name":"KycVerified","type":"event"}]Contract Creation Code
606060405234156200001057600080fd5b60405162000efd38038062000efd83398101604052808051919060200180519190602001805191906020018051919060200180519190602001805182019190602001805182019190602001805190910190508260005b8151811015620000bd5760016000808484815181106200008257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff191691151591909117905560010162000066565b5050600160a060020a0388161515620000d557600080fd5b861515620000e257600080fd5b851515620000ef57600080fd5b81511515620000fd57600080fd5b80518251146200010c57600080fd5b600a8180516200012192916020019062000301565b5060098280516200013792916020019062000301565b5060028054600160a060020a031916600160a060020a038a81169190911791829055166366b52b936040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515620001a757600080fd5b5af11515620001b557600080fd5b505060006005555060068690556007879055620001e1858564010000000062000a7c620001ef82021704565b505050505050505062000371565b8115156200027057600254600160a060020a03166378e979256040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200025057600080fd5b5af115156200025e57600080fd5b50505060405180516003555062000276565b60038290555b801515620002f757600254600160a060020a0316633197cbb66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620002d757600080fd5b5af11515620002e557600080fd5b505050604051805160045550620002fd565b60048190555b5050565b8280548282559060005260206000209081019282156200033f579160200282015b828111156200033f57825182559160200191906001019062000322565b506200034d92915062000351565b5090565b6200036e91905b808211156200034d576000815560010162000358565b90565b610b7c80620003816000396000f3006060604052600436106100d75763ffffffff60e060020a6000350416630570d568811461024f57806312fa6feb146102825780631f2698ab146102955780633197cbb6146102a85780635ed9ebfc146102cd57806378e97925146102e05780637e1c0c09146102f35780639a359d8e14610306578063a0355eca14610326578063a035b1fe14610341578063a6f8fd1314610354578063ae4578351461036a578063bb9dea041461039a578063bf583903146103b0578063c0a99a83146103c3578063dee4b246146103d6578063f5eb8890146103fa575b34156100e257600080fd5b6000806000600454421115156100f757600080fd5b600160a060020a0333166000908152600860205260408120541161011a57600080fd5b60009250600091505b60095482101561017857600980548390811061013b57fe5b906000526020600020900154600554111561016d57600a80548390811061015e57fe5b90600052602060002090015492505b600190910190610123565b6000831161018557600080fd5b600160a060020a0333166000908152600860205260409020546101c1906064906101b5908663ffffffff61041916565b9063ffffffff61044416565b33600160a060020a038181166000908152600860205260408082209190915560025493945092169163aad3ec96919084905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561023357600080fd5b5af1151561024057600080fd5b50505060405180515050505050005b341561025a57600080fd5b61026e600160a060020a036004351661045b565b604051901515815260200160405180910390f35b341561028d57600080fd5b61026e610470565b34156102a057600080fd5b61026e610487565b34156102b357600080fd5b6102bb61049c565b60405190815260200160405180910390f35b34156102d857600080fd5b6102bb6104a2565b34156102eb57600080fd5b6102bb6104a8565b34156102fe57600080fd5b6102bb6104ae565b341561031157600080fd5b6102bb67ffffffffffffffff600435166104c7565b341561033157600080fd5b61033f6004356024356104d9565b005b341561034c57600080fd5b6102bb61056a565b341561035f57600080fd5b6102bb6004356105fc565b61026e600160a060020a036004351667ffffffffffffffff6024351660443560ff6064351660843560a43561061b565b34156103a557600080fd5b6102bb60043561064a565b34156103bb57600080fd5b6102bb610658565b34156103ce57600080fd5b6102bb61065e565b61026e67ffffffffffffffff6004351660243560ff60443516606435608435610664565b341561040557600080fd5b6102bb600160a060020a036004351661067e565b6000828202831580610435575082848281151561043257fe5b04145b151561043d57fe5b9392505050565b600080828481151561045257fe5b04949350505050565b60006020819052908152604090205460ff1681565b60006004544211806104825750600654155b905090565b60006003544211806104825750506006541590565b60045490565b60055481565b60035490565b600061048260055460065461069090919063ffffffff16565b60016020526000908152604090205481565b600254600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561051857600080fd5b5af1151561052557600080fd5b50505060405180519050600160a060020a031633600160a060020a031614151561054e57600080fd5b811561055a5760038290555b80156105665760048190555b5050565b600254600754600091670de0b6b3a7640000916105f691600160a060020a031690637b4139859060405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156105c757600080fd5b5af115156105d457600080fd5b505050604051805190506101b583670de0b6b3a764000063ffffffff61041916565b91505090565b600980548290811061060a57fe5b600091825260209091200154905081565b60006106268761069f565b151561063157600080fd5b61063f8787878787876106b1565b979650505050505050565b600a80548290811061060a57fe5b60065490565b60075481565b60006106743387878787876106b1565b9695505050505050565b60086020526000908152604090205481565b60008282018381101561043d57fe5b33600160a060020a0390811691161490565b6000806000806002308b8b8b6040517f4569646f6f2069636f656e67696e6520617574686f72697a6174696f6e0000008152600160a060020a039485166c01000000000000000000000000908102601d83015293909416909202603184015267ffffffffffffffff167801000000000000000000000000000000000000000000000000026045830152604d820152606d016020604051808303816000865af1151561075b57600080fd5b50506040518051905092506001838888886040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af115156107be57600080fd5b505060206040510351600160a060020a03811660009081526020819052604090205490925060ff1615156107f157600080fd5b67ffffffffffffffff891660009081526001602052604090205461081b903463ffffffff61069016565b90508781111561082a57600080fd5b67ffffffffffffffff891660009081526001602052604090819020829055600160a060020a038316907f74e336db80b339721548db3209451cf01bd48e4a996e1bcea7f1a2abf8b06070908c908c908c9051600160a060020a03909316835267ffffffffffffffff90911660208301526040808301919091526060909101905180910390a26108b88a6108c6565b9a9950505050505050505050565b600080600354421115156108d957600080fd5b60045442106108e757600080fd5b600654600090116108f757600080fd5b600254600754600654600160a060020a0390921691634769ed8f91349187919060405160e060020a63ffffffff8716028152600160a060020a039093166004840152602483019190915260448201526064016020604051808303818588803b151561096157600080fd5b5af1151561096e57600080fd5b505050506040518051600160a060020a0333166000908152600860205260409020549092506109a491508263ffffffff61069016565b600160a060020a0333166000908152600860205260409020556006546109d0908263ffffffff610a6a16565b6006556005546109e6908263ffffffff61069016565b60058190555033600160a060020a03167f99d83b77a8a0fbdd924ad497f587bec4b963b71e8925e31a2baed1fbce2a16526000363485600754604051602081018490526040810183905260608101829052608080825281018590528060a081018787808284378201915050965050505050505060405180910390a250600192915050565b600082821115610a7657fe5b50900390565b811515610ae057600254600160a060020a03166378e979256040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ac257600080fd5b5af11515610acf57600080fd5b505050604051805160035550610ae6565b60038290555b801515610b4a57600254600160a060020a0316633197cbb66040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b2c57600080fd5b5af11515610b3957600080fd5b505050604051805160045550610566565b600455505600a165627a7a72305820ed914c75619db4942b316ee24002aa76f4d1db9f1391fd26be8d7b54b6746ac00029000000000000000000000000c1cf194c1449713bf811a93f4e1a6211c1713e340000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000004f68ca6d8cd91c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dd5ecefcaa0cb5d75f7b72dc9d2ce446d6d005200000000000000000000000004e315e5de2abbf7b745d9628ee60e4355c0fab8600000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000011a582513bbe781555550000000000000000000000000000000000000000000160ee2e58aae161aaaaaa00000000000000000000000000000000000000000002c1dc5cb155c2c355555500000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000028
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c1cf194c1449713bf811a93f4e1a6211c1713e340000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000004f68ca6d8cd91c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dd5ecefcaa0cb5d75f7b72dc9d2ce446d6d005200000000000000000000000004e315e5de2abbf7b745d9628ee60e4355c0fab8600000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000011a582513bbe781555550000000000000000000000000000000000000000000160ee2e58aae161aaaaaa00000000000000000000000000000000000000000002c1dc5cb155c2c355555500000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000028
-----Decoded View---------------
Arg [0] : _tokenSaleContract (address): 0xc1cF194C1449713Bf811a93F4E1A6211C1713E34
Arg [1] : _oneTokenInUsdWei (uint256): 300000000000000000
Arg [2] : _remainingTokens (uint256): 6000000000000000000000000
Arg [3] : _startTime (uint256): 0
Arg [4] : _endTime (uint256): 0
Arg [5] : kycSigner (address[]): 0xDd5EcEFCaA0Cb5D75F7b72dC9D2CE446D6d00520,0x4E315e5De2abbf7b745d9628ee60E4355C0fab86
Arg [6] : _tokenThreshold (uint256[]): 83333333333333333333333,1666666666666666666666666,3333333333333333333333333
Arg [7] : _bonusThreshold (uint256[]): 20,30,40
-----Encoded View---------------
19 Constructor Arguments found :
Arg [0] : 000000000000000000000000c1cf194c1449713bf811a93f4e1a6211c1713e34
Arg [1] : 0000000000000000000000000000000000000000000000000429d069189e0000
Arg [2] : 00000000000000000000000000000000000000000004f68ca6d8cd91c6000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [7] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [9] : 000000000000000000000000dd5ecefcaa0cb5d75f7b72dc9d2ce446d6d00520
Arg [10] : 0000000000000000000000004e315e5de2abbf7b745d9628ee60e4355c0fab86
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [12] : 0000000000000000000000000000000000000000000011a582513bbe78155555
Arg [13] : 0000000000000000000000000000000000000000000160ee2e58aae161aaaaaa
Arg [14] : 00000000000000000000000000000000000000000002c1dc5cb155c2c3555555
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [17] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [18] : 0000000000000000000000000000000000000000000000000000000000000028
Swarm Source
bzzr://ed914c75619db4942b316ee24002aa76f4d1db9f1391fd26be8d7b54b6746ac0
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.