More Info
Private Name Tags
ContractCreator
Sponsored
Latest 21 from a total of 21 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
|---|---|---|---|---|---|---|---|---|---|
| Buy Tokens | 5758890 | 1806 days 10 hrs ago | IN | 0 ETH | 0.0046852 | ||||
| Buy Tokens | 5697907 | 1817 days 6 hrs ago | IN | 0 ETH | 0.00196644 | ||||
| Buy Tokens | 5667699 | 1822 days 15 hrs ago | IN | 0 ETH | 0.00384186 | ||||
| Buy Tokens | 5657930 | 1824 days 8 hrs ago | IN | 0 ETH | 0.00103004 | ||||
| Transfer | 5657757 | 1824 days 9 hrs ago | IN | 13.5 ETH | 0.00184375 | ||||
| Buy Tokens | 5656962 | 1824 days 12 hrs ago | IN | 0 ETH | 0.00131185 | ||||
| Transfer | 5656959 | 1824 days 12 hrs ago | IN | 0 ETH | 0.00046628 | ||||
| Transfer | 5656544 | 1824 days 14 hrs ago | IN | 1 ETH | 0.00357958 | ||||
| Buy Tokens | 5656401 | 1824 days 15 hrs ago | IN | 0 ETH | 0.00280728 | ||||
| Buy Tokens | 5653619 | 1825 days 3 hrs ago | IN | 0 ETH | 0.00093512 | ||||
| Buy Tokens | 5653141 | 1825 days 5 hrs ago | IN | 0 ETH | 0.00383661 | ||||
| Transfer | 5652975 | 1825 days 5 hrs ago | IN | 10 ETH | 0.00359971 | ||||
| Transfer | 5652512 | 1825 days 7 hrs ago | IN | 1.5 ETH | 0.00078576 | ||||
| Transfer | 5651730 | 1825 days 11 hrs ago | IN | 1.5 ETH | 0.00122229 | ||||
| Transfer | 5650773 | 1825 days 15 hrs ago | IN | 1.02 ETH | 0.00261921 | ||||
| Transfer | 5648295 | 1826 days 1 hr ago | IN | 1 ETH | 0.00069845 | ||||
| Transfer | 5647166 | 1826 days 6 hrs ago | IN | 1 ETH | 0.00183344 | ||||
| Buy Tokens | 5647139 | 1826 days 6 hrs ago | IN | 0 ETH | 0.0010864 | ||||
| Transfer | 5646618 | 1826 days 8 hrs ago | IN | 1 ETH | 0.00436535 | ||||
| Transfer | 5640922 | 1827 days 8 hrs ago | IN | 1 ETH | 0.00087307 | ||||
| 0x60806040 | 5635713 | 1828 days 7 hrs ago | IN | Create: RCpro | 0 ETH | 0.02662537 |
Latest 9 internal transactions
Advanced mode:
| Parent Txn Hash | Block | From | To | Value | ||
|---|---|---|---|---|---|---|
| 5758890 | 1806 days 10 hrs ago | 1 ETH | ||||
| 5697907 | 1817 days 6 hrs ago | 13.5 ETH | ||||
| 5667699 | 1822 days 15 hrs ago | 1 ETH | ||||
| 5657930 | 1824 days 8 hrs ago | 1.5 ETH | ||||
| 5656962 | 1824 days 12 hrs ago | 1.5 ETH | ||||
| 5656401 | 1824 days 15 hrs ago | 1.02 ETH | ||||
| 5653619 | 1825 days 3 hrs ago | 1 ETH | ||||
| 5653141 | 1825 days 5 hrs ago | 10 ETH | ||||
| 5647139 | 1826 days 6 hrs ago | 1 ETH |
Loading...
Loading
Contract Name:
RCpro
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-18
*/
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", address(0), buyerAddress, buyerId, maxAmount); //replaced this with address(0);
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 etherMinimum;
uint256 public soldTokens;
uint256 public remainingTokens;
uint256 public oneTokenInFiatWei;
mapping(address => uint256) public etherUser; // address => ether amount
mapping(address => uint256) public pendingTokenUser; // address => token amount that will be claimed
mapping(address => uint256) public tokenUser; // address => token amount owned
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 _oneTokenInFiatWei, uint256 _remainingTokens, uint256 _etherMinimum, uint256 _startTime , uint256 _endTime, address [] kycSigner, uint256[] _tokenThreshold, uint256[] _bonusThreshold ) public KYCBase(kycSigner) {
require ( _tokenSaleContract != 0 );
require ( _oneTokenInFiatWei != 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;
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() );
_;
}
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 releaseTokensTo(address buyer) internal returns(bool) {
if( msg.value > 0 ) takeEther(buyer);
giveToken(buyer);
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(oneTokenInFiatWei) );
}
function () public payable{
require( now > startTime );
if(now < endTime) {
takeEther(msg.sender);
} else {
claimTokenBonus(msg.sender);
}
}
event Buy(address buyer, uint256 value, uint256 soldToken, uint256 valueTokenInUsdWei );
function takeEther(address _buyer) internal {
require( now > startTime );
require( now < endTime );
require( msg.value >= etherMinimum);
require( remainingTokens > 0 );
uint256 oneToken = 10 ** uint256(tokenSaleContract.decimals());
uint256 tokenValue = tokenSaleContract.tokenValueInEther(oneTokenInFiatWei);
uint256 tokenAmount = msg.value.mul(oneToken).div(tokenValue);
uint256 unboughtTokens = tokenInterface(tokenSaleContract.tokenContract()).balanceOf(tokenSaleContract);
if ( unboughtTokens > remainingTokens ) {
unboughtTokens = remainingTokens;
}
uint256 refund = 0;
if ( unboughtTokens < tokenAmount ) {
refund = (tokenAmount - unboughtTokens).mul(tokenValue).div(oneToken);
tokenAmount = unboughtTokens;
remainingTokens = 0; // set remaining token to 0
_buyer.transfer(refund);
} else {
remainingTokens = remainingTokens.sub(tokenAmount); // update remaining token without bonus
}
etherUser[_buyer] = etherUser[_buyer].add(msg.value.sub(refund));
pendingTokenUser[_buyer] = pendingTokenUser[_buyer].add(tokenAmount);
emit Buy( _buyer, msg.value, tokenAmount, oneTokenInFiatWei );
}
function giveToken(address _buyer) internal {
require( pendingTokenUser[_buyer] > 0 );
tokenUser[_buyer] = tokenUser[_buyer].add(pendingTokenUser[_buyer]);
tokenSaleContract.claim(_buyer, pendingTokenUser[_buyer]);
soldTokens = soldTokens.add(pendingTokenUser[_buyer]);
pendingTokenUser[_buyer] = 0;
tokenSaleContract.wallet().transfer(etherUser[_buyer]);
etherUser[_buyer] = 0;
}
function claimTokenBonus(address _buyer) internal {
require( now > endTime );
require( tokenUser[_buyer] > 0 );
uint256 bonusApplied = 0;
for (uint i = 0; i < tokenThreshold.length; i++) {
if ( soldTokens > tokenThreshold[i] ) {
bonusApplied = bonusThreshold[i];
}
}
require( bonusApplied > 0 );
uint256 addTokenAmount = tokenUser[_buyer].mul( bonusApplied ).div(10**2);
tokenUser[_buyer] = 0;
tokenSaleContract.claim(_buyer, addTokenAmount);
_buyer.transfer(msg.value);
}
function refundEther(address to) public onlyTokenSaleOwner {
to.transfer(etherUser[to]);
etherUser[to] = 0;
pendingTokenUser[to] = 0;
}
function withdraw(address to, uint256 value) public onlyTokenSaleOwner {
to.transfer(value);
}
function userBalance(address _user) public view returns( uint256 _pendingTokenUser, uint256 _tokenUser, uint256 _etherUser ) {
return (pendingTokenUser[_user], tokenUser[_user], etherUser[_user]);
}
}
contract RCpro is ICOEngineInterface, KYCBase {
using SafeMath for uint256;
TokenSale tokenSaleContract;
uint256 public startTime;
uint256 public endTime;
uint256 public etherMinimum;
uint256 public soldTokens;
uint256 public remainingTokens;
uint256[] public oneTokenInFiatWei;
uint256[] public sendThreshold;
mapping(address => uint256) public etherUser; // address => ether amount
mapping(address => uint256) public pendingTokenUser; // address => token amount that will be claimed
mapping(address => uint256) public tokenUser; // address => token amount owned
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 RCpro(address _tokenSaleContract, uint256[] _oneTokenInFiatWei, uint256[] _sendThreshold, uint256 _remainingTokens, uint256 _etherMinimum, uint256 _startTime , uint256 _endTime, address [] kycSigner, uint256[] _tokenThreshold, uint256[] _bonusThreshold ) public KYCBase(kycSigner) {
require ( _tokenSaleContract != 0 );
require ( _oneTokenInFiatWei[0] != 0 );
require ( _oneTokenInFiatWei.length == _sendThreshold.length );
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;
oneTokenInFiatWei = _oneTokenInFiatWei;
sendThreshold = _sendThreshold;
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() );
_;
}
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 releaseTokensTo(address buyer) internal returns(bool) {
if( msg.value > 0 ) takeEther(buyer);
giveToken(buyer);
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(oneTokenInFiatWei[0]) );
}
function () public payable{
require( now > startTime );
if(now < endTime) {
takeEther(msg.sender);
} else {
claimTokenBonus(msg.sender);
}
}
event Buy(address buyer, uint256 value, uint256 soldToken, uint256 valueTokenInFiatWei );
function takeEther(address _buyer) internal {
require( now > startTime );
require( now < endTime );
require( msg.value >= etherMinimum);
require( remainingTokens > 0 );
uint256 oneToken = 10 ** uint256(tokenSaleContract.decimals());
uint256 tknPriceApplied = 0;
for (uint i = 0; i < sendThreshold.length; i++) {
if ( msg.value >= sendThreshold[i] ) {
tknPriceApplied = oneTokenInFiatWei[i];
}
}
require( tknPriceApplied > 0 );
uint256 tokenValue = tokenSaleContract.tokenValueInEther(tknPriceApplied);
uint256 tokenAmount = msg.value.mul(oneToken).div(tokenValue);
uint256 unboughtTokens = tokenInterface(tokenSaleContract.tokenContract()).balanceOf(tokenSaleContract);
if ( unboughtTokens > remainingTokens ) {
unboughtTokens = remainingTokens;
}
uint256 refund = 0;
if ( unboughtTokens < tokenAmount ) {
refund = (tokenAmount - unboughtTokens).mul(tokenValue).div(oneToken);
tokenAmount = unboughtTokens;
remainingTokens = 0; // set remaining token to 0
_buyer.transfer(refund);
} else {
remainingTokens = remainingTokens.sub(tokenAmount); // update remaining token without bonus
}
etherUser[_buyer] = etherUser[_buyer].add(msg.value.sub(refund));
pendingTokenUser[_buyer] = pendingTokenUser[_buyer].add(tokenAmount);
emit Buy( _buyer, msg.value, tokenAmount, tknPriceApplied );
}
function giveToken(address _buyer) internal {
require( pendingTokenUser[_buyer] > 0 );
tokenUser[_buyer] = tokenUser[_buyer].add(pendingTokenUser[_buyer]);
tokenSaleContract.claim(_buyer, pendingTokenUser[_buyer]);
soldTokens = soldTokens.add(pendingTokenUser[_buyer]);
pendingTokenUser[_buyer] = 0;
tokenSaleContract.wallet().transfer(etherUser[_buyer]);
etherUser[_buyer] = 0;
}
function claimTokenBonus(address _buyer) internal {
require( now > endTime );
require( tokenUser[_buyer] > 0 );
uint256 bonusApplied = 0;
for (uint i = 0; i < tokenThreshold.length; i++) {
if ( soldTokens > tokenThreshold[i] ) {
bonusApplied = bonusThreshold[i];
}
}
require( bonusApplied > 0 );
uint256 addTokenAmount = tokenUser[_buyer].mul( bonusApplied ).div(10**2);
tokenUser[_buyer] = 0;
tokenSaleContract.claim(_buyer, addTokenAmount);
_buyer.transfer(msg.value);
}
function refundEther(address to) public onlyTokenSaleOwner {
to.transfer(etherUser[to]);
etherUser[to] = 0;
pendingTokenUser[to] = 0;
}
function withdraw(address to, uint256 value) public onlyTokenSaleOwner {
to.transfer(value);
}
function userBalance(address _user) public view returns( uint256 _pendingTokenUser, uint256 _tokenUser, uint256 _etherUser ) {
return (pendingTokenUser[_user], tokenUser[_user], etherUser[_user]);
}
}
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 _oneTokenInFiatWei) public view returns(uint256 tknValue) {
uint256 oneEtherInUsd = rateContract.readRate("usd");
tknValue = _oneTokenInFiatWei.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":"_user","type":"address"}],"name":"userBalance","outputs":[{"name":"_pendingTokenUser","type":"uint256"},{"name":"_tokenUser","type":"uint256"},{"name":"_etherUser","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sendThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"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":false,"inputs":[{"name":"to","type":"address"}],"name":"refundEther","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"","type":"address"}],"name":"pendingTokenUser","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":true,"inputs":[{"name":"","type":"address"}],"name":"etherUser","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":"","type":"address"}],"name":"tokenUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"oneTokenInFiatWei","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":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_tokenSaleContract","type":"address"},{"name":"_oneTokenInFiatWei","type":"uint256[]"},{"name":"_sendThreshold","type":"uint256[]"},{"name":"_remainingTokens","type":"uint256"},{"name":"_etherMinimum","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":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"soldToken","type":"uint256"},{"indexed":false,"name":"valueTokenInFiatWei","type":"uint256"}],"name":"Buy","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
60806040523480156200001157600080fd5b50604051620019373803806200193783398101604090815281516020830151918301516060840151608085015160a086015160c087015160e08801516101008901516101208a01519799988901989687019795969495939492939183019290810191018260005b8151811015620000d157600160008084848151811015156200009657fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560010162000078565b5050600160a060020a038a161515620000e957600080fd5b886000815181101515620000f957fe5b6020908102909101015115156200010f57600080fd5b87518951146200011e57600080fd5b8615156200012b57600080fd5b815115156200013957600080fd5b80518251146200014857600080fd5b80516200015d90600e906020840190620003cc565b5081516200017390600d906020850190620003cc565b5060028054600160a060020a031916600160a060020a038c81169190911791829055604080517f66b52b93000000000000000000000000000000000000000000000000000000008152905192909116916366b52b939160048082019260009290919082900301818387803b158015620001eb57600080fd5b505af115801562000200573d6000803e3d6000fd5b50506000600655505060078790558851620002239060089060208c0190620003cc565b508751620002399060099060208b0190620003cc565b50600586905562000254858564010000000062000264810204565b505050505050505050506200043c565b8115156200031057600260009054906101000a9004600160a060020a0316600160a060020a03166378e979256040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620002d957600080fd5b505af1158015620002ee573d6000803e3d6000fd5b505050506040513d60208110156200030557600080fd5b505160035562000316565b60038290555b801515620003c257600260009054906101000a9004600160a060020a0316600160a060020a0316633197cbb66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200038b57600080fd5b505af1158015620003a0573d6000803e3d6000fd5b505050506040513d6020811015620003b757600080fd5b5051600455620003c8565b60048190555b5050565b8280548282559060005260206000209081019282156200040a579160200282015b828111156200040a578251825591602001919060010190620003ed565b50620004189291506200041c565b5090565b6200043991905b8082111562000418576000815560010162000423565b90565b6114eb806200044c6000396000f30060806040526004361061012f5763ffffffff60e060020a6000350416630103c92b8114610160578063045351721461019f5780630570d568146101c957806312fa6feb146101fe5780631f2698ab146102135780631f378b8a146102285780632a513dd9146102495780633197cbb61461026157806334323d32146102765780635ed9ebfc14610297578063675cef14146102ac57806378e97925146102c15780637e1c0c09146102d6578063924669b2146102eb5780639a359d8e1461030c578063a0355eca1461032e578063a035b1fe14610349578063a6f8fd131461035e578063ae45783514610376578063bb9dea04146103a6578063bf583903146103be578063ce1ff67e146103d3578063dadddf94146103f4578063dee4b2461461040c578063f3fef3a314610430575b600354421161013d57600080fd5b6004544210156101555761015033610454565b61015e565b61015e336108c4565b005b34801561016c57600080fd5b50610181600160a060020a0360043516610a81565b60408051938452602084019290925282820152519081900360600190f35b3480156101ab57600080fd5b506101b7600435610ab3565b60408051918252519081900360200190f35b3480156101d557600080fd5b506101ea600160a060020a0360043516610ad2565b604080519115158252519081900360200190f35b34801561020a57600080fd5b506101ea610ae7565b34801561021f57600080fd5b506101ea610afe565b34801561023457600080fd5b5061015e600160a060020a0360043516610b13565b34801561025557600080fd5b5061015e600435610c0e565b34801561026d57600080fd5b506101b7610ca6565b34801561028257600080fd5b506101b7600160a060020a0360043516610cac565b3480156102a357600080fd5b506101b7610cbe565b3480156102b857600080fd5b506101b7610cc4565b3480156102cd57600080fd5b506101b7610cca565b3480156102e257600080fd5b506101b7610cd0565b3480156102f757600080fd5b506101b7600160a060020a0360043516610ce9565b34801561031857600080fd5b506101b767ffffffffffffffff60043516610cfb565b34801561033a57600080fd5b5061015e600435602435610d0d565b34801561035557600080fd5b506101b7610dbc565b34801561036a57600080fd5b506101b7600435610e7f565b6101ea600160a060020a036004351667ffffffffffffffff6024351660443560ff6064351660843560a435610e8d565b3480156103b257600080fd5b506101b7600435610ebc565b3480156103ca57600080fd5b506101b7610eca565b3480156103df57600080fd5b506101b7600160a060020a0360043516610ed0565b34801561040057600080fd5b506101b7600435610ee2565b6101ea67ffffffffffffffff6004351660243560ff60443516606435608435610ef0565b34801561043c57600080fd5b5061015e600160a060020a0360043516602435610f0a565b60008060008060008060006003544211151561046f57600080fd5b600454421061047d57600080fd5b60055434101561048c57600080fd5b60075460001061049b57600080fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b505050506040513d602081101561051857600080fd5b5051600a0a9650600095508594505b60095485101561057957600980548690811061053f57fe5b90600052602060002001543410151561056e57600880548690811061056057fe5b906000526020600020015495505b600190940193610527565b6000861161058657600080fd5b600254604080517f7b413985000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a0390921691637b413985916024808201926020929091908290030181600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b505050506040513d602081101561061757600080fd5b5051935061063b8461062f348a63ffffffff610fd816565b9063ffffffff61100316565b9250600260009054906101000a9004600160a060020a0316600160a060020a03166355a373d66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b505050506040513d60208110156106ba57600080fd5b5051600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152905191909216916370a082319160248083019260209291908290030181600087803b15801561072457600080fd5b505af1158015610738573d6000803e3d6000fd5b505050506040513d602081101561074e57600080fd5b50516007549092508211156107635760075491505b506000828210156107d0576107848761062f8486038763ffffffff610fd816565b9050819250600060078190555087600160a060020a03166108fc829081150290604051600060405180830381858888f193505050501580156107ca573d6000803e3d6000fd5b506107e7565b6007546107e3908463ffffffff61101a16565b6007555b61081f6107fa348363ffffffff61101a16565b600160a060020a038a166000908152600a60205260409020549063ffffffff61102c16565b600160a060020a0389166000908152600a6020908152604080832093909355600b90522054610854908463ffffffff61102c16565b600160a060020a0389166000818152600b602090815260409182902093909355805191825234928201929092528082018590526060810188905290517fbeae048c6d270d9469f86cf6e8fedda3c60ad770f16c24c9fc131c8e9a09101d9181900360800190a15050505050505050565b6000806000600454421115156108d957600080fd5b600160a060020a0384166000908152600c6020526040812054116108fc57600080fd5b60009250600091505b600d5482101561095857600d80548390811061091d57fe5b9060005260206000200154600654111561094d57600e80548390811061093f57fe5b906000526020600020015492505b600190910190610905565b6000831161096557600080fd5b600160a060020a0384166000908152600c60205260409020546109959060649061062f908663ffffffff610fd816565b600160a060020a038086166000818152600c6020908152604080832083905560025481517faad3ec9600000000000000000000000000000000000000000000000000000000815260048101959095526024850187905290519596509093169363aad3ec96936044808501949193918390030190829087803b158015610a1957600080fd5b505af1158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b5050604051600160a060020a038516903480156108fc02916000818181858888f19350505050158015610a7a573d6000803e3d6000fd5b5050505050565b600160a060020a03166000908152600b6020908152604080832054600c835281842054600a9093529220549192909190565b6009805482908110610ac157fe5b600091825260209091200154905081565b60006020819052908152604090205460ff1681565b6000600454421180610af95750600754155b905090565b6000600354421180610af95750506007541590565b600260009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b6657600080fd5b505af1158015610b7a573d6000803e3d6000fd5b505050506040513d6020811015610b9057600080fd5b5051600160a060020a03163314610ba657600080fd5b600160a060020a0381166000818152600a602052604080822054905181156108fc0292818181858888f19350505050158015610be6573d6000803e3d6000fd5b50600160a060020a03166000908152600a60209081526040808320839055600b909152812055565b600260009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c6157600080fd5b505af1158015610c75573d6000803e3d6000fd5b505050506040513d6020811015610c8b57600080fd5b5051600160a060020a03163314610ca157600080fd5b600555565b60045490565b600b6020526000908152604090205481565b60065481565b60055481565b60035490565b6000610af960065460075461102c90919063ffffffff16565b600a6020526000908152604090205481565b60016020526000908152604090205481565b600260009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6020811015610d8a57600080fd5b5051600160a060020a03163314610da057600080fd5b8115610dac5760038290555b8015610db85760048190555b5050565b60025460088054600092670de0b6b3a764000092610e7992600160a060020a0390921691637b413985919086908110610df157fe5b90600052602060002001546040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610e3557600080fd5b505af1158015610e49573d6000803e3d6000fd5b505050506040513d6020811015610e5f57600080fd5b505161062f83670de0b6b3a764000063ffffffff610fd816565b91505090565b600d805482908110610ac157fe5b6000610e988761103b565b1515610ea357600080fd5b610eb187878787878761104c565b979650505050505050565b600e805482908110610ac157fe5b60075490565b600c6020526000908152604090205481565b6008805482908110610ac157fe5b6000610f0033878787878761104c565b9695505050505050565b600260009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f5d57600080fd5b505af1158015610f71573d6000803e3d6000fd5b505050506040513d6020811015610f8757600080fd5b5051600160a060020a03163314610f9d57600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610fd3573d6000803e3d6000fd5b505050565b6000828202831580610ff45750828482811515610ff157fe5b04145b1515610ffc57fe5b9392505050565b600080828481151561101157fe5b04949350505050565b60008282111561102657fe5b50900390565b600082820183811015610ffc57fe5b600160a060020a0381163314919050565b604080517f4569646f6f2069636f656e67696e6520617574686f72697a6174696f6e00000081526000601d8201819052600160a060020a0389166c01000000000000000000000000026031830152780100000000000000000000000000000000000000000000000067ffffffffffffffff8916026045830152604d82018790529151829182918291600291606d808301926020929190829003018186865af11580156110fc573d6000803e3d6000fd5b5050506040513d602081101561111157600080fd5b5051604080516000808252602082810180855285905260ff8c1683850152606083018b9052608083018a9052925193965060019360a08084019493601f19830193908390039091019190865af115801561116f573d6000803e3d6000fd5b505060408051601f190151600160a060020a03811660009081526020819052919091205490935060ff16151590506111a657600080fd5b67ffffffffffffffff89166000908152600160205260409020546111d0903463ffffffff61102c16565b9050878111156111df57600080fd5b67ffffffffffffffff89166000818152600160209081526040918290208490558151600160a060020a038e81168252918101939093528282018b90529051908416917f74e336db80b339721548db3209451cf01bd48e4a996e1bcea7f1a2abf8b06070919081900360600190a26112558a611263565b9a9950505050505050505050565b6000803411156112765761127682610454565b61127f82611287565b506001919050565b600160a060020a0381166000908152600b6020526040812054116112aa57600080fd5b600160a060020a0381166000908152600b6020908152604080832054600c909252909120546112de9163ffffffff61102c16565b600160a060020a038083166000818152600c6020908152604080832095909555600254600b82528583205486517faad3ec96000000000000000000000000000000000000000000000000000000008152600481019590955260248501529451949093169363aad3ec96936044808501949193918390030190829087803b15801561136757600080fd5b505af115801561137b573d6000803e3d6000fd5b505050506040513d602081101561139157600080fd5b5050600160a060020a0381166000908152600b60205260409020546006546113be9163ffffffff61102c16565b600655600160a060020a038082166000908152600b6020908152604080832083905560025481517f521eb273000000000000000000000000000000000000000000000000000000008152915194169363521eb27393600480840194938390030190829087803b15801561143057600080fd5b505af1158015611444573d6000803e3d6000fd5b505050506040513d602081101561145a57600080fd5b5051600160a060020a038281166000908152600a6020526040808220549051929093169280156108fc02929091818181858888f193505050501580156114a4573d6000803e3d6000fd5b50600160a060020a03166000908152600a60205260408120555600a165627a7a7230582026390bbe55fee0699afa268c1cfb0fd60c9d82286739cacb49bd47a819764da00029000000000000000000000000c1cf194c1449713bf811a93f4e1a6211c1713e34000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000002116545850052128000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000003782dace9d90000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dd5ecefcaa0cb5d75f7b72dc9d2ce446d6d005200000000000000000000000004e315e5de2abbf7b745d9628ee60e4355c0fab860000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c1cf194c1449713bf811a93f4e1a6211c1713e34000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000002116545850052128000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000003782dace9d90000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dd5ecefcaa0cb5d75f7b72dc9d2ce446d6d005200000000000000000000000004e315e5de2abbf7b745d9628ee60e4355c0fab860000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _tokenSaleContract (address): 0xc1cF194C1449713Bf811a93F4E1A6211C1713E34
Arg [1] : _oneTokenInFiatWei (uint256[]): 250000000000000000,220000000000000000
Arg [2] : _sendThreshold (uint256[]): 0,10000000000000000000
Arg [3] : _remainingTokens (uint256): 2500000000000000000000000
Arg [4] : _etherMinimum (uint256): 1000000000000000000
Arg [5] : _startTime (uint256): 0
Arg [6] : _endTime (uint256): 0
Arg [7] : kycSigner (address[]): 0xDd5EcEFCaA0Cb5D75F7b72dC9D2CE446D6d00520,0x4E315e5De2abbf7b745d9628ee60E4355C0fab86
Arg [8] : _tokenThreshold (uint256[]): 0
Arg [9] : _bonusThreshold (uint256[]): 0
-----Encoded View---------------
23 Constructor Arguments found :
Arg [0] : 000000000000000000000000c1cf194c1449713bf811a93f4e1a6211c1713e34
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [3] : 0000000000000000000000000000000000000000000211654585005212800000
Arg [4] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000200
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000260
Arg [9] : 00000000000000000000000000000000000000000000000000000000000002a0
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [11] : 00000000000000000000000000000000000000000000000003782dace9d90000
Arg [12] : 000000000000000000000000000000000000000000000000030d98d59a960000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000008ac7230489e80000
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [17] : 000000000000000000000000dd5ecefcaa0cb5d75f7b72dc9d2ce446d6d00520
Arg [18] : 0000000000000000000000004e315e5de2abbf7b745d9628ee60e4355c0fab86
Arg [19] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [21] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Swarm Source
bzzr://26390bbe55fee0699afa268c1cfb0fd60c9d82286739cacb49bd47a819764da0
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.