Latest 25 from a total of 31,949 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Burn Unsold Toke... | 8402935 | 2352 days ago | IN | 0 ETH | 0.00108071 | ||||
| Finalize | 8402930 | 2352 days ago | IN | 0 ETH | 0.00089982 | ||||
| Transfer Ownersh... | 8402928 | 2352 days ago | IN | 0 ETH | 0.0009694 | ||||
| Transfer | 7249771 | 2534 days ago | IN | 0.05 ETH | 0.00008558 | ||||
| Transfer Ownersh... | 6279855 | 2702 days ago | IN | 0 ETH | 0.00097785 | ||||
| Connect Token | 5858522 | 2774 days ago | IN | 0 ETH | 0.00092988 | ||||
| Transfer Ownersh... | 5815905 | 2781 days ago | IN | 0 ETH | 0.00098047 | ||||
| Transfer | 5652270 | 2810 days ago | IN | 0.99 ETH | 0.00106985 | ||||
| Transfer | 5428117 | 2849 days ago | IN | 0.151718 ETH | 0.00128382 | ||||
| Transfer | 5192821 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192817 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192817 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192804 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192751 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192735 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192722 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192699 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192631 | 2888 days ago | IN | 0.07 ETH | 0.00128382 | ||||
| Transfer | 5192609 | 2888 days ago | IN | 0.09 ETH | 0.00128382 | ||||
| Transfer | 5192558 | 2888 days ago | IN | 0.1 ETH | 0.0014122 | ||||
| Transfer | 5136887 | 2898 days ago | IN | 0.04628487 ETH | 0.00042794 | ||||
| Transfer | 5127217 | 2900 days ago | IN | 0.08 ETH | 0.00128382 | ||||
| Transfer | 5127183 | 2900 days ago | IN | 0.1 ETH | 0.00128382 | ||||
| Transfer | 5125707 | 2900 days ago | IN | 0.15 ETH | 0.00128382 | ||||
| Transfer | 5118189 | 2901 days ago | IN | 0.1 ETH | 0.00128382 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5061797 | 2911 days ago | 1 ETH | ||||
| Transfer | 5061797 | 2911 days ago | 1 ETH | ||||
| Transfer | 5061793 | 2911 days ago | 0.89510606 ETH | ||||
| Transfer | 5061793 | 2911 days ago | 9.9 ETH | ||||
| Transfer | 5061784 | 2911 days ago | 0.1 ETH | ||||
| Transfer | 5061776 | 2911 days ago | 2 ETH | ||||
| Transfer | 5061772 | 2911 days ago | 0.27 ETH | ||||
| Transfer | 5061771 | 2911 days ago | 0.3 ETH | ||||
| Transfer | 5061771 | 2911 days ago | 0.1 ETH | ||||
| Transfer | 5061771 | 2911 days ago | 0.1 ETH | ||||
| Transfer | 5061770 | 2911 days ago | 0.995 ETH | ||||
| Transfer | 5061770 | 2911 days ago | 0.1 ETH | ||||
| Transfer | 5061767 | 2911 days ago | 0.491 ETH | ||||
| Transfer | 5061767 | 2911 days ago | 0.1 ETH | ||||
| Transfer | 5061766 | 2911 days ago | 0.5 ETH | ||||
| Transfer | 5061765 | 2911 days ago | 0.1 ETH | ||||
| Transfer | 5061764 | 2911 days ago | 2 ETH | ||||
| Transfer | 5061757 | 2911 days ago | 0.57713872 ETH | ||||
| Transfer | 5061756 | 2911 days ago | 1.68 ETH | ||||
| Transfer | 5061755 | 2911 days ago | 0.1 ETH | ||||
| Transfer | 5061754 | 2911 days ago | 0.5 ETH | ||||
| Transfer | 5061752 | 2911 days ago | 0.41 ETH | ||||
| Transfer | 5061751 | 2911 days ago | 0.14958 ETH | ||||
| Transfer | 5061750 | 2911 days ago | 0.5563278 ETH | ||||
| Transfer | 5061748 | 2911 days ago | 3.036 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TokenSale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-12-19
*/
pragma solidity ^0.4.18;
/**
* @title ERC20Basic
* @dev Simpler version of ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/179
*/
contract ERC20Basic {
uint256 public totalSupply;
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(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 Basic token
* @dev Basic version of StandardToken, with no allowances.
*/
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Standard ERC20 token
*
* @dev Implementation of the basic standard token.
* @dev https://github.com/ethereum/EIPs/issues/20
* @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*/
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
*/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
//
// CPYToken is a standard ERC20 token with additional functionality:
// - tokenSaleContract receives the whole balance for distribution
// - Tokens are only transferable by the tokenSaleContract until finalization
// - Token holders can burn their tokens after finalization
//
contract Token is StandardToken {
string public constant name = "COPYTRACK Token";
string public constant symbol = "CPY";
uint8 public constant decimals = 18;
uint256 constant EXA = 10 ** 18;
uint256 public totalSupply = 100 * 10 ** 6 * EXA;
bool public finalized = false;
address public tokenSaleContract;
//
// EVENTS
//
event Finalized();
event Burnt(address indexed _from, uint256 _amount);
// Initialize the token with the tokenSaleContract and transfer the whole balance to it
function Token(address _tokenSaleContract)
public
{
// Make sure address is set
require(_tokenSaleContract != 0);
balances[_tokenSaleContract] = totalSupply;
tokenSaleContract = _tokenSaleContract;
}
// Implementation of the standard transfer method that takes the finalize flag into account
function transfer(address _to, uint256 _value)
public
returns (bool success)
{
checkTransferAllowed(msg.sender);
return super.transfer(_to, _value);
}
// Implementation of the standard transferFrom method that takes into account the finalize flag
function transferFrom(address _from, address _to, uint256 _value)
public
returns (bool success)
{
checkTransferAllowed(msg.sender);
return super.transferFrom(_from, _to, _value);
}
function checkTransferAllowed(address _sender)
private
view
{
if (finalized) {
// Every token holder should be allowed to transfer tokens once token was finalized
return;
}
// Only allow tokenSaleContract to transfer tokens before finalization
require(_sender == tokenSaleContract);
}
// Finalize method marks the point where token transfers are finally allowed for everybody
function finalize()
external
returns (bool success)
{
require(!finalized);
require(msg.sender == tokenSaleContract);
finalized = true;
Finalized();
return true;
}
// Implement a burn function to permit msg.sender to reduce its balance which also reduces totalSupply
function burn(uint256 _value)
public
returns (bool success)
{
require(finalized);
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
totalSupply = totalSupply.sub(_value);
Burnt(msg.sender, _value);
return true;
}
}
contract TokenSaleConfig {
uint public constant EXA = 10 ** 18;
uint256 public constant PUBLIC_START_TIME = 1515542400; //Wed, 10 Jan 2018 00:00:00 +0000
uint256 public constant END_TIME = 1518220800; //Sat, 10 Feb 2018 00:00:00 +0000
uint256 public constant CONTRIBUTION_MIN = 0.1 ether;
uint256 public constant CONTRIBUTION_MAX = 2500.0 ether;
uint256 public constant COMPANY_ALLOCATION = 40 * 10 ** 6 * EXA; //40 million;
Tranche[4] public tranches;
struct Tranche {
// How long this tranche will be active
uint untilToken;
// How many tokens per ether you will get while this tranche is active
uint tokensPerEther;
}
function TokenSaleConfig()
public
{
tranches[0] = Tranche({untilToken : 5000000 * EXA, tokensPerEther : 1554});
tranches[1] = Tranche({untilToken : 10000000 * EXA, tokensPerEther : 1178});
tranches[2] = Tranche({untilToken : 20000000 * EXA, tokensPerEther : 1000});
tranches[3] = Tranche({untilToken : 60000000, tokensPerEther : 740});
}
}
/**
* @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() public {
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) public onlyOwner {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract TokenSale is TokenSaleConfig, Ownable {
using SafeMath for uint;
Token public tokenContract;
// We keep track of whether the sale has been finalized, at which point
// no additional contributions will be permitted.
bool public finalized = false;
// lookup for max wei amount per user allowed
mapping (address => uint256) public contributors;
// the total amount of wei raised
uint256 public totalWeiRaised = 0;
// the total amount of token raised
uint256 public totalTokenSold = 0;
// address where funds are collected
address public fundingWalletAddress;
// address which manages the whitelist (KYC)
mapping (address => bool) public whitelistOperators;
// lookup addresses for whitelist
mapping (address => bool) public whitelist;
// early bird investments
address[] public earlyBirds;
mapping (address => uint256) public earlyBirdInvestments;
//
// MODIFIERS
//
// Throws if purchase would exceed the min max contribution.
// @param _contribute address
// @param _weiAmount the amount intended to spend
modifier withinContributionLimits(address _contributorAddress, uint256 _weiAmount) {
uint256 totalContributionAmount = contributors[_contributorAddress].add(_weiAmount);
require(_weiAmount >= CONTRIBUTION_MIN);
require(totalContributionAmount <= CONTRIBUTION_MAX);
_;
}
// Throws if called by any account not on the whitelist.
// @param _address Address which should execute the function
modifier onlyWhitelisted(address _address) {
require(whitelist[_address] == true);
_;
}
// Throws if called by any account not on the whitelistOperators list
modifier onlyWhitelistOperator()
{
require(whitelistOperators[msg.sender] == true);
_;
}
//Throws if sale is finalized or token sale end time has been reached
modifier onlyDuringSale() {
require(finalized == false);
require(currentTime() <= END_TIME);
_;
}
//Throws if sale is finalized
modifier onlyAfterFinalized() {
require(finalized);
_;
}
//
// EVENTS
//
event LogWhitelistUpdated(address indexed _account);
event LogTokensPurchased(address indexed _account, uint256 _cost, uint256 _tokens, uint256 _totalTokenSold);
event UnsoldTokensBurnt(uint256 _amount);
event Finalized();
// Initialize a new TokenSale contract
// @param _fundingWalletAddress Address which all ether will be forwarded to
function TokenSale(address _fundingWalletAddress)
public
{
//make sure _fundingWalletAddress is set
require(_fundingWalletAddress != 0);
fundingWalletAddress = _fundingWalletAddress;
}
// Connect a token to the tokenSale
// @param _fundingWalletAddress Address which all ether will be forwarded to
function connectToken(Token _tokenContract)
external
onlyOwner
{
require(totalTokenSold == 0);
require(tokenContract == address(0));
//make sure token is untouched
require(_tokenContract.balanceOf(address(this)) == _tokenContract.totalSupply());
tokenContract = _tokenContract;
// sent tokens to company vault
tokenContract.transfer(fundingWalletAddress, COMPANY_ALLOCATION);
processEarlyBirds();
}
function()
external
payable
{
uint256 cost = buyTokens(msg.sender, msg.value);
// forward contribution to the fundingWalletAddress
fundingWalletAddress.transfer(cost);
}
// execution of the actual token purchase
function buyTokens(address contributorAddress, uint256 weiAmount)
onlyDuringSale
onlyWhitelisted(contributorAddress)
withinContributionLimits(contributorAddress, weiAmount)
private
returns (uint256 costs)
{
assert(tokenContract != address(0));
uint256 tokensLeft = getTokensLeft();
// make sure we still have tokens left for sale
require(tokensLeft > 0);
uint256 tokenAmount = calculateTokenAmount(weiAmount);
uint256 cost = weiAmount;
uint256 refund = 0;
// we sell till we dont have anything left
if (tokenAmount > tokensLeft) {
tokenAmount = tokensLeft;
// calculate actual cost for partial amount of tokens.
cost = tokenAmount / getCurrentTokensPerEther();
// calculate refund for contributor.
refund = weiAmount.sub(cost);
}
// transfer the tokens to the contributor address
tokenContract.transfer(contributorAddress, tokenAmount);
// keep track of the amount bought by the contributor
contributors[contributorAddress] = contributors[contributorAddress].add(cost);
//if we got a refund process it now
if (refund > 0) {
// transfer back everything that exceeded the amount of tokens left
contributorAddress.transfer(refund);
}
// increase stats
totalWeiRaised += cost;
totalTokenSold += tokenAmount;
LogTokensPurchased(contributorAddress, cost, tokenAmount, totalTokenSold);
// If all tokens available for sale have been sold out, finalize the sale automatically.
if (tokensLeft.sub(tokenAmount) == 0) {
finalizeInternal();
}
//return the actual cost of the sale
return cost;
}
// ask the connected token how many tokens we have left
function getTokensLeft()
public
view
returns (uint256 tokensLeft)
{
return tokenContract.balanceOf(this);
}
// calculate the current tokens per ether
function getCurrentTokensPerEther()
public
view
returns (uint256 tokensPerEther)
{
uint i;
uint defaultTokensPerEther = tranches[tranches.length - 1].tokensPerEther;
if (currentTime() >= PUBLIC_START_TIME) {
return defaultTokensPerEther;
}
for (i = 0; i < tranches.length; i++) {
if (totalTokenSold >= tranches[i].untilToken) {
continue;
}
//sell until the contract has nor more tokens
return tranches[i].tokensPerEther;
}
return defaultTokensPerEther;
}
// calculate the token amount for a give weiAmount
function calculateTokenAmount(uint256 weiAmount)
public
view
returns (uint256 tokens)
{
return weiAmount * getCurrentTokensPerEther();
}
//
// WHITELIST
//
// add a new whitelistOperator
function addWhitelistOperator(address _address)
public
onlyOwner
{
whitelistOperators[_address] = true;
}
// remove a whitelistOperator
function removeWhitelistOperator(address _address)
public
onlyOwner
{
require(whitelistOperators[_address]);
delete whitelistOperators[_address];
}
// Allows whitelistOperators to add an account to the whitelist.
// Only those accounts will be allowed to contribute during the sale.
function addToWhitelist(address _address)
public
onlyWhitelistOperator
{
require(_address != address(0));
whitelist[_address] = true;
LogWhitelistUpdated(_address);
}
// Allows whitelistOperators to remove an account from the whitelist.
function removeFromWhitelist(address _address)
public
onlyWhitelistOperator
{
require(_address != address(0));
delete whitelist[_address];
}
//returns the current time, needed for tests
function currentTime()
public
view
returns (uint256 _currentTime)
{
return now;
}
// Allows the owner to finalize the sale.
function finalize()
external
onlyOwner
returns (bool)
{
//allow only after the defined end_time
require(currentTime() > END_TIME);
return finalizeInternal();
}
// The internal one will be called if tokens are sold out or
// the end time for the sale is reached, in addition to being called
// from the public version of finalize().
function finalizeInternal() private returns (bool) {
require(!finalized);
finalized = true;
Finalized();
//also finalize the token contract
tokenContract.finalize();
return true;
}
// register an early bird investment
function addEarlyBird(address _address, uint256 weiAmount)
onlyOwner
withinContributionLimits(_address, weiAmount)
external
{
// only allowed as long as we dont have a connected token
require(tokenContract == address(0));
earlyBirds.push(_address);
earlyBirdInvestments[_address] = weiAmount;
// auto whitelist early bird;
whitelist[_address] = true;
}
// transfer the tokens bought by the early birds before contract creation
function processEarlyBirds()
private
{
for (uint256 i = 0; i < earlyBirds.length; i++)
{
address earlyBirdAddress = earlyBirds[i];
uint256 weiAmount = earlyBirdInvestments[earlyBirdAddress];
buyTokens(earlyBirdAddress, weiAmount);
}
}
// allows everyone to burn all unsold tokens in the sale contract after finalized.
function burnUnsoldTokens()
external
onlyAfterFinalized
returns (bool)
{
uint256 leftTokens = getTokensLeft();
require(leftTokens > 0);
// let'em burn
require(tokenContract.burn(leftTokens));
UnsoldTokensBurnt(leftTokens);
return true;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"earlyBirds","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"removeWhitelistOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONTRIBUTION_MAX","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributors","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tranches","outputs":[{"name":"untilToken","type":"uint256"},{"name":"tokensPerEther","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PUBLIC_START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"weiAmount","type":"uint256"}],"name":"addEarlyBird","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"END_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalWeiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentTokensPerEther","outputs":[{"name":"tokensPerEther","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EXA","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"addWhitelistOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"COMPANY_ALLOCATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistOperators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"removeFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"earlyBirdInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"burnUnsoldTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"connectToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingWalletAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"weiAmount","type":"uint256"}],"name":"calculateTokenAmount","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONTRIBUTION_MIN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"_currentTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokensLeft","outputs":[{"name":"tokensLeft","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_fundingWalletAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_account","type":"address"}],"name":"LogWhitelistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_account","type":"address"},{"indexed":false,"name":"_cost","type":"uint256"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_totalTokenSold","type":"uint256"}],"name":"LogTokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_amount","type":"uint256"}],"name":"UnsoldTokensBurnt","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
60606040526009805460a060020a60ff02191690556000600b819055600c55341561002957600080fd5b60405160208061132c8339810160405280805191506040905080519081016040526a0422ca8b0a00a42500000081526106126020820152600081518155602082015160019091015550604080519081016040526a084595161401484a000000815261049a6020820152600281518155602082015160019091015550604080519081016040526a108b2a2c2802909400000081526103e8602082015260048151815560208201516001909101555060408051908101604052630393870081526102e4602082015260068151815560208201516001909101555060088054600160a060020a03338116600160a060020a0319909216919091179091558116151561013057600080fd5b600d8054600160a060020a031916600160a060020a03929092169190911790556111cd8061015f6000396000f3006060604052600436106101715763ffffffff60e060020a6000350416630428c6aa81146101b6578063159c18bc146101e85780631a2309f0146102095780631f6d49421461022e57806326c259621461024d578063297c41431461027b578063305006841461028e57806337ba682d146102b05780634bb278f3146102c357806353f4db01146102ea57806355a373d6146102fd5780635e402ae2146103105780636c749c26146103235780636ee18573146103365780637064f0af1461035557806383a4f2f5146103685780638ab1d681146103875780638da5cb5b146103a657806393bbafd1146103b9578063940bb344146103d857806399413b4e146103eb5780639b19251a1461040a5780639ce21f3c14610429578063a24bcf461461043c578063b3f05b9714610452578063b5f7f63614610465578063ba9bb82714610478578063d18e81b31461048b578063de5f98661461049e578063e43252d7146104b1578063f2fde38b146104d0575b600061017d33346104ef565b600d54909150600160a060020a031681156108fc0282604051600060405180830381858888f1935050505015156101b357600080fd5b50005b34156101c157600080fd5b6101cc6004356107ab565b604051600160a060020a03909116815260200160405180910390f35b34156101f357600080fd5b610207600160a060020a03600435166107d3565b005b341561021457600080fd5b61021c610836565b60405190815260200160405180910390f35b341561023957600080fd5b61021c600160a060020a0360043516610843565b341561025857600080fd5b610263600435610855565b60405191825260208201526040908101905180910390f35b341561028657600080fd5b61021c610874565b341561029957600080fd5b610207600160a060020a036004351660243561087c565b34156102bb57600080fd5b61021c610979565b34156102ce57600080fd5b6102d6610981565b604051901515815260200160405180910390f35b34156102f557600080fd5b61021c6109c4565b341561030857600080fd5b6101cc6109ca565b341561031b57600080fd5b61021c6109d9565b341561032e57600080fd5b61021c610a58565b341561034157600080fd5b610207600160a060020a0360043516610a64565b341561036057600080fd5b61021c610aa3565b341561037357600080fd5b6102d6600160a060020a0360043516610ab2565b341561039257600080fd5b610207600160a060020a0360043516610ac7565b34156103b157600080fd5b6101cc610b27565b34156103c457600080fd5b61021c600160a060020a0360043516610b36565b34156103e357600080fd5b6102d6610b48565b34156103f657600080fd5b610207600160a060020a0360043516610c2f565b341561041557600080fd5b6102d6600160a060020a0360043516610e07565b341561043457600080fd5b6101cc610e1c565b341561044757600080fd5b61021c600435610e2b565b341561045d57600080fd5b6102d6610e3d565b341561047057600080fd5b61021c610e4d565b341561048357600080fd5b61021c610e53565b341561049657600080fd5b61021c610e5f565b34156104a957600080fd5b61021c610e63565b34156104bc57600080fd5b610207600160a060020a0360043516610edd565b34156104db57600080fd5b610207600160a060020a0360043516610f6f565b600954600090819081908190819060a060020a900460ff161561051157600080fd5b635a7e360061051e610e5f565b111561052957600080fd5b600160a060020a0387166000908152600f6020526040902054879060ff16151560011461055557600080fd5b600160a060020a0388166000908152600a602052604081205489918991610582908363ffffffff61100a16565b905067016345785d8a000082101561059957600080fd5b68878678326eac9000008111156105af57600080fd5b600954600160a060020a031615156105c357fe5b6105cb610e63565b9750600088116105da57600080fd5b6105e38a610e2b565b9650899550600094508787111561061f578796506105ff6109d9565b8781151561060957fe5b04955061061c8a8763ffffffff61102016565b94505b600954600160a060020a031663a9059cbb8c8960006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561067e57600080fd5b6102c65a03f1151561068f57600080fd5b50505060405180515050600160a060020a038b166000908152600a60205260409020546106c2908763ffffffff61100a16565b600160a060020a038c166000908152600a602052604081209190915585111561071657600160a060020a038b1685156108fc0286604051600060405180830381858888f19350505050151561071657600080fd5b600b805487019055600c8054880190819055600160a060020a038c16907f1f3e1c8dd1ea65dd1302cbe3ef11178a614ac6f634819e13ce4e6326350d2a839088908a9060405180848152602001838152602001828152602001935050505060405180910390a261078c888863ffffffff61102016565b151561079c5761079a611032565b505b50939998505050505050505050565b60108054829081106107b957fe5b600091825260209091200154600160a060020a0316905081565b60085433600160a060020a039081169116146107ee57600080fd5b600160a060020a0381166000908152600e602052604090205460ff16151561081557600080fd5b600160a060020a03166000908152600e60205260409020805460ff19169055565b68878678326eac90000081565b600a6020526000908152604090205481565b6000816004811061086257fe5b60020201805460019091015490915082565b635a55578081565b60085433600160a060020a0390811691161461089757600080fd5b600160a060020a0382166000908152600a6020526040812054839183916108c4908363ffffffff61100a16565b905067016345785d8a00008210156108db57600080fd5b68878678326eac9000008111156108f157600080fd5b600954600160a060020a03161561090757600080fd5b60108054600181016109198382611168565b5060009182526020808320919091018054600160a060020a0390981673ffffffffffffffffffffffffffffffffffffffff199098168817905595815260118652604080822095909555600f9095525050509020805460ff19166001179055565b635a7e360081565b60085460009033600160a060020a0390811691161461099f57600080fd5b635a7e36006109ac610e5f565b116109b657600080fd5b6109be611032565b90505b90565b600b5481565b600954600160a060020a031681565b6007546000908190635a5557806109ee610e5f565b106109fb57809250610a53565b600091505b6004821015610a4f5760008260048110610a1657fe5b6002020154600c5410610a2857610a44565b60008260048110610a3557fe5b60020201600101549250610a53565b600190910190610a00565b8092505b505090565b670de0b6b3a764000081565b60085433600160a060020a03908116911614610a7f57600080fd5b600160a060020a03166000908152600e60205260409020805460ff19166001179055565b6a211654585005212800000081565b600e6020526000908152604090205460ff1681565b600160a060020a0333166000908152600e602052604090205460ff161515600114610af157600080fd5b600160a060020a0381161515610b0657600080fd5b600160a060020a03166000908152600f60205260409020805460ff19169055565b600854600160a060020a031681565b60116020526000908152604090205481565b600954600090819060a060020a900460ff161515610b6557600080fd5b610b6d610e63565b905060008111610b7c57600080fd5b600954600160a060020a03166342966c688260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610bcd57600080fd5b6102c65a03f11515610bde57600080fd5b505050604051805190501515610bf357600080fd5b7f8a18a804523143af3d2399b3fdf76bf116e01d31987f8e774d8f1282f013cb7e8160405190815260200160405180910390a1600191505b5090565b60085433600160a060020a03908116911614610c4a57600080fd5b600c5415610c5757600080fd5b600954600160a060020a031615610c6d57600080fd5b80600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610cb357600080fd5b6102c65a03f11515610cc457600080fd5b5050506040518051905081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d2557600080fd5b6102c65a03f11515610d3657600080fd5b50505060405180519050141515610d4c57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055600d549181169163a9059cbb91166a211654585005212800000060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610de057600080fd5b6102c65a03f11515610df157600080fd5b5050506040518051905050610e04611106565b50565b600f6020526000908152604090205460ff1681565b600d54600160a060020a031681565b6000610e356109d9565b909102919050565b60095460a060020a900460ff1681565b600c5481565b67016345785d8a000081565b4290565b600954600090600160a060020a03166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ebe57600080fd5b6102c65a03f11515610ecf57600080fd5b505050604051805191505090565b600160a060020a0333166000908152600e602052604090205460ff161515600114610f0757600080fd5b600160a060020a0381161515610f1c57600080fd5b600160a060020a0381166000818152600f602052604090819020805460ff191660011790557f8988c1ff37289662f7d1a6f736d91aada3cb9216b6614a53b94f210ea4a0af25905160405180910390a250565b60085433600160a060020a03908116911614610f8a57600080fd5b600160a060020a0381161515610f9f57600080fd5b600854600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282018381101561101957fe5b9392505050565b60008282111561102c57fe5b50900390565b60095460009060a060020a900460ff161561104c57600080fd5b6009805474ff0000000000000000000000000000000000000000191660a060020a1790557f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1600954600160a060020a0316634bb278f36000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110e457600080fd5b6102c65a03f115156110f557600080fd5b505050604051805150600191505090565b600080805b60105483101561116357601080548490811061112357fe5b6000918252602080832090910154600160a060020a03168083526011909152604090912054909250905061115782826104ef565b5060019092019161110b565b505050565b815481835581811511611163576000838152602090206111639181019083016109c191905b80821115610c2b576000815560010161118d5600a165627a7a723058204b33382d7f9993a7001fcc64f07f7c24c83fed1ec29682b960566af3e16821c100290000000000000000000000009df172fc167a8a567c208fc14e3435eb8043e2b7
Deployed Bytecode
0x6060604052600436106101715763ffffffff60e060020a6000350416630428c6aa81146101b6578063159c18bc146101e85780631a2309f0146102095780631f6d49421461022e57806326c259621461024d578063297c41431461027b578063305006841461028e57806337ba682d146102b05780634bb278f3146102c357806353f4db01146102ea57806355a373d6146102fd5780635e402ae2146103105780636c749c26146103235780636ee18573146103365780637064f0af1461035557806383a4f2f5146103685780638ab1d681146103875780638da5cb5b146103a657806393bbafd1146103b9578063940bb344146103d857806399413b4e146103eb5780639b19251a1461040a5780639ce21f3c14610429578063a24bcf461461043c578063b3f05b9714610452578063b5f7f63614610465578063ba9bb82714610478578063d18e81b31461048b578063de5f98661461049e578063e43252d7146104b1578063f2fde38b146104d0575b600061017d33346104ef565b600d54909150600160a060020a031681156108fc0282604051600060405180830381858888f1935050505015156101b357600080fd5b50005b34156101c157600080fd5b6101cc6004356107ab565b604051600160a060020a03909116815260200160405180910390f35b34156101f357600080fd5b610207600160a060020a03600435166107d3565b005b341561021457600080fd5b61021c610836565b60405190815260200160405180910390f35b341561023957600080fd5b61021c600160a060020a0360043516610843565b341561025857600080fd5b610263600435610855565b60405191825260208201526040908101905180910390f35b341561028657600080fd5b61021c610874565b341561029957600080fd5b610207600160a060020a036004351660243561087c565b34156102bb57600080fd5b61021c610979565b34156102ce57600080fd5b6102d6610981565b604051901515815260200160405180910390f35b34156102f557600080fd5b61021c6109c4565b341561030857600080fd5b6101cc6109ca565b341561031b57600080fd5b61021c6109d9565b341561032e57600080fd5b61021c610a58565b341561034157600080fd5b610207600160a060020a0360043516610a64565b341561036057600080fd5b61021c610aa3565b341561037357600080fd5b6102d6600160a060020a0360043516610ab2565b341561039257600080fd5b610207600160a060020a0360043516610ac7565b34156103b157600080fd5b6101cc610b27565b34156103c457600080fd5b61021c600160a060020a0360043516610b36565b34156103e357600080fd5b6102d6610b48565b34156103f657600080fd5b610207600160a060020a0360043516610c2f565b341561041557600080fd5b6102d6600160a060020a0360043516610e07565b341561043457600080fd5b6101cc610e1c565b341561044757600080fd5b61021c600435610e2b565b341561045d57600080fd5b6102d6610e3d565b341561047057600080fd5b61021c610e4d565b341561048357600080fd5b61021c610e53565b341561049657600080fd5b61021c610e5f565b34156104a957600080fd5b61021c610e63565b34156104bc57600080fd5b610207600160a060020a0360043516610edd565b34156104db57600080fd5b610207600160a060020a0360043516610f6f565b600954600090819081908190819060a060020a900460ff161561051157600080fd5b635a7e360061051e610e5f565b111561052957600080fd5b600160a060020a0387166000908152600f6020526040902054879060ff16151560011461055557600080fd5b600160a060020a0388166000908152600a602052604081205489918991610582908363ffffffff61100a16565b905067016345785d8a000082101561059957600080fd5b68878678326eac9000008111156105af57600080fd5b600954600160a060020a031615156105c357fe5b6105cb610e63565b9750600088116105da57600080fd5b6105e38a610e2b565b9650899550600094508787111561061f578796506105ff6109d9565b8781151561060957fe5b04955061061c8a8763ffffffff61102016565b94505b600954600160a060020a031663a9059cbb8c8960006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561067e57600080fd5b6102c65a03f1151561068f57600080fd5b50505060405180515050600160a060020a038b166000908152600a60205260409020546106c2908763ffffffff61100a16565b600160a060020a038c166000908152600a602052604081209190915585111561071657600160a060020a038b1685156108fc0286604051600060405180830381858888f19350505050151561071657600080fd5b600b805487019055600c8054880190819055600160a060020a038c16907f1f3e1c8dd1ea65dd1302cbe3ef11178a614ac6f634819e13ce4e6326350d2a839088908a9060405180848152602001838152602001828152602001935050505060405180910390a261078c888863ffffffff61102016565b151561079c5761079a611032565b505b50939998505050505050505050565b60108054829081106107b957fe5b600091825260209091200154600160a060020a0316905081565b60085433600160a060020a039081169116146107ee57600080fd5b600160a060020a0381166000908152600e602052604090205460ff16151561081557600080fd5b600160a060020a03166000908152600e60205260409020805460ff19169055565b68878678326eac90000081565b600a6020526000908152604090205481565b6000816004811061086257fe5b60020201805460019091015490915082565b635a55578081565b60085433600160a060020a0390811691161461089757600080fd5b600160a060020a0382166000908152600a6020526040812054839183916108c4908363ffffffff61100a16565b905067016345785d8a00008210156108db57600080fd5b68878678326eac9000008111156108f157600080fd5b600954600160a060020a03161561090757600080fd5b60108054600181016109198382611168565b5060009182526020808320919091018054600160a060020a0390981673ffffffffffffffffffffffffffffffffffffffff199098168817905595815260118652604080822095909555600f9095525050509020805460ff19166001179055565b635a7e360081565b60085460009033600160a060020a0390811691161461099f57600080fd5b635a7e36006109ac610e5f565b116109b657600080fd5b6109be611032565b90505b90565b600b5481565b600954600160a060020a031681565b6007546000908190635a5557806109ee610e5f565b106109fb57809250610a53565b600091505b6004821015610a4f5760008260048110610a1657fe5b6002020154600c5410610a2857610a44565b60008260048110610a3557fe5b60020201600101549250610a53565b600190910190610a00565b8092505b505090565b670de0b6b3a764000081565b60085433600160a060020a03908116911614610a7f57600080fd5b600160a060020a03166000908152600e60205260409020805460ff19166001179055565b6a211654585005212800000081565b600e6020526000908152604090205460ff1681565b600160a060020a0333166000908152600e602052604090205460ff161515600114610af157600080fd5b600160a060020a0381161515610b0657600080fd5b600160a060020a03166000908152600f60205260409020805460ff19169055565b600854600160a060020a031681565b60116020526000908152604090205481565b600954600090819060a060020a900460ff161515610b6557600080fd5b610b6d610e63565b905060008111610b7c57600080fd5b600954600160a060020a03166342966c688260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610bcd57600080fd5b6102c65a03f11515610bde57600080fd5b505050604051805190501515610bf357600080fd5b7f8a18a804523143af3d2399b3fdf76bf116e01d31987f8e774d8f1282f013cb7e8160405190815260200160405180910390a1600191505b5090565b60085433600160a060020a03908116911614610c4a57600080fd5b600c5415610c5757600080fd5b600954600160a060020a031615610c6d57600080fd5b80600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610cb357600080fd5b6102c65a03f11515610cc457600080fd5b5050506040518051905081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d2557600080fd5b6102c65a03f11515610d3657600080fd5b50505060405180519050141515610d4c57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055600d549181169163a9059cbb91166a211654585005212800000060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610de057600080fd5b6102c65a03f11515610df157600080fd5b5050506040518051905050610e04611106565b50565b600f6020526000908152604090205460ff1681565b600d54600160a060020a031681565b6000610e356109d9565b909102919050565b60095460a060020a900460ff1681565b600c5481565b67016345785d8a000081565b4290565b600954600090600160a060020a03166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ebe57600080fd5b6102c65a03f11515610ecf57600080fd5b505050604051805191505090565b600160a060020a0333166000908152600e602052604090205460ff161515600114610f0757600080fd5b600160a060020a0381161515610f1c57600080fd5b600160a060020a0381166000818152600f602052604090819020805460ff191660011790557f8988c1ff37289662f7d1a6f736d91aada3cb9216b6614a53b94f210ea4a0af25905160405180910390a250565b60085433600160a060020a03908116911614610f8a57600080fd5b600160a060020a0381161515610f9f57600080fd5b600854600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282018381101561101957fe5b9392505050565b60008282111561102c57fe5b50900390565b60095460009060a060020a900460ff161561104c57600080fd5b6009805474ff0000000000000000000000000000000000000000191660a060020a1790557f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1600954600160a060020a0316634bb278f36000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110e457600080fd5b6102c65a03f115156110f557600080fd5b505050604051805150600191505090565b600080805b60105483101561116357601080548490811061112357fe5b6000918252602080832090910154600160a060020a03168083526011909152604090912054909250905061115782826104ef565b5060019092019161110b565b505050565b815481835581811511611163576000838152602090206111639181019083016109c191905b80821115610c2b576000815560010161118d5600a165627a7a723058204b33382d7f9993a7001fcc64f07f7c24c83fed1ec29682b960566af3e16821c10029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009df172fc167a8a567c208fc14e3435eb8043e2b7
-----Decoded View---------------
Arg [0] : _fundingWalletAddress (address): 0x9dF172fC167a8A567C208FC14E3435EB8043E2B7
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009df172fc167a8a567c208fc14e3435eb8043e2b7
Swarm Source
bzzr://4b33382d7f9993a7001fcc64f07f7c24c83fed1ec29682b960566af3e16821c1
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.