More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 44,156 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Distribute Token... | 6604437 | 2360 days ago | IN | 0 ETH | 0.00250172 | ||||
Distribute Token... | 6575679 | 2365 days ago | IN | 0 ETH | 0.00249916 | ||||
Distribute Token... | 6575677 | 2365 days ago | IN | 0 ETH | 0.00309916 | ||||
Distribute Token... | 6495259 | 2378 days ago | IN | 0 ETH | 0.00250172 | ||||
Distribute Token... | 6495257 | 2378 days ago | IN | 0 ETH | 0.00309916 | ||||
Distribute Token... | 6330216 | 2405 days ago | IN | 0 ETH | 0.00250172 | ||||
Distribute Token... | 6330215 | 2405 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6330213 | 2405 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6311245 | 2408 days ago | IN | 0 ETH | 0.00250172 | ||||
Distribute Token... | 6311243 | 2408 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6311241 | 2408 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6311239 | 2408 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6311237 | 2408 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6311235 | 2408 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6311233 | 2408 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 6311135 | 2408 days ago | IN | 0 ETH | 0.00190172 | ||||
Distribute Token... | 6311133 | 2408 days ago | IN | 0 ETH | 0.00309916 | ||||
Distribute Token... | 6311131 | 2408 days ago | IN | 0 ETH | 0.00310172 | ||||
Transfer | 6145293 | 2436 days ago | IN | 0.32 ETH | 0.000861 | ||||
Transfer | 6121403 | 2440 days ago | IN | 0.2 ETH | 0.00087711 | ||||
Distribute Token... | 6032757 | 2455 days ago | IN | 0 ETH | 0.00250172 | ||||
Distribute Token... | 6032757 | 2455 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 5949553 | 2469 days ago | IN | 0 ETH | 0.00250172 | ||||
Distribute Token... | 5949553 | 2469 days ago | IN | 0 ETH | 0.00310172 | ||||
Distribute Token... | 5904729 | 2477 days ago | IN | 0 ETH | 0.00250172 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 4994325 | 2633 days ago | 0.1 ETH | ||||
Transfer | 4994317 | 2633 days ago | 4.264 ETH | ||||
Transfer | 4994045 | 2633 days ago | 0.00221002 ETH | ||||
Transfer | 4993974 | 2633 days ago | 0.001 ETH | ||||
Transfer | 4993970 | 2633 days ago | 0.005 ETH | ||||
Transfer | 4993969 | 2633 days ago | 0.5756635 ETH | ||||
Transfer | 4993921 | 2633 days ago | 0.01 ETH | ||||
Transfer | 4993916 | 2633 days ago | 0.00000411 ETH | ||||
Transfer | 4993916 | 2633 days ago | 0.00243301 ETH | ||||
Transfer | 4993911 | 2633 days ago | 0.00046905 ETH | ||||
Transfer | 4993911 | 2633 days ago | 0.028 ETH | ||||
Transfer | 4993911 | 2633 days ago | 0.05 ETH | ||||
Transfer | 4993911 | 2633 days ago | 0.1 ETH | ||||
Transfer | 4993911 | 2633 days ago | 0.25 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.2 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.256 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.256 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.18762366 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.55 ETH | ||||
Transfer | 4993910 | 2633 days ago | 1.25 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.40336 ETH | ||||
Transfer | 4993910 | 2633 days ago | 3.05997134 ETH | ||||
Transfer | 4993910 | 2633 days ago | 2.98492188 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.95 ETH | ||||
Transfer | 4993910 | 2633 days ago | 0.1 ETH |
Loading...
Loading
Contract Name:
DadiPublicSale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-01-29 */ pragma solidity ^0.4.11; /** * @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; require(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // require(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // require(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) { require(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(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() 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) onlyOwner public { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @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 constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @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)); // 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 constant 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 constant 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)) 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)); uint256 _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.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 constant returns (uint256 remaining) { 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 success) { 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 success) { 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; } } /***** * @title The DADI Public sale Contract */ contract DadiPublicSale is Ownable { using SafeMath for uint256; StandardToken public token; // The DADI ERC20 token */ uint256 public tokenSupply; uint256 public tokensPurchased = 0; uint256 public individualCap = 5000 * 1000; // USD$5,000 uint256 public tokenPrice = 500; // USD$0.50 uint256 public ethRate; // ETH to USD Rate, set by owner: 1 ETH = ethRate USD uint256 public maxGasPrice; // Max gas price for contributing transactions. address[] public saleWallets; mapping(address => Investor) private investors; address[] private investorIndex; struct Investor { uint256 tokens; uint256 contribution; bool distributed; uint index; } /***** * State for Sale Modes * 0 - Preparing: All contract initialization calls * 1 - PublicSale: Contract is in the Sale Period * 2 - PublicSaleFinalized Sale period is finalized, no more payments are allowed * 3 - Success: Sale Successful * 4 - TokenDistribution: Ssale finished, tokens can be distributed * 5 - Closed: Sale closed, no tokens more can be distributed */ enum SaleState { Preparing, PublicSale, PublicSaleFinalized, Success, TokenDistribution, Closed } SaleState public state = SaleState.Preparing; event LogTokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 tokens); event LogTokenDistribution(address recipient, uint256 tokens); event LogRedistributeTokens(address recipient, SaleState _state, uint256 tokens); event LogFundTransfer(address wallet, uint256 value); event LogRefund(address wallet, uint256 value); event LogStateChange(SaleState _state); /***** * @dev Modifier to check that amount transferred is not 0 */ modifier nonZero() { require(msg.value != 0); _; } /***** * @dev The constructor function to initialize the Public sale * @param _token address the address of the ERC20 token for the sale * @param _tokenSupply uint256 the amount of tokens available */ function DadiPublicSale (StandardToken _token, uint256 _tokenSupply) public { require(_token != address(0)); require(_tokenSupply != 0); token = StandardToken(_token); tokenSupply = _tokenSupply * (uint256(10) ** 18); maxGasPrice = 60000000000; // 60 Gwei } /***** * @dev Fallback Function to buy the tokens */ function () public nonZero payable { require(state == SaleState.PublicSale); buyTokens(msg.sender, msg.value); } /***** * @dev Allows the contract owner to add a new distribution wallet, used to hold funds safely * @param _wallet address The address of the wallet * @return success bool Returns true if executed successfully */ function addSaleWallet (address _wallet) public onlyOwner returns (bool) { require(_wallet != address(0)); saleWallets.push(_wallet); return true; } /***** * @dev Calculates the number of tokens that can be bought for the amount of Wei transferred * @param _amount uint256 The amount of money invested by the investor * @return tokens uint256 The number of tokens purchased for the amount invested */ function calculateTokens (uint256 _amount) public constant returns (uint256 tokens) { tokens = _amount * ethRate / tokenPrice; return tokens; } /***** * @dev Called by the owner of the contract to modify the sale state */ function setState (uint256 _state) public onlyOwner { state = SaleState(uint(_state)); LogStateChange(state); } /***** * @dev Called by the owner of the contract to start the Public sale * @param rate uint256 the current ETH USD rate, multiplied by 1000 */ function startPublicSale (uint256 rate) public onlyOwner { state = SaleState.PublicSale; updateEthRate(rate); LogStateChange(state); } /***** * @dev Allow updating the ETH USD exchange rate * @param rate uint256 the current ETH USD rate, multiplied by 1000 * @return bool Return true if successful */ function updateEthRate (uint256 rate) public onlyOwner returns (bool) { require(rate >= 100000); ethRate = rate; return true; } /***** * @dev Allow updating the max gas price * @param _maxGasPrice uint256 the maximum gas price for a transaction, in Gwei */ function updateMaxGasPrice(uint256 _maxGasPrice) public onlyOwner { require(_maxGasPrice > 0); maxGasPrice = _maxGasPrice; } /***** * @dev Allows transfer of tokens to a recipient who has purchased offline, during the PublicSale * @param _recipient address The address of the recipient of the tokens * @param _tokens uint256 The number of tokens purchased by the recipient * @return success bool Returns true if executed successfully */ function offlineTransaction (address _recipient, uint256 _tokens) public onlyOwner returns (bool) { require(_tokens > 0); // Convert to a token with decimals uint256 tokens = _tokens * (uint256(10) ** uint8(18)); // if the number of tokens is greater than available, reject tx if (tokens >= getTokensAvailable()) { revert(); } addToInvestor(_recipient, 0, tokens); // Increase the count of tokens purchased in the sale updateSaleParameters(tokens); LogTokenPurchase(msg.sender, _recipient, 0, tokens); return true; } /***** * @dev Called by the owner of the contract to finalize the ICO * and redistribute funds (if any) */ function finalizeSale () public onlyOwner { state = SaleState.Success; LogStateChange(state); // Transfer any ETH to one of the sale wallets if (this.balance > 0) { forwardFunds(this.balance); } } /***** * @dev Called by the owner of the contract to close the Sale and redistribute any crumbs. * @param recipient address The address of the recipient of the tokens */ function closeSale (address recipient) public onlyOwner { state = SaleState.Closed; LogStateChange(state); // redistribute unsold tokens to DADI ecosystem uint256 remaining = getTokensAvailable(); updateSaleParameters(remaining); if (remaining > 0) { token.transfer(recipient, remaining); LogRedistributeTokens(recipient, state, remaining); } } /***** * @dev Called by the owner of the contract to allow tokens to be distributed */ function setTokenDistribution () public onlyOwner { state = SaleState.TokenDistribution; LogStateChange(state); } /***** * @dev Called by the owner of the contract to distribute tokens to investors * @param _address address The address of the investor for which to distribute tokens * @return success bool Returns true if executed successfully */ function distributeTokens (address _address) public onlyOwner returns (bool) { require(state == SaleState.TokenDistribution); // get the tokens available for the investor uint256 tokens = investors[_address].tokens; require(tokens > 0); require(investors[_address].distributed == false); investors[_address].distributed = true; // investors[_address].tokens = 0; // investors[_address].contribution = 0; token.transfer(_address, tokens); LogTokenDistribution(_address, tokens); return true; } /***** * @dev Called by the owner of the contract to distribute tokens to investors who used a non-ERC20 wallet address * @param _purchaseAddress address The address the investor used to buy tokens * @param _tokenAddress address The address to send the tokens to * @return success bool Returns true if executed successfully */ function distributeToAlternateAddress (address _purchaseAddress, address _tokenAddress) public onlyOwner returns (bool) { require(state == SaleState.TokenDistribution); // get the tokens available for the investor uint256 tokens = investors[_purchaseAddress].tokens; require(tokens > 0); require(investors[_purchaseAddress].distributed == false); investors[_purchaseAddress].distributed = true; token.transfer(_tokenAddress, tokens); LogTokenDistribution(_tokenAddress, tokens); return true; } /***** * @dev Called by the owner of the contract to redistribute tokens if an investor has been refunded offline * @param investorAddress address The address the investor used to buy tokens * @param recipient address The address to send the tokens to */ function redistributeTokens (address investorAddress, address recipient) public onlyOwner { uint256 tokens = investors[investorAddress].tokens; require(tokens > 0); require(investors[investorAddress].distributed == false); // remove tokens, so they can't be redistributed // investors[investorAddress].tokens = 0; investors[investorAddress].distributed = true; token.transfer(recipient, tokens); LogRedistributeTokens(recipient, state, tokens); } /***** * @dev Get the amount of tokens left for purchase * @return uint256 the count of tokens available */ function getTokensAvailable () public constant returns (uint256) { return tokenSupply - tokensPurchased; } /***** * @dev Get the total count of tokens purchased * @return uint256 the count of tokens purchased */ function getTokensPurchased () public constant returns (uint256) { return tokensPurchased; } /***** * @dev Converts an amount sent in Wei to the equivalent in USD * @param _amount uint256 the amount sent to the contract, in Wei * @return uint256 the amount sent to this contract, in USD */ function ethToUsd (uint256 _amount) public constant returns (uint256) { return (_amount * ethRate) / (uint256(10) ** 18); } /***** * @dev Get count of contributors * @return uint the number of unique contributors */ function getInvestorCount () public constant returns (uint count) { return investorIndex.length; } /***** * @dev Get an investor * @param _address address the wallet address of the investor * @return uint256 the amount contributed by the user * @return uint256 the number of tokens assigned to the user * @return uint the index of the user */ function getInvestor (address _address) public constant returns (uint256 contribution, uint256 tokens, bool distributed, uint index) { require(isInvested(_address)); return(investors[_address].contribution, investors[_address].tokens, investors[_address].distributed, investors[_address].index); } /***** * @dev Get a user's invested state * @param _address address the wallet address of the user * @return bool true if the user has already contributed */ function isInvested (address _address) internal constant returns (bool isIndeed) { if (investorIndex.length == 0) return false; return (investorIndex[investors[_address].index] == _address); } /***** * @dev Update a user's invested state * @param _address address the wallet address of the user * @param _value uint256 the amount contributed in this transaction * @param _tokens uint256 the number of tokens assigned in this transaction */ function addToInvestor(address _address, uint256 _value, uint256 _tokens) internal { // add the user to the investorIndex if this is their first contribution if (!isInvested(_address)) { investors[_address].index = investorIndex.push(_address) - 1; } investors[_address].tokens = investors[_address].tokens.add(_tokens); investors[_address].contribution = investors[_address].contribution.add(_value); investors[_address].distributed = false; } /***** * @dev Send ether to the sale collection wallets */ function forwardFunds (uint256 _value) internal { uint accountNumber; address account; // move funds to a random saleWallet if (saleWallets.length > 0) { accountNumber = getRandom(saleWallets.length) - 1; account = saleWallets[accountNumber]; account.transfer(_value); LogFundTransfer(account, _value); } } /***** * @dev Internal function to assign tokens to the contributor * @param _address address The address of the contributing investor * @param _value uint256 The amount invested * @return success bool Returns true if executed successfully */ function buyTokens (address _address, uint256 _value) internal returns (bool) { require(tx.gasprice <= maxGasPrice); require(isValidContribution(_address, _value)); uint256 boughtTokens = calculateTokens(_value); require(boughtTokens != 0); // if the number of tokens calculated for the given value is // greater than the tokens available, reject the payment require(boughtTokens <= getTokensAvailable()); // update investor state addToInvestor(_address, _value, boughtTokens); forwardFunds(_value); updateSaleParameters(boughtTokens); LogTokenPurchase(msg.sender, _address, _value, boughtTokens); return true; } /***** * @dev Check that the amount sent in the transaction is below the individual cap * Factors in previous transactions by the same investor * @param _address address The address of the user making the transaction * @param _amount uint256 The amount sent in the transaction * @return bool Returns true if the amount is valid */ function isValidContribution (address _address, uint256 _amount) internal constant returns (bool valid) { return isBelowCap(_amount + investors[_address].contribution); } /***** * @dev Check that the amount sent in the transaction is below the individual cap * @param _amount uint256 The amount sent in the transaction * @return bool Returns true if the amount is below the individual cap */ function isBelowCap (uint256 _amount) internal constant returns (bool) { return ethToUsd(_amount) < individualCap; } /***** * @dev Generates a random number from 1 to max based on the last block hash * @param max uint the maximum value * @return a random number */ function getRandom(uint max) internal constant returns (uint randomNumber) { return (uint(keccak256(block.blockhash(block.number - 1))) % max) + 1; } /***** * @dev Internal function to modify parameters based on tokens bought * @param _tokens uint256 The number of tokens purchased */ function updateSaleParameters (uint256 _tokens) internal { tokensPurchased = tokensPurchased.add(_tokens); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"individualCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"addSaleWallet","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleWallets","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"investorAddress","type":"address"},{"name":"recipient","type":"address"}],"name":"redistributeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxGasPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rate","type":"uint256"}],"name":"updateEthRate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxGasPrice","type":"uint256"}],"name":"updateMaxGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalizeSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_purchaseAddress","type":"address"},{"name":"_tokenAddress","type":"address"}],"name":"distributeToAlternateAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"calculateTokens","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rate","type":"uint256"}],"name":"startPublicSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"closeSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getInvestor","outputs":[{"name":"contribution","type":"uint256"},{"name":"tokens","type":"uint256"},{"name":"distributed","type":"bool"},{"name":"index","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokensPurchased","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"ethToUsd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInvestorCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setTokenDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_state","type":"uint256"}],"name":"setState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokensAvailable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"distributeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPurchased","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"offlineTransaction","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"},{"name":"_tokenSupply","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"LogTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"LogTokenDistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"_state","type":"uint8"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"LogRedistributeTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"wallet","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogFundTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"wallet","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_state","type":"uint8"}],"name":"LogStateChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60606040526000600355624c4b406004556101f46005556000600b60006101000a81548160ff0219169083600581111561003557fe5b0217905550341561004557600080fd5b60405160408061260c83398101604052808051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156100e657600080fd5b600081141515156100f657600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a0a8102600281905550640df847580060078190555050506124ab806101616000396000f300606060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630276650b146101c657806308d9a77b146101ef5780631ccea71b146102405780633d1e215d146102a35780633de39c11146102fb5780633f6f7ed614610324578063481463411461035f57806358a687ec14610382578063616d1fab1461039757806371aa60fd1461040757806374817d9b1461043e5780637824407f14610461578063794913701461048a5780637ff9b596146104c35780638da5cb5b146104ec5780638f35a75e1461054157806391667aef146105a7578063946d1480146105d0578063960524e3146106075780639640639114610630578063a9e966b714610645578063aaa5ad6114610668578063b1d17c9814610691578063c19d93fb146106e2578063cc4d819c14610719578063d2d93f9014610742578063f2fde38b1461076b578063f54e7a40146107a4578063fc0c546a146107fe575b6000341415151561018557600080fd5b6001600581111561019257fe5b600b60009054906101000a900460ff1660058111156101ad57fe5b1415156101b957600080fd5b6101c33334610853565b50005b34156101d157600080fd5b6101d9610942565b6040518082815260200191505060405180910390f35b34156101fa57600080fd5b610226600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610948565b604051808215151515815260200191505060405180910390f35b341561024b57600080fd5b6102616004808035906020019091905050610a4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102ae57600080fd5b6102f9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a8c565b005b341561030657600080fd5b61030e610d78565b6040518082815260200191505060405180910390f35b341561032f57600080fd5b6103456004808035906020019091905050610d7e565b604051808215151515815260200191505060405180910390f35b341561036a57600080fd5b6103806004808035906020019091905050610dfd565b005b341561038d57600080fd5b610395610e71565b005b34156103a257600080fd5b6103ed600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f87565b604051808215151515815260200191505060405180910390f35b341561041257600080fd5b6104286004808035906020019091905050611289565b6040518082815260200191505060405180910390f35b341561044957600080fd5b61045f60048080359060200190919050506112a7565b005b341561046c57600080fd5b610474611387565b6040518082815260200191505060405180910390f35b341561049557600080fd5b6104c1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061138d565b005b34156104ce57600080fd5b6104d66115fc565b6040518082815260200191505060405180910390f35b34156104f757600080fd5b6104ff611602565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054c57600080fd5b610578600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611627565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34156105b257600080fd5b6105ba611769565b6040518082815260200191505060405180910390f35b34156105db57600080fd5b6105f16004808035906020019091905050611773565b6040518082815260200191505060405180910390f35b341561061257600080fd5b61061a611790565b6040518082815260200191505060405180910390f35b341561063b57600080fd5b61064361179d565b005b341561065057600080fd5b6106666004808035906020019091905050611872565b005b341561067357600080fd5b61067b611952565b6040518082815260200191505060405180910390f35b341561069c57600080fd5b6106c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611960565b604051808215151515815260200191505060405180910390f35b34156106ed57600080fd5b6106f5611c61565b6040518082600581111561070557fe5b60ff16815260200191505060405180910390f35b341561072457600080fd5b61072c611c74565b6040518082815260200191505060405180910390f35b341561074d57600080fd5b610755611c7a565b6040518082815260200191505060405180910390f35b341561077657600080fd5b6107a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c80565b005b34156107af57600080fd5b6107e4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611dd5565b604051808215151515815260200191505060405180910390f35b341561080957600080fd5b610811611ef1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806007543a1115151561086757600080fd5b6108718484611f17565b151561087c57600080fd5b61088583611289565b90506000811415151561089757600080fd5b61089f611952565b81111515156108ad57600080fd5b6108b8848483611f6e565b6108c1836121bf565b6108ca816122d1565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff370ff51765588b4b12b4ccf319b865dd3499a57df818acfe82c2740e41c878d8584604051808381526020018281526020019250505060405180910390a3600191505092915050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109a557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156109e157600080fd5b600880548060010182816109f5919061242e565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060019050919050565b600881815481101515610a5c57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ae957600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081111515610b3d57600080fd5b60001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515141515610b9f57600080fd5b6001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cc757600080fd5b6102c65a03f11515610cd857600080fd5b50505060405180519050507f8a1bda63f5f60920a84caac25ec9eb9f26a6c01e1682229db0268c5a5c92453482600b60009054906101000a900460ff1683604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836005811115610d5857fe5b60ff168152602001828152602001935050505060405180910390a1505050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ddb57600080fd5b620186a08210151515610ded57600080fd5b8160068190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5857600080fd5b600081111515610e6757600080fd5b8060078190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecc57600080fd5b6003600b60006101000a81548160ff02191690836005811115610eeb57fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff1660405180826005811115610f3157fe5b60ff16815260200191505060405180910390a160003073ffffffffffffffffffffffffffffffffffffffff16311115610f8557610f843073ffffffffffffffffffffffffffffffffffffffff16316121bf565b5b565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe557600080fd5b60046005811115610ff257fe5b600b60009054906101000a900460ff16600581111561100d57fe5b14151561101957600080fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905060008111151561106d57600080fd5b60001515600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1615151415156110cf57600080fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111f757600080fd5b6102c65a03f1151561120857600080fd5b50505060405180519050507f388b9f37b6cbb3a30ba34c69072e43e77eb3714381366d456e84dcd1430968678382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600191505092915050565b6000600554600654830281151561129c57fe5b049050809050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561130257600080fd5b6001600b60006101000a81548160ff0219169083600581111561132157fe5b021790555061132f81610d7e565b507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561137157fe5b60ff16815260200191505060405180910390a150565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ea57600080fd5b6005600b60006101000a81548160ff0219169083600581111561140957fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561144f57fe5b60ff16815260200191505060405180910390a161146a611952565b9050611475816122d1565b60008111156115f857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561154b57600080fd5b6102c65a03f1151561155c57600080fd5b50505060405180519050507f8a1bda63f5f60920a84caac25ec9eb9f26a6c01e1682229db0268c5a5c92453482600b60009054906101000a900460ff1683604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360058111156115dc57fe5b60ff168152602001828152602001935050505060405180910390a15b5050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080611636856122ef565b151561164157600080fd5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015493509350935093509193509193565b6000600354905090565b60006012600a0a600654830281151561178857fe5b049050919050565b6000600a80549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117f857600080fd5b6004600b60006101000a81548160ff0219169083600581111561181757fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561185d57fe5b60ff16815260200191505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118cd57600080fd5b8060058111156118d957fe5b600b60006101000a81548160ff021916908360058111156118f657fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561193c57fe5b60ff16815260200191505060405180910390a150565b600060035460025403905090565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119be57600080fd5b600460058111156119cb57fe5b600b60009054906101000a900460ff1660058111156119e657fe5b1415156119f257600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081111515611a4657600080fd5b60001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515141515611aa857600080fd5b6001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bd057600080fd5b6102c65a03f11515611be157600080fd5b50505060405180519050507f388b9f37b6cbb3a30ba34c69072e43e77eb3714381366d456e84dcd1430968678382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001915050919050565b600b60009054906101000a900460ff1681565b60035481565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cdb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611d1757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3357600080fd5b600083111515611e4257600080fd5b601260ff16600a0a83029050611e56611952565b81101515611e6357600080fd5b611e6f84600083611f6e565b611e78816122d1565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff370ff51765588b4b12b4ccf319b865dd3499a57df818acfe82c2740e41c878d600084604051808381526020018281526020019250505060405180910390a3600191505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f66600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015483016123ba565b905092915050565b611f77836122ef565b1515612029576001600a8054806001018281611f93919061242e565b9160005260206000209001600086909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055505b61207e81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546123d090919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061211982600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546123d090919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550505050565b600080600060088054905011156122cc5760016121e06008805490506123f1565b0391506008828154811015156121f257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050151561226057600080fd5b7f35c019e24e057e2b74358b61c59c75be70dc488b1c5f97fd5b9dfe58f6df04e88184604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b505050565b6122e6816003546123d090919063ffffffff16565b60038190555050565b600080600a80549050141561230757600090506123b5565b8173ffffffffffffffffffffffffffffffffffffffff16600a600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015481548110151561236f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505b919050565b60006004546123c883611773565b109050919050565b60008082840190508381101515156123e757600080fd5b8091505092915050565b6000600182600143034060405180826000191660001916815260200191505060405180910390206001900481151561242557fe5b06019050919050565b81548183558181151161245557818360005260206000209182019101612454919061245a565b5b505050565b61247c91905b80821115612478576000816000905550600101612460565b5090565b905600a165627a7a72305820f0f35fa61d76143be553ce4f4fe922e18e9ecdb73017b4b62d4493f816f4fe630029000000000000000000000000fb2f26f266fb2805a387230f2aa0a331b4d96fba0000000000000000000000000000000000000000000000000000000002faf080
Deployed Bytecode
0x606060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630276650b146101c657806308d9a77b146101ef5780631ccea71b146102405780633d1e215d146102a35780633de39c11146102fb5780633f6f7ed614610324578063481463411461035f57806358a687ec14610382578063616d1fab1461039757806371aa60fd1461040757806374817d9b1461043e5780637824407f14610461578063794913701461048a5780637ff9b596146104c35780638da5cb5b146104ec5780638f35a75e1461054157806391667aef146105a7578063946d1480146105d0578063960524e3146106075780639640639114610630578063a9e966b714610645578063aaa5ad6114610668578063b1d17c9814610691578063c19d93fb146106e2578063cc4d819c14610719578063d2d93f9014610742578063f2fde38b1461076b578063f54e7a40146107a4578063fc0c546a146107fe575b6000341415151561018557600080fd5b6001600581111561019257fe5b600b60009054906101000a900460ff1660058111156101ad57fe5b1415156101b957600080fd5b6101c33334610853565b50005b34156101d157600080fd5b6101d9610942565b6040518082815260200191505060405180910390f35b34156101fa57600080fd5b610226600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610948565b604051808215151515815260200191505060405180910390f35b341561024b57600080fd5b6102616004808035906020019091905050610a4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102ae57600080fd5b6102f9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a8c565b005b341561030657600080fd5b61030e610d78565b6040518082815260200191505060405180910390f35b341561032f57600080fd5b6103456004808035906020019091905050610d7e565b604051808215151515815260200191505060405180910390f35b341561036a57600080fd5b6103806004808035906020019091905050610dfd565b005b341561038d57600080fd5b610395610e71565b005b34156103a257600080fd5b6103ed600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f87565b604051808215151515815260200191505060405180910390f35b341561041257600080fd5b6104286004808035906020019091905050611289565b6040518082815260200191505060405180910390f35b341561044957600080fd5b61045f60048080359060200190919050506112a7565b005b341561046c57600080fd5b610474611387565b6040518082815260200191505060405180910390f35b341561049557600080fd5b6104c1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061138d565b005b34156104ce57600080fd5b6104d66115fc565b6040518082815260200191505060405180910390f35b34156104f757600080fd5b6104ff611602565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054c57600080fd5b610578600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611627565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34156105b257600080fd5b6105ba611769565b6040518082815260200191505060405180910390f35b34156105db57600080fd5b6105f16004808035906020019091905050611773565b6040518082815260200191505060405180910390f35b341561061257600080fd5b61061a611790565b6040518082815260200191505060405180910390f35b341561063b57600080fd5b61064361179d565b005b341561065057600080fd5b6106666004808035906020019091905050611872565b005b341561067357600080fd5b61067b611952565b6040518082815260200191505060405180910390f35b341561069c57600080fd5b6106c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611960565b604051808215151515815260200191505060405180910390f35b34156106ed57600080fd5b6106f5611c61565b6040518082600581111561070557fe5b60ff16815260200191505060405180910390f35b341561072457600080fd5b61072c611c74565b6040518082815260200191505060405180910390f35b341561074d57600080fd5b610755611c7a565b6040518082815260200191505060405180910390f35b341561077657600080fd5b6107a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c80565b005b34156107af57600080fd5b6107e4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611dd5565b604051808215151515815260200191505060405180910390f35b341561080957600080fd5b610811611ef1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806007543a1115151561086757600080fd5b6108718484611f17565b151561087c57600080fd5b61088583611289565b90506000811415151561089757600080fd5b61089f611952565b81111515156108ad57600080fd5b6108b8848483611f6e565b6108c1836121bf565b6108ca816122d1565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff370ff51765588b4b12b4ccf319b865dd3499a57df818acfe82c2740e41c878d8584604051808381526020018281526020019250505060405180910390a3600191505092915050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109a557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156109e157600080fd5b600880548060010182816109f5919061242e565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060019050919050565b600881815481101515610a5c57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ae957600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081111515610b3d57600080fd5b60001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515141515610b9f57600080fd5b6001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cc757600080fd5b6102c65a03f11515610cd857600080fd5b50505060405180519050507f8a1bda63f5f60920a84caac25ec9eb9f26a6c01e1682229db0268c5a5c92453482600b60009054906101000a900460ff1683604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836005811115610d5857fe5b60ff168152602001828152602001935050505060405180910390a1505050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ddb57600080fd5b620186a08210151515610ded57600080fd5b8160068190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5857600080fd5b600081111515610e6757600080fd5b8060078190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecc57600080fd5b6003600b60006101000a81548160ff02191690836005811115610eeb57fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff1660405180826005811115610f3157fe5b60ff16815260200191505060405180910390a160003073ffffffffffffffffffffffffffffffffffffffff16311115610f8557610f843073ffffffffffffffffffffffffffffffffffffffff16316121bf565b5b565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe557600080fd5b60046005811115610ff257fe5b600b60009054906101000a900460ff16600581111561100d57fe5b14151561101957600080fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905060008111151561106d57600080fd5b60001515600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1615151415156110cf57600080fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111f757600080fd5b6102c65a03f1151561120857600080fd5b50505060405180519050507f388b9f37b6cbb3a30ba34c69072e43e77eb3714381366d456e84dcd1430968678382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600191505092915050565b6000600554600654830281151561129c57fe5b049050809050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561130257600080fd5b6001600b60006101000a81548160ff0219169083600581111561132157fe5b021790555061132f81610d7e565b507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561137157fe5b60ff16815260200191505060405180910390a150565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ea57600080fd5b6005600b60006101000a81548160ff0219169083600581111561140957fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561144f57fe5b60ff16815260200191505060405180910390a161146a611952565b9050611475816122d1565b60008111156115f857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561154b57600080fd5b6102c65a03f1151561155c57600080fd5b50505060405180519050507f8a1bda63f5f60920a84caac25ec9eb9f26a6c01e1682229db0268c5a5c92453482600b60009054906101000a900460ff1683604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360058111156115dc57fe5b60ff168152602001828152602001935050505060405180910390a15b5050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080611636856122ef565b151561164157600080fd5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015493509350935093509193509193565b6000600354905090565b60006012600a0a600654830281151561178857fe5b049050919050565b6000600a80549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117f857600080fd5b6004600b60006101000a81548160ff0219169083600581111561181757fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561185d57fe5b60ff16815260200191505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118cd57600080fd5b8060058111156118d957fe5b600b60006101000a81548160ff021916908360058111156118f657fe5b02179055507fc33408924c47a75c436c6caca09732b718f7c974a19cebe04dc816a990d0c174600b60009054906101000a900460ff166040518082600581111561193c57fe5b60ff16815260200191505060405180910390a150565b600060035460025403905090565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119be57600080fd5b600460058111156119cb57fe5b600b60009054906101000a900460ff1660058111156119e657fe5b1415156119f257600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081111515611a4657600080fd5b60001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515141515611aa857600080fd5b6001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bd057600080fd5b6102c65a03f11515611be157600080fd5b50505060405180519050507f388b9f37b6cbb3a30ba34c69072e43e77eb3714381366d456e84dcd1430968678382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001915050919050565b600b60009054906101000a900460ff1681565b60035481565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cdb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611d1757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3357600080fd5b600083111515611e4257600080fd5b601260ff16600a0a83029050611e56611952565b81101515611e6357600080fd5b611e6f84600083611f6e565b611e78816122d1565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff370ff51765588b4b12b4ccf319b865dd3499a57df818acfe82c2740e41c878d600084604051808381526020018281526020019250505060405180910390a3600191505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f66600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015483016123ba565b905092915050565b611f77836122ef565b1515612029576001600a8054806001018281611f93919061242e565b9160005260206000209001600086909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055505b61207e81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546123d090919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061211982600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546123d090919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff021916908315150217905550505050565b600080600060088054905011156122cc5760016121e06008805490506123f1565b0391506008828154811015156121f257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050151561226057600080fd5b7f35c019e24e057e2b74358b61c59c75be70dc488b1c5f97fd5b9dfe58f6df04e88184604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b505050565b6122e6816003546123d090919063ffffffff16565b60038190555050565b600080600a80549050141561230757600090506123b5565b8173ffffffffffffffffffffffffffffffffffffffff16600a600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015481548110151561236f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505b919050565b60006004546123c883611773565b109050919050565b60008082840190508381101515156123e757600080fd5b8091505092915050565b6000600182600143034060405180826000191660001916815260200191505060405180910390206001900481151561242557fe5b06019050919050565b81548183558181151161245557818360005260206000209182019101612454919061245a565b5b505050565b61247c91905b80821115612478576000816000905550600101612460565b5090565b905600a165627a7a72305820f0f35fa61d76143be553ce4f4fe922e18e9ecdb73017b4b62d4493f816f4fe630029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fb2f26f266fb2805a387230f2aa0a331b4d96fba0000000000000000000000000000000000000000000000000000000002faf080
-----Decoded View---------------
Arg [0] : _token (address): 0xFb2f26F266Fb2805a387230f2aa0a331b4d96Fba
Arg [1] : _tokenSupply (uint256): 50000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000fb2f26f266fb2805a387230f2aa0a331b4d96fba
Arg [1] : 0000000000000000000000000000000000000000000000000000000002faf080
Swarm Source
bzzr://f0f35fa61d76143be553ce4f4fe922e18e9ecdb73017b4b62d4493f816f4fe63
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.01109 | 14,051.8764 | $155.83 |
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.