More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,566 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Refund | 5840562 | 2279 days ago | IN | 0 ETH | 0.00133578 | ||||
Refund | 5686392 | 2306 days ago | IN | 0 ETH | 0.00026064 | ||||
Refund | 5686376 | 2306 days ago | IN | 0 ETH | 0.00026064 | ||||
Refund | 5686325 | 2306 days ago | IN | 0 ETH | 0.00026064 | ||||
Refund | 5686262 | 2306 days ago | IN | 0 ETH | 0.00026064 | ||||
Refund | 5686203 | 2306 days ago | IN | 0 ETH | 0.00040761 | ||||
Refund | 5685398 | 2307 days ago | IN | 0 ETH | 0.00041787 | ||||
Transfer | 5635081 | 2315 days ago | IN | 0.051 ETH | 0.00169125 | ||||
Add To White Lis... | 5629255 | 2317 days ago | IN | 0 ETH | 0.00048083 | ||||
Add To White Lis... | 5629254 | 2317 days ago | IN | 0 ETH | 0.00048083 | ||||
Add To White Lis... | 5629252 | 2317 days ago | IN | 0 ETH | 0.00048083 | ||||
Add To White Lis... | 5629249 | 2317 days ago | IN | 0 ETH | 0.00043648 | ||||
Add To White Lis... | 5629234 | 2317 days ago | IN | 0 ETH | 0.00043712 | ||||
Add To White Lis... | 5629224 | 2317 days ago | IN | 0 ETH | 0.00048083 | ||||
Add To White Lis... | 5629221 | 2317 days ago | IN | 0 ETH | 0.00048083 | ||||
Add To White Lis... | 5629219 | 2317 days ago | IN | 0 ETH | 0.00043712 | ||||
Add To White Lis... | 5629202 | 2317 days ago | IN | 0 ETH | 0.00052454 | ||||
Add To White Lis... | 5629197 | 2317 days ago | IN | 0 ETH | 0.00044084 | ||||
Add To White Lis... | 5629189 | 2317 days ago | IN | 0 ETH | 0.00044149 | ||||
Add To White Lis... | 5629185 | 2317 days ago | IN | 0 ETH | 0.00044149 | ||||
Add To White Lis... | 5629183 | 2317 days ago | IN | 0 ETH | 0.00044149 | ||||
Add To White Lis... | 5629177 | 2317 days ago | IN | 0 ETH | 0.00043712 | ||||
Add To White Lis... | 5629166 | 2317 days ago | IN | 0 ETH | 0.00043712 | ||||
Add To White Lis... | 5629163 | 2317 days ago | IN | 0 ETH | 0.00043712 | ||||
Add To White Lis... | 5629160 | 2317 days ago | IN | 0 ETH | 0.00043712 |
Latest 7 internal transactions
Advanced mode:
Loading...
Loading
Contract Name:
Crowdsale
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-26 */ pragma solidity ^0.4.13; library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ 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; } /** * @dev Integer division of two numbers, truncating the quotient. */ 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; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract ERC20Basic { function totalSupply() public view returns (uint256); 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); } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @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); emit 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]; } } 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); } contract HasManager { address public manager; modifier onlyManager { require(msg.sender == manager); _; } function transferManager(address _newManager) public onlyManager() { require(_newManager != address(0)); manager = _newManager; } } 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)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract Whitelist is Ownable { mapping(address => bool) public whitelist; address public whitelistManager; function AddToWhiteList(address _addr) public { require(msg.sender == whitelistManager || msg.sender == owner); whitelist[_addr] = true; } function AssignWhitelistManager(address _addr) public onlyOwner { whitelistManager = _addr; } modifier whitelistedOnly { require(whitelist[msg.sender]); _; } } contract WithBonusPeriods is Ownable { uint256 constant INVALID_FROM_TIMESTAMP = 1000000000000; uint256 constant INFINITY_TO_TIMESTAMP= 1000000000000; struct BonusPeriod { uint256 fromTimestamp; uint256 toTimestamp; uint256 bonusNumerator; uint256 bonusDenominator; } BonusPeriod[] public bonusPeriods; BonusPeriod currentBonusPeriod; function WithBonusPeriods() public { initBonuses(); } function BonusPeriodsCount() public view returns (uint8) { return uint8(bonusPeriods.length); } //find out bonus for specific timestamp function BonusPeriodFor(uint256 timestamp) public view returns (bool ongoing, uint256 from, uint256 to, uint256 num, uint256 den) { for(uint i = 0; i < bonusPeriods.length; i++) if (bonusPeriods[i].fromTimestamp <= timestamp && bonusPeriods[i].toTimestamp >= timestamp) return (true, bonusPeriods[i].fromTimestamp, bonusPeriods[i].toTimestamp, bonusPeriods[i].bonusNumerator, bonusPeriods[i].bonusDenominator); return (false, 0, 0, 0, 0); } function initBonusPeriod(uint256 from, uint256 to, uint256 num, uint256 den) internal { bonusPeriods.push(BonusPeriod(from, to, num, den)); } function initBonuses() internal { //1-7 May, 20% initBonusPeriod(1525132800, 1525737599, 20, 100); //8-14 May, 15% initBonusPeriod(1525737600, 1526342399, 15, 100); //15 -21 May, 10% initBonusPeriod(1526342400, 1526947199, 10, 100); //22 -28 May, 5% initBonusPeriod(1526947200, 1527551999, 5, 100); } function updateCurrentBonusPeriod() internal { if (currentBonusPeriod.fromTimestamp <= block.timestamp && currentBonusPeriod.toTimestamp >= block.timestamp) return; currentBonusPeriod.fromTimestamp = INVALID_FROM_TIMESTAMP; for(uint i = 0; i < bonusPeriods.length; i++) if (bonusPeriods[i].fromTimestamp <= block.timestamp && bonusPeriods[i].toTimestamp >= block.timestamp) { currentBonusPeriod = bonusPeriods[i]; return; } } } contract ICrowdsaleProcessor is Ownable, HasManager { modifier whenCrowdsaleAlive() { require(isActive()); _; } modifier whenCrowdsaleFailed() { require(isFailed()); _; } modifier whenCrowdsaleSuccessful() { require(isSuccessful()); _; } modifier hasntStopped() { require(!stopped); _; } modifier hasBeenStopped() { require(stopped); _; } modifier hasntStarted() { require(!started); _; } modifier hasBeenStarted() { require(started); _; } // Minimal acceptable hard cap uint256 constant public MIN_HARD_CAP = 1 ether; // Minimal acceptable duration of crowdsale uint256 constant public MIN_CROWDSALE_TIME = 3 days; // Maximal acceptable duration of crowdsale uint256 constant public MAX_CROWDSALE_TIME = 50 days; // Becomes true when timeframe is assigned bool public started; // Becomes true if cancelled by owner bool public stopped; // Total collected Ethereum: must be updated every time tokens has been sold uint256 public totalCollected; // Total amount of project's token sold: must be updated every time tokens has been sold uint256 public totalSold; // Crowdsale minimal goal, must be greater or equal to Forecasting min amount uint256 public minimalGoal; // Crowdsale hard cap, must be less or equal to Forecasting max amount uint256 public hardCap; // Crowdsale duration in seconds. // Accepted range is MIN_CROWDSALE_TIME..MAX_CROWDSALE_TIME. uint256 public duration; // Start timestamp of crowdsale, absolute UTC time uint256 public startTimestamp; // End timestamp of crowdsale, absolute UTC time uint256 public endTimestamp; // Allows to transfer some ETH into the contract without selling tokens function deposit() public payable {} // Returns address of crowdsale token, must be ERC20 compilant function getToken() public returns(address); // Transfers ETH rewards amount (if ETH rewards is configured) to Forecasting contract function mintETHRewards(address _contract, uint256 _amount) public onlyManager(); // Mints token Rewards to Forecasting contract function mintTokenRewards(address _contract, uint256 _amount) public onlyManager(); // Releases tokens (transfers crowdsale token from mintable to transferrable state) function releaseTokens() public onlyManager() hasntStopped() whenCrowdsaleSuccessful(); // Stops crowdsale. Called by CrowdsaleController, the latter is called by owner. // Crowdsale may be stopped any time before it finishes. function stop() public onlyManager() hasntStopped(); // Validates parameters and starts crowdsale function start(uint256 _startTimestamp, uint256 _endTimestamp, address _fundingAddress) public onlyManager() hasntStarted() hasntStopped(); // Is crowdsale failed (completed, but minimal goal wasn't reached) function isFailed() public constant returns (bool); // Is crowdsale active (i.e. the token can be sold) function isActive() public constant returns (bool); // Is crowdsale completed successfully function isSuccessful() public constant returns (bool); } 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); emit 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; emit 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]; } /** * @dev Increase the amount of tokens that an owner allowed to a 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 * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ 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); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract Crowdsaled is Ownable { address public crowdsaleContract = address(0); function Crowdsaled() public { } modifier onlyCrowdsale{ require(msg.sender == crowdsaleContract); _; } modifier onlyCrowdsaleOrOwner { require((msg.sender == crowdsaleContract) || (msg.sender == owner)); _; } function setCrowdsale(address crowdsale) public onlyOwner() { crowdsaleContract = crowdsale; } } contract LetItPlayToken is Crowdsaled, StandardToken { uint256 public totalSupply; string public name; string public symbol; uint8 public decimals; address public forSale; address public preSale; address public ecoSystemFund; address public founders; address public team; address public advisers; address public bounty; address public eosShareDrop; bool releasedForTransfer; uint256 private shift; //initial coin distribution function LetItPlayToken( address _forSale, address _ecoSystemFund, address _founders, address _team, address _advisers, address _bounty, address _preSale, address _eosShareDrop ) public { name = "LetItPlay Token"; symbol = "PLAY"; decimals = 8; shift = uint256(10)**decimals; totalSupply = 1000000000 * shift; forSale = _forSale; ecoSystemFund = _ecoSystemFund; founders = _founders; team = _team; advisers = _advisers; bounty = _bounty; eosShareDrop = _eosShareDrop; preSale = _preSale; balances[forSale] = totalSupply * 59 / 100; balances[ecoSystemFund] = totalSupply * 15 / 100; balances[founders] = totalSupply * 15 / 100; balances[team] = totalSupply * 5 / 100; balances[advisers] = totalSupply * 3 / 100; balances[bounty] = totalSupply * 1 / 100; balances[preSale] = totalSupply * 1 / 100; balances[eosShareDrop] = totalSupply * 1 / 100; } function transferByOwner(address from, address to, uint256 value) public onlyOwner { require(balances[from] >= value); balances[from] = balances[from].sub(value); balances[to] = balances[to].add(value); emit Transfer(from, to, value); } //can be called by crowdsale before token release, control over forSale portion of token supply function transferByCrowdsale(address to, uint256 value) public onlyCrowdsale { require(balances[forSale] >= value); balances[forSale] = balances[forSale].sub(value); balances[to] = balances[to].add(value); emit Transfer(forSale, to, value); } //can be called by crowdsale before token release, allowences is respected here function transferFromByCrowdsale(address _from, address _to, uint256 _value) public onlyCrowdsale returns (bool) { return super.transferFrom(_from, _to, _value); } //after the call token is available for exchange function releaseForTransfer() public onlyCrowdsaleOrOwner { require(!releasedForTransfer); releasedForTransfer = true; } //forbid transfer before release function transfer(address _to, uint256 _value) public returns (bool) { require(releasedForTransfer); return super.transfer(_to, _value); } //forbid transfer before release function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(releasedForTransfer); return super.transferFrom(_from, _to, _value); } function burn(uint256 value) public onlyOwner { require(value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(value); balances[address(0)] = balances[address(0)].add(value); emit Transfer(msg.sender, address(0), value); } } contract BasicCrowdsale is ICrowdsaleProcessor { event CROWDSALE_START(uint256 startTimestamp, uint256 endTimestamp, address fundingAddress); // Where to transfer collected ETH address public fundingAddress; // Ctor. function BasicCrowdsale( address _owner, address _manager ) public { owner = _owner; manager = _manager; } // called by CrowdsaleController to transfer reward part of ETH // collected by successful crowdsale to Forecasting contract. // This call is made upon closing successful crowdfunding process // iff agreed ETH reward part is not zero function mintETHRewards( address _contract, // Forecasting contract uint256 _amount // agreed part of totalCollected which is intended for rewards ) public onlyManager() // manager is CrowdsaleController instance { require(_contract.call.value(_amount)()); } // cancels crowdsale function stop() public onlyManager() hasntStopped() { // we can stop only not started and not completed crowdsale if (started) { require(!isFailed()); require(!isSuccessful()); } stopped = true; } // called by CrowdsaleController to setup start and end time of crowdfunding process // as well as funding address (where to transfer ETH upon successful crowdsale) function start( uint256 _startTimestamp, uint256 _endTimestamp, address _fundingAddress ) public onlyManager() // manager is CrowdsaleController instance hasntStarted() // not yet started hasntStopped() // crowdsale wasn't cancelled { require(_fundingAddress != address(0)); // start time must not be earlier than current time require(_startTimestamp >= block.timestamp); // range must be sane require(_endTimestamp > _startTimestamp); duration = _endTimestamp - _startTimestamp; // duration must fit constraints require(duration >= MIN_CROWDSALE_TIME && duration <= MAX_CROWDSALE_TIME); startTimestamp = _startTimestamp; endTimestamp = _endTimestamp; fundingAddress = _fundingAddress; // now crowdsale is considered started, even if the current time is before startTimestamp started = true; emit CROWDSALE_START(_startTimestamp, _endTimestamp, _fundingAddress); } // must return true if crowdsale is over, but it failed function isFailed() public constant returns(bool) { return ( // it was started started && // crowdsale period has finished block.timestamp >= endTimestamp && // but collected ETH is below the required minimum totalCollected < minimalGoal ); } // must return true if crowdsale is active (i.e. the token can be bought) function isActive() public constant returns(bool) { return ( // it was started started && // hard cap wasn't reached yet totalCollected < hardCap && // and current time is within the crowdfunding period block.timestamp >= startTimestamp && block.timestamp < endTimestamp ); } // must return true if crowdsale completed successfully function isSuccessful() public constant returns(bool) { return ( // either the hard cap is collected totalCollected >= hardCap || // ...or the crowdfunding period is over, but the minimum has been reached (block.timestamp >= endTimestamp && totalCollected >= minimalGoal) ); } } contract Crowdsale is BasicCrowdsale, Whitelist, WithBonusPeriods { struct Investor { uint256 weiDonated; uint256 tokensGiven; } mapping(address => Investor) participants; uint256 public tokenRateWei; LetItPlayToken public token; // Ctor. MinimalGoal, hardCap, and price are not changeable. function Crowdsale( uint256 _minimalGoal, uint256 _hardCap, uint256 _tokenRateWei, address _token ) public // simplest case where manager==owner. See onlyOwner() and onlyManager() modifiers // before functions to figure out the cases in which those addresses should differ BasicCrowdsale(msg.sender, msg.sender) { // just setup them once... minimalGoal = _minimalGoal; hardCap = _hardCap; tokenRateWei = _tokenRateWei; token = LetItPlayToken(_token); } // Here goes ICrowdsaleProcessor implementation // returns address of crowdsale token. The token must be ERC20-compliant function getToken() public returns(address) { return address(token); } // called by CrowdsaleController to transfer reward part of // tokens sold by successful crowdsale to Forecasting contract. // This call is made upon closing successful crowdfunding process. function mintTokenRewards( address _contract, // Forecasting contract uint256 _amount // agreed part of totalSold which is intended for rewards ) public onlyManager() // manager is CrowdsaleController instance { // crowdsale token is mintable in this example, tokens are created here token.transferByCrowdsale(_contract, _amount); } // transfers crowdsale token from mintable to transferrable state function releaseTokens() public onlyManager() // manager is CrowdsaleController instance hasntStopped() // crowdsale wasn't cancelled whenCrowdsaleSuccessful() // crowdsale was successful { // see token example token.releaseForTransfer(); } function () payable public { require(msg.value > 0); sellTokens(msg.sender, msg.value); } function sellTokens(address _recepient, uint256 _value) internal hasBeenStarted() hasntStopped() whenCrowdsaleAlive() whitelistedOnly() { uint256 newTotalCollected = totalCollected + _value; if (hardCap < newTotalCollected) { uint256 refund = newTotalCollected - hardCap; uint256 diff = _value - refund; _recepient.transfer(refund); _value = diff; } uint256 tokensSold = _value * uint256(10)**token.decimals() / tokenRateWei; //apply bonus period updateCurrentBonusPeriod(); if (currentBonusPeriod.fromTimestamp != INVALID_FROM_TIMESTAMP) tokensSold += tokensSold * currentBonusPeriod.bonusNumerator / currentBonusPeriod.bonusDenominator; token.transferByCrowdsale(_recepient, tokensSold); participants[_recepient].weiDonated += _value; participants[_recepient].tokensGiven += tokensSold; totalCollected += _value; totalSold += tokensSold; } // project's owner withdraws ETH funds to the funding address upon successful crowdsale function withdraw(uint256 _amount) public // can be done partially onlyOwner() // project's owner hasntStopped() // crowdsale wasn't cancelled whenCrowdsaleSuccessful() // crowdsale completed successfully { require(_amount <= address(this).balance); fundingAddress.transfer(_amount); } // backers refund their ETH if the crowdsale was cancelled or has failed function refund() public { // either cancelled or failed require(stopped || isFailed()); uint256 weiDonated = participants[msg.sender].weiDonated; uint256 tokens = participants[msg.sender].tokensGiven; // prevent from doing it twice require(weiDonated > 0); participants[msg.sender].weiDonated = 0; participants[msg.sender].tokensGiven = 0; msg.sender.transfer(weiDonated); //this must be approved by investor token.transferFromByCrowdsale(msg.sender, token.forSale(), tokens); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"duration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_CROWDSALE_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"AddToWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contract","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mintETHRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"started","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelistManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BonusPeriodsCount","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minimalGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_CROWDSALE_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"timestamp","type":"uint256"}],"name":"BonusPeriodFor","outputs":[{"name":"ongoing","type":"bool"},{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"num","type":"uint256"},{"name":"den","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"AssignWhitelistManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTimestamp","type":"uint256"},{"name":"_endTimestamp","type":"uint256"},{"name":"_fundingAddress","type":"address"}],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contract","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mintTokenRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newManager","type":"address"}],"name":"transferManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"fundingAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenRateWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"bonusPeriods","outputs":[{"name":"fromTimestamp","type":"uint256"},{"name":"toTimestamp","type":"uint256"},{"name":"bonusNumerator","type":"uint256"},{"name":"bonusDenominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isSuccessful","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFailed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_minimalGoal","type":"uint256"},{"name":"_hardCap","type":"uint256"},{"name":"_tokenRateWei","type":"uint256"},{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"startTimestamp","type":"uint256"},{"indexed":false,"name":"endTimestamp","type":"uint256"},{"indexed":false,"name":"fundingAddress","type":"address"}],"name":"CROWDSALE_START","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b604051608080620015dc8339810160405280805191906020018051919060200180519190602001805160008054600160a060020a033316600160a060020a0319918216811782168117909255600180549091169091179055915062000084905064010000000062001250620000b882021704565b60049390935560059190915560125560138054600160a060020a031916600160a060020a0390921691909117905562000233565b620000de635ae7ae00635af0e87f60146064640100000000620012a46200015282021704565b62000104635af0e880635afa22ff600f6064640100000000620012a46200015282021704565b6200012a635afa2300635b035d7f600a6064640100000000620012a46200015282021704565b62000150635b035d80635b0c97ff60056064640100000000620012a46200015282021704565b565b600c805460018101620001668382620001c7565b9160005260206000209060040201600060806040519081016040908152888252602082018890528101869052606081018590529190508151815560208201518160010155604082015181600201556060820151816003015550505050505050565b815481835581811511620001f657600402816004028360005260206000209182019101620001f69190620001fb565b505050565b6200023091905b808211156200022c5760008082556001820181905560028201819055600382015560040162000202565b5090565b90565b61139980620002436000396000f3006060604052600436106101be5763ffffffff60e060020a60003504166307da68f581146101d75780630fb5a6b4146101ea5780631510ca791461020f578063162201881461022257806318c9ef97146102415780631f2698ab1461026357806321df0da71461028a57806322f3e2d4146102b957806326563b40146102cc5780632e1a7d4d146102df57806336bf094b146102f5578063481c6a751461031e578063590e1ae3146103315780636385cbbe146103445780637234ba0c1461035757806375f12b211461036a57806376ddfc391461037d57806382cee91c146103905780638da5cb5b146103d95780638dc95182146103ec5780639106d7ba1461040b5780639b19251a1461041e578063a51fe1131461043d578063a85adeab14610462578063a96f866814610475578063b23c1f1914610488578063ba0e930a146104aa578063d0e30db0146104c9578063d3b7bfb4146104d1578063d5ee739d146104e4578063e29eb836146104f7578063e6fd48bc1461050a578063e9fdfb891461051d578063ec4cd0cf1461055e578063f2fde38b14610571578063f416334014610590578063fb86a404146105a3578063fc0c546a146105b6575b600034116101cb57600080fd5b6101d533346105c9565b005b34156101e257600080fd5b6101d56107ca565b34156101f557600080fd5b6101fd610859565b60405190815260200160405180910390f35b341561021a57600080fd5b6101fd61085f565b341561022d57600080fd5b6101d5600160a060020a0360043516610866565b341561024c57600080fd5b6101d5600160a060020a03600435166024356108c0565b341561026e57600080fd5b610276610909565b604051901515815260200160405180910390f35b341561029557600080fd5b61029d610919565b604051600160a060020a03909116815260200160405180910390f35b34156102c457600080fd5b610276610929565b34156102d757600080fd5b61029d610968565b34156102ea57600080fd5b6101d5600435610977565b341561030057600080fd5b610308610a09565b60405160ff909116815260200160405180910390f35b341561032957600080fd5b61029d610a0f565b341561033c57600080fd5b6101d5610a1e565b341561034f57600080fd5b6101fd610b8a565b341561036257600080fd5b6101fd610b90565b341561037557600080fd5b610276610b97565b341561038857600080fd5b6101fd610ba7565b341561039b57600080fd5b6103a6600435610bb3565b604051941515855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b34156103e457600080fd5b61029d610cd2565b34156103f757600080fd5b6101d5600160a060020a0360043516610ce1565b341561041657600080fd5b6101fd610d2b565b341561042957600080fd5b610276600160a060020a0360043516610d31565b341561044857600080fd5b6101d5600435602435600160a060020a0360443516610d46565b341561046d57600080fd5b6101fd610e95565b341561048057600080fd5b6101d5610e9b565b341561049357600080fd5b6101d5600160a060020a0360043516602435610f31565b34156104b557600080fd5b6101d5600160a060020a0360043516610fb6565b6101d5611015565b34156104dc57600080fd5b61029d611017565b34156104ef57600080fd5b6101fd611026565b341561050257600080fd5b6101fd61102c565b341561051557600080fd5b6101fd611032565b341561052857600080fd5b610533600435611038565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b341561056957600080fd5b610276611070565b341561057c57600080fd5b6101d5600160a060020a0360043516611099565b341561059b57600080fd5b610276611134565b34156105ae57600080fd5b6101fd611164565b34156105c157600080fd5b61029d61116a565b600080600080600160149054906101000a900460ff1615156105ea57600080fd5b60015460a860020a900460ff161561060157600080fd5b610609610929565b151561061457600080fd5b600160a060020a0333166000908152600a602052604090205460ff16151561063b57600080fd5b8460025401935083600554101561068d57600554840392508285039150600160a060020a03861683156108fc0284604051600060405180830381858888f19350505050151561068957600080fd5b8194505b601254601354600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156106cf57600080fd5b5af115156106dc57600080fd5b5050506040518051905060ff16600a0a86028115156106f757fe5b049050610702611179565b600d5464e8d4a510001461072457601054600f54820281151561072157fe5b04015b601354600160a060020a031663dbbbe8df878360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561077a57600080fd5b5af1151561078757600080fd5b505050600160a060020a03909516600090815260116020526040902080548501815560010180548601905550506002805490920190915550600380549091019055565b60015433600160a060020a039081169116146107e557600080fd5b60015460a860020a900460ff16156107fc57600080fd5b60015460a060020a900460ff161561083257610816611134565b1561082057600080fd5b610828611070565b1561083257600080fd5b6001805475ff000000000000000000000000000000000000000000191660a860020a179055565b60065481565b6241eb0081565b600b5433600160a060020a0390811691161480610891575060005433600160a060020a039081169116145b151561089c57600080fd5b600160a060020a03166000908152600a60205260409020805460ff19166001179055565b60015433600160a060020a039081169116146108db57600080fd5b81600160a060020a03168160405160006040518083038185875af192505050151561090557600080fd5b5050565b60015460a060020a900460ff1681565b601354600160a060020a03165b90565b60015460009060a060020a900460ff1680156109485750600554600254105b801561095657506007544210155b8015610963575060085442105b905090565b600b54600160a060020a031681565b60005433600160a060020a0390811691161461099257600080fd5b60015460a860020a900460ff16156109a957600080fd5b6109b1611070565b15156109bc57600080fd5b600160a060020a033016318111156109d357600080fd5b600954600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610a0657600080fd5b50565b600c5490565b600154600160a060020a031681565b600154600090819060a860020a900460ff1680610a3e5750610a3e611134565b1515610a4957600080fd5b5050600160a060020a0333166000908152601160205260408120805460019091015490918211610a7857600080fd5b600160a060020a0333166000818152601160205260408082208281556001019190915583156108fc0290849051600060405180830381858888f193505050501515610ac257600080fd5b601354600160a060020a03166354517ddf338263466ccac06040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b0857600080fd5b5af11515610b1557600080fd5b505050604051805190508460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610b6f57600080fd5b5af11515610b7c57600080fd5b505050604051805150505050565b60045481565b6203f48081565b60015460a860020a900460ff1681565b670de0b6b3a764000081565b600080808080805b600c54811015610cb75786600c82815481101515610bd557fe5b90600052602060002090600402016000015411158015610c15575086600c82815481101515610c0057fe5b90600052602060002090600402016001015410155b15610caf576001600c82815481101515610c2b57fe5b906000526020600020906004020160000154600c83815481101515610c4c57fe5b906000526020600020906004020160010154600c84815481101515610c6d57fe5b906000526020600020906004020160020154600c85815481101515610c8e57fe5b90600052602060002090600402016003015495509550955095509550610cc8565b600101610bbb565b600095508594508493508392508291505b5091939590929450565b600054600160a060020a031681565b60005433600160a060020a03908116911614610cfc57600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035481565b600a6020526000908152604090205460ff1681565b60015433600160a060020a03908116911614610d6157600080fd5b60015460a060020a900460ff1615610d7857600080fd5b60015460a860020a900460ff1615610d8f57600080fd5b600160a060020a0381161515610da457600080fd5b42831015610db157600080fd5b828211610dbd57600080fd5b82820360068190556203f4809010801590610ddd57506241eb0060065411155b1515610de857600080fd5b6007839055600882905560098054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001805474ff0000000000000000000000000000000000000000191660a060020a1790557ffccf552413932efea18979436cc8ce92942bdef118c2b5682351e1891bef80728383836040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a1505050565b60085481565b60015433600160a060020a03908116911614610eb657600080fd5b60015460a860020a900460ff1615610ecd57600080fd5b610ed5611070565b1515610ee057600080fd5b601354600160a060020a0316631139a3556040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610f1f57600080fd5b5af11515610f2c57600080fd5b505050565b60015433600160a060020a03908116911614610f4c57600080fd5b601354600160a060020a031663dbbbe8df838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610fa257600080fd5b5af11515610faf57600080fd5b5050505050565b60015433600160a060020a03908116911614610fd157600080fd5b600160a060020a0381161515610fe657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b600954600160a060020a031681565b60125481565b60025481565b60075481565b600c80548290811061104657fe5b60009182526020909120600490910201805460018201546002830154600390930154919350919084565b600060055460025410158061096357506008544210158015610963575050600454600254101590565b60005433600160a060020a039081169116146110b457600080fd5b600160a060020a03811615156110c957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015460009060a060020a900460ff16801561115257506008544210155b80156109635750506004546002541090565b60055481565b601354600160a060020a031681565b600042600d60000154111580156111935750600e54429010155b1561119d57610a06565b5064e8d4a51000600d5560005b600c54811015610a065742600c828154811015156111c457fe5b90600052602060002090600402016000015411158015611204575042600c828154811015156111ef57fe5b90600052602060002090600402016001015410155b1561124857600c80548290811061121757fe5b600091825260209091206004909102018054600d556001810154600e556002810154600f5560030154601055610a06565b6001016111aa565b611266635ae7ae00635af0e87f601460646112a4565b61127c635af0e880635afa22ff600f60646112a4565b611292635afa2300635b035d7f600a60646112a4565b611015635b035d80635b0c97ff600560645b600c8054600181016112b68382611317565b9160005260206000209060040201600060806040519081016040908152888252602082018890528101869052606081018590529190508151815560208201518160010155604082015181600201556060820151816003015550505050505050565b815481835581811511610f2c57600083815260209020610f2c916109269160049182028101918502015b8082111561136957600080825560018201819055600282018190556003820155600401611341565b50905600a165627a7a72305820803ed6545e3deefc5f3964d00aa3de86bfd1649c8a2ce05819b681320174a965002900000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000000000005af3107a40000000000000000000000000009584c15eec5f1833d66796e1cfebaab6a1e1adae
Deployed Bytecode
0x6060604052600436106101be5763ffffffff60e060020a60003504166307da68f581146101d75780630fb5a6b4146101ea5780631510ca791461020f578063162201881461022257806318c9ef97146102415780631f2698ab1461026357806321df0da71461028a57806322f3e2d4146102b957806326563b40146102cc5780632e1a7d4d146102df57806336bf094b146102f5578063481c6a751461031e578063590e1ae3146103315780636385cbbe146103445780637234ba0c1461035757806375f12b211461036a57806376ddfc391461037d57806382cee91c146103905780638da5cb5b146103d95780638dc95182146103ec5780639106d7ba1461040b5780639b19251a1461041e578063a51fe1131461043d578063a85adeab14610462578063a96f866814610475578063b23c1f1914610488578063ba0e930a146104aa578063d0e30db0146104c9578063d3b7bfb4146104d1578063d5ee739d146104e4578063e29eb836146104f7578063e6fd48bc1461050a578063e9fdfb891461051d578063ec4cd0cf1461055e578063f2fde38b14610571578063f416334014610590578063fb86a404146105a3578063fc0c546a146105b6575b600034116101cb57600080fd5b6101d533346105c9565b005b34156101e257600080fd5b6101d56107ca565b34156101f557600080fd5b6101fd610859565b60405190815260200160405180910390f35b341561021a57600080fd5b6101fd61085f565b341561022d57600080fd5b6101d5600160a060020a0360043516610866565b341561024c57600080fd5b6101d5600160a060020a03600435166024356108c0565b341561026e57600080fd5b610276610909565b604051901515815260200160405180910390f35b341561029557600080fd5b61029d610919565b604051600160a060020a03909116815260200160405180910390f35b34156102c457600080fd5b610276610929565b34156102d757600080fd5b61029d610968565b34156102ea57600080fd5b6101d5600435610977565b341561030057600080fd5b610308610a09565b60405160ff909116815260200160405180910390f35b341561032957600080fd5b61029d610a0f565b341561033c57600080fd5b6101d5610a1e565b341561034f57600080fd5b6101fd610b8a565b341561036257600080fd5b6101fd610b90565b341561037557600080fd5b610276610b97565b341561038857600080fd5b6101fd610ba7565b341561039b57600080fd5b6103a6600435610bb3565b604051941515855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b34156103e457600080fd5b61029d610cd2565b34156103f757600080fd5b6101d5600160a060020a0360043516610ce1565b341561041657600080fd5b6101fd610d2b565b341561042957600080fd5b610276600160a060020a0360043516610d31565b341561044857600080fd5b6101d5600435602435600160a060020a0360443516610d46565b341561046d57600080fd5b6101fd610e95565b341561048057600080fd5b6101d5610e9b565b341561049357600080fd5b6101d5600160a060020a0360043516602435610f31565b34156104b557600080fd5b6101d5600160a060020a0360043516610fb6565b6101d5611015565b34156104dc57600080fd5b61029d611017565b34156104ef57600080fd5b6101fd611026565b341561050257600080fd5b6101fd61102c565b341561051557600080fd5b6101fd611032565b341561052857600080fd5b610533600435611038565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b341561056957600080fd5b610276611070565b341561057c57600080fd5b6101d5600160a060020a0360043516611099565b341561059b57600080fd5b610276611134565b34156105ae57600080fd5b6101fd611164565b34156105c157600080fd5b61029d61116a565b600080600080600160149054906101000a900460ff1615156105ea57600080fd5b60015460a860020a900460ff161561060157600080fd5b610609610929565b151561061457600080fd5b600160a060020a0333166000908152600a602052604090205460ff16151561063b57600080fd5b8460025401935083600554101561068d57600554840392508285039150600160a060020a03861683156108fc0284604051600060405180830381858888f19350505050151561068957600080fd5b8194505b601254601354600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156106cf57600080fd5b5af115156106dc57600080fd5b5050506040518051905060ff16600a0a86028115156106f757fe5b049050610702611179565b600d5464e8d4a510001461072457601054600f54820281151561072157fe5b04015b601354600160a060020a031663dbbbe8df878360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561077a57600080fd5b5af1151561078757600080fd5b505050600160a060020a03909516600090815260116020526040902080548501815560010180548601905550506002805490920190915550600380549091019055565b60015433600160a060020a039081169116146107e557600080fd5b60015460a860020a900460ff16156107fc57600080fd5b60015460a060020a900460ff161561083257610816611134565b1561082057600080fd5b610828611070565b1561083257600080fd5b6001805475ff000000000000000000000000000000000000000000191660a860020a179055565b60065481565b6241eb0081565b600b5433600160a060020a0390811691161480610891575060005433600160a060020a039081169116145b151561089c57600080fd5b600160a060020a03166000908152600a60205260409020805460ff19166001179055565b60015433600160a060020a039081169116146108db57600080fd5b81600160a060020a03168160405160006040518083038185875af192505050151561090557600080fd5b5050565b60015460a060020a900460ff1681565b601354600160a060020a03165b90565b60015460009060a060020a900460ff1680156109485750600554600254105b801561095657506007544210155b8015610963575060085442105b905090565b600b54600160a060020a031681565b60005433600160a060020a0390811691161461099257600080fd5b60015460a860020a900460ff16156109a957600080fd5b6109b1611070565b15156109bc57600080fd5b600160a060020a033016318111156109d357600080fd5b600954600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610a0657600080fd5b50565b600c5490565b600154600160a060020a031681565b600154600090819060a860020a900460ff1680610a3e5750610a3e611134565b1515610a4957600080fd5b5050600160a060020a0333166000908152601160205260408120805460019091015490918211610a7857600080fd5b600160a060020a0333166000818152601160205260408082208281556001019190915583156108fc0290849051600060405180830381858888f193505050501515610ac257600080fd5b601354600160a060020a03166354517ddf338263466ccac06040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b0857600080fd5b5af11515610b1557600080fd5b505050604051805190508460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610b6f57600080fd5b5af11515610b7c57600080fd5b505050604051805150505050565b60045481565b6203f48081565b60015460a860020a900460ff1681565b670de0b6b3a764000081565b600080808080805b600c54811015610cb75786600c82815481101515610bd557fe5b90600052602060002090600402016000015411158015610c15575086600c82815481101515610c0057fe5b90600052602060002090600402016001015410155b15610caf576001600c82815481101515610c2b57fe5b906000526020600020906004020160000154600c83815481101515610c4c57fe5b906000526020600020906004020160010154600c84815481101515610c6d57fe5b906000526020600020906004020160020154600c85815481101515610c8e57fe5b90600052602060002090600402016003015495509550955095509550610cc8565b600101610bbb565b600095508594508493508392508291505b5091939590929450565b600054600160a060020a031681565b60005433600160a060020a03908116911614610cfc57600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035481565b600a6020526000908152604090205460ff1681565b60015433600160a060020a03908116911614610d6157600080fd5b60015460a060020a900460ff1615610d7857600080fd5b60015460a860020a900460ff1615610d8f57600080fd5b600160a060020a0381161515610da457600080fd5b42831015610db157600080fd5b828211610dbd57600080fd5b82820360068190556203f4809010801590610ddd57506241eb0060065411155b1515610de857600080fd5b6007839055600882905560098054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001805474ff0000000000000000000000000000000000000000191660a060020a1790557ffccf552413932efea18979436cc8ce92942bdef118c2b5682351e1891bef80728383836040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a1505050565b60085481565b60015433600160a060020a03908116911614610eb657600080fd5b60015460a860020a900460ff1615610ecd57600080fd5b610ed5611070565b1515610ee057600080fd5b601354600160a060020a0316631139a3556040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610f1f57600080fd5b5af11515610f2c57600080fd5b505050565b60015433600160a060020a03908116911614610f4c57600080fd5b601354600160a060020a031663dbbbe8df838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610fa257600080fd5b5af11515610faf57600080fd5b5050505050565b60015433600160a060020a03908116911614610fd157600080fd5b600160a060020a0381161515610fe657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b565b600954600160a060020a031681565b60125481565b60025481565b60075481565b600c80548290811061104657fe5b60009182526020909120600490910201805460018201546002830154600390930154919350919084565b600060055460025410158061096357506008544210158015610963575050600454600254101590565b60005433600160a060020a039081169116146110b457600080fd5b600160a060020a03811615156110c957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015460009060a060020a900460ff16801561115257506008544210155b80156109635750506004546002541090565b60055481565b601354600160a060020a031681565b600042600d60000154111580156111935750600e54429010155b1561119d57610a06565b5064e8d4a51000600d5560005b600c54811015610a065742600c828154811015156111c457fe5b90600052602060002090600402016000015411158015611204575042600c828154811015156111ef57fe5b90600052602060002090600402016001015410155b1561124857600c80548290811061121757fe5b600091825260209091206004909102018054600d556001810154600e556002810154600f5560030154601055610a06565b6001016111aa565b611266635ae7ae00635af0e87f601460646112a4565b61127c635af0e880635afa22ff600f60646112a4565b611292635afa2300635b035d7f600a60646112a4565b611015635b035d80635b0c97ff600560645b600c8054600181016112b68382611317565b9160005260206000209060040201600060806040519081016040908152888252602082018890528101869052606081018590529190508151815560208201518160010155604082015181600201556060820151816003015550505050505050565b815481835581811511610f2c57600083815260209020610f2c916109269160049182028101918502015b8082111561136957600080825560018201819055600282018190556003820155600401611341565b50905600a165627a7a72305820803ed6545e3deefc5f3964d00aa3de86bfd1649c8a2ce05819b681320174a9650029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000000000005af3107a40000000000000000000000000009584c15eec5f1833d66796e1cfebaab6a1e1adae
-----Decoded View---------------
Arg [0] : _minimalGoal (uint256): 2000000000000000000000
Arg [1] : _hardCap (uint256): 10000000000000000000000
Arg [2] : _tokenRateWei (uint256): 100000000000000
Arg [3] : _token (address): 0x9584C15EEc5f1833d66796e1CfEbAAB6A1E1aDAe
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000006c6b935b8bbd400000
Arg [1] : 00000000000000000000000000000000000000000000021e19e0c9bab2400000
Arg [2] : 00000000000000000000000000000000000000000000000000005af3107a4000
Arg [3] : 0000000000000000000000009584c15eec5f1833d66796e1cfebaab6a1e1adae
Swarm Source
bzzr://803ed6545e3deefc5f3964d00aa3de86bfd1649c8a2ce05819b681320174a965
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,430.9 | 0.151 | $367.07 |
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.