Contract Overview
Balance:
0 Ether
EtherValue:
$0
Transactions:
4 txns
TxHash | Block | Age | From | To | Value | [TxFee] | |
---|---|---|---|---|---|---|---|
0xb6e73037772fec24c2f003bdbd44406ad6dee64ef09c9c371421571d76a83d87 | 5179800 | 351 days 4 hrs ago | 0x818598b0305dc16c694294e2d863f4e668a0aad5 | IN | 0x35fd00d47202b1b2158dba75e7cc8f71b068c256 | 0 Ether | 0.00021616 |
0x1568354b8ad402efb48b6e62e578873cfe11f3289e3defedf8c1d063ffa5b5be | 5179752 | 351 days 4 hrs ago | 0x818598b0305dc16c694294e2d863f4e668a0aad5 | IN | 0x35fd00d47202b1b2158dba75e7cc8f71b068c256 | 0 Ether | 0.00034818 |
0xdfbc5203893296b4879bfabad399a8c80536f9bf049ea4e4cdae9b670ac912ac | 5179730 | 351 days 4 hrs ago | 0x818598b0305dc16c694294e2d863f4e668a0aad5 | IN | 0x35fd00d47202b1b2158dba75e7cc8f71b068c256 | 0 Ether | 0.00056005 |
0xd36fdc3ca0067540cc73a808ea4bb1a3e785754bc30977b614404c16650cfee1 | 5179695 | 351 days 5 hrs ago | 0x818598b0305dc16c694294e2d863f4e668a0aad5 | IN | Contract Creation | 0 Ether | 0.02421108 |
[ Download CSV Export ]
Internal Transactions as a result of Contract Execution
Parent TxHash | Block | Age | From | To | Value |
---|
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.
Contract Source Code Verified (Exact Match)
Contract Source Code Verified (Exact Match)
Contract Name: | Crowdsale |
Compiler Version: | v0.4.20+commit.3155dd80 |
Optimization Enabled: | Yes |
Runs (Optimizer): | 200 |
Contract Source Code
pragma solidity ^ 0.4.17; library SafeMath { function mul(uint a, uint b) internal pure returns(uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function sub(uint a, uint b) internal pure returns(uint) { assert(b <= a); return a - b; } function add(uint a, uint b) internal pure returns(uint) { uint c = a + b; assert(c >= a && c >= b); return c; } } contract ERC20 { uint public totalSupply; function balanceOf(address who) public view returns(uint); function allowance(address owner, address spender) public view returns(uint); function transfer(address to, uint value) public returns(bool ok); function transferFrom(address from, address to, uint value) public returns(bool ok); function approve(address spender, uint value) public returns(bool ok); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } /** * @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 Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyOwner whenNotPaused { paused = true; Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyOwner whenPaused { paused = false; Unpause(); } } // Whitelist smart contract // This smart contract keeps list of addresses to whitelist contract WhiteList is Ownable { mapping(address => bool) public whiteList; uint public totalWhiteListed; //white listed users number event LogWhiteListed(address indexed user, uint whiteListedNum); event LogWhiteListedMultiple(uint whiteListedNum); event LogRemoveWhiteListed(address indexed user); // @notice it will return status of white listing // @return true if user is white listed and false if is not function isWhiteListed(address _user) external view returns (bool) { return whiteList[_user]; } // @notice it will remove whitelisted user // @param _contributor {address} of user to unwhitelist function removeFromWhiteList(address _user) external onlyOwner() returns (bool) { require(whiteList[_user] == true); whiteList[_user] = false; totalWhiteListed--; LogRemoveWhiteListed(_user); return true; } // @notice it will white list one member // @param _user {address} of user to whitelist // @return true if successful function addToWhiteList(address _user) external onlyOwner() returns (bool) { if (whiteList[_user] != true) { whiteList[_user] = true; totalWhiteListed++; LogWhiteListed(_user, totalWhiteListed); } return true; } // @notice it will white list multiple members // @param _user {address[]} of users to whitelist // @return true if successful function addToWhiteListMultiple(address[] _users) external onlyOwner() returns (bool) { for (uint i = 0; i < _users.length; ++i) { if (whiteList[_users[i]] != true) { whiteList[_users[i]] = true; totalWhiteListed++; } } LogWhiteListedMultiple(totalWhiteListed); return true; } } // @note this contract can be inherited by Crowdsale and TeamAllocation contracts and // control release of tokens through even time release based on the inputted duration time interval contract TokenVesting is Ownable { using SafeMath for uint; struct TokenHolder { uint weiReceived; // amount of ETH contributed uint tokensToSend; // amount of tokens sent bool refunded; // true if user has been refunded uint releasedAmount; // amount released through vesting schedule bool revoked; // true if right to continue vesting is revoked } event Released(uint256 amount, uint256 tokenDecimals); event ContractUpdated(bool done); uint256 public cliff; // time in when vesting should begin uint256 public startCountDown; // time when countdown starts uint256 public duration; // duration of period in which vesting takes place Token public token; // token contract containing tokens mapping(address => TokenHolder) public tokenHolders; //tokenHolder list WhiteList public whiteList; // whitelist contract uint256 public presaleBonus; // @note constructor /** function TokenVesting(uint256 _start, uint256 _cliff, uint256 _duration) public { require(_cliff <= _duration); duration = _duration; cliff = _start.add(_cliff); startCountDown = _start; ContractUpdated(true); } */ // @notice Specify address of token contract // @param _tokenAddress {address} address of token contract // @return res {bool} function initilizeVestingAndTokenAndWhiteList(Token _tokenAddress, uint256 _start, uint256 _cliff, uint256 _duration, uint256 _presaleBonus, WhiteList _whiteList) external onlyOwner() returns(bool res) { require(_cliff <= _duration); require(_tokenAddress != address(0)); duration = _duration; cliff = _start.add(_cliff); startCountDown = _start; token = _tokenAddress; whiteList = _whiteList; presaleBonus = _presaleBonus; ContractUpdated(true); return true; } // @notice Specify address of token contract // @param _tokenAddress {address} address of token contract // @return res {bool} function initilizeVestingAndToken(Token _tokenAddress, uint256 _start, uint256 _cliff, uint256 _duration, uint256 _presaleBonus ) external onlyOwner() returns(bool res) { require(_cliff <= _duration); require(_tokenAddress != address(0)); duration = _duration; cliff = _start.add(_cliff); startCountDown = _start; token = _tokenAddress; presaleBonus = _presaleBonus; ContractUpdated(true); return true; } function returnVestingSchedule() external view returns (uint, uint, uint) { return (duration, cliff, startCountDown); } // @note owner can revoke access to continue vesting of tokens // @param _user {address} of user to revoke their right to vesting function revoke(address _user) public onlyOwner() { TokenHolder storage tokenHolder = tokenHolders[_user]; tokenHolder.revoked = true; } function vestedAmountAvailable() public view returns (uint amount, uint decimals) { TokenHolder storage tokenHolder = tokenHolders[msg.sender]; uint tokensToRelease = vestedAmount(tokenHolder.tokensToSend); // if (tokenHolder.releasedAmount + tokensToRelease > tokenHolder.tokensToSend) // return (tokenHolder.tokensToSend - tokenHolder.releasedAmount, token.decimals()); // else return (tokensToRelease - tokenHolder.releasedAmount, token.decimals()); } // @notice Transfers vested available tokens to beneficiary function release() public { TokenHolder storage tokenHolder = tokenHolders[msg.sender]; // check if right to vesting is not revoked require(!tokenHolder.revoked); uint tokensToRelease = vestedAmount(tokenHolder.tokensToSend); uint currentTokenToRelease = tokensToRelease - tokenHolder.releasedAmount; tokenHolder.releasedAmount += currentTokenToRelease; token.transfer(msg.sender, currentTokenToRelease); Released(currentTokenToRelease, token.decimals()); } // @notice this function will determine vested amount // @param _totalBalance {uint} total balance of tokens assigned to this user // @return {uint} amount of tokens available to transfer function vestedAmount(uint _totalBalance) public view returns (uint) { if (now < cliff) { return 0; } else if (now >= startCountDown.add(duration)) { return _totalBalance; } else { return _totalBalance.mul(now.sub(startCountDown)) / duration; } } } // Crowdsale Smart Contract // This smart contract collects ETH and in return sends tokens to the Backers contract Crowdsale is Pausable, TokenVesting { using SafeMath for uint; address public multisigETH; // Multisig contract that will receive the ETH address public commissionAddress; // address to deposit commissions uint public tokensForTeam; // tokens for the team uint public ethReceivedPresale; // Number of ETH received in presale uint public ethReceivedMain; // Number of ETH received in main sale uint public totalTokensSent; // Number of tokens sent to ETH contributors uint public tokensSentMain; uint public tokensSentPresale; uint public tokensSentDev; uint public startBlock; // Crowdsale start block uint public endBlock; // Crowdsale end block uint public maxCap; // Maximum number of token to sell uint public minCap; // Minimum number of ETH to raise uint public minContributionMainSale; // Minimum amount to contribute in main sale uint public minContributionPresale; // Minimum amount to contribut in presale uint public maxContribution; bool public crowdsaleClosed; // Is crowdsale still on going uint public tokenPriceWei; uint public refundCount; uint public totalRefunded; uint public campaignDurationDays; // campaign duration in days uint public firstPeriod; uint public secondPeriod; uint public thirdPeriod; uint public firstBonus; uint public secondBonus; uint public thirdBonus; uint public multiplier; uint public status; Step public currentStep; // To allow for controlled steps of the campaign // Looping through Backer //mapping(address => Backer) public backers; //backer list address[] public holdersIndex; // to be able to itarate through backers when distributing the tokens address[] public devIndex; // to be able to itarate through backers when distributing the tokens // @notice to set and determine steps of crowdsale enum Step { FundingPreSale, // presale mode FundingMainSale, // public mode Refunding // in case campaign failed during this step contributors will be able to receive refunds } // @notice to verify if action is not performed out of the campaing range modifier respectTimeFrame() { if ((block.number < startBlock) || (block.number > endBlock)) revert(); _; } modifier minCapNotReached() { if (totalTokensSent >= minCap) revert(); _; } // Events event LogReceivedETH(address indexed backer, uint amount, uint tokenAmount); event LogStarted(uint startBlockLog, uint endBlockLog); event LogFinalized(bool success); event LogRefundETH(address indexed backer, uint amount); event LogStepAdvanced(); event LogDevTokensAllocated(address indexed dev, uint amount); event LogNonVestedTokensSent(address indexed user, uint amount); // Crowdsale {constructor} // @notice fired when contract is crated. Initilizes all constnat variables. function Crowdsale(uint _decimalPoints, address _multisigETH, uint _toekensForTeam, uint _minContributionPresale, uint _minContributionMainSale, uint _maxContribution, uint _maxCap, uint _minCap, uint _tokenPriceWei, uint _campaignDurationDays, uint _firstPeriod, uint _secondPeriod, uint _thirdPeriod, uint _firstBonus, uint _secondBonus, uint _thirdBonus) public { multiplier = 10**_decimalPoints; multisigETH = _multisigETH; tokensForTeam = _toekensForTeam * multiplier; minContributionPresale = _minContributionPresale; minContributionMainSale = _minContributionMainSale; maxContribution = _maxContribution; maxCap = _maxCap * multiplier; minCap = _minCap * multiplier; tokenPriceWei = _tokenPriceWei; campaignDurationDays = _campaignDurationDays; firstPeriod = _firstPeriod; secondPeriod = _secondPeriod; thirdPeriod = _thirdPeriod; firstBonus = _firstBonus; secondBonus = _secondBonus; thirdBonus = _thirdBonus; //TODO replace this address below with correct address. commissionAddress = 0x326B5E9b8B2ebf415F9e91b42c7911279d296ea1; //commissionAddress = 0x853A3F142430658A32f75A0dc891b98BF4bDF5c1; currentStep = Step.FundingPreSale; } // @notice to populate website with status of the sale function returnWebsiteData() external view returns(uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, bool, bool, uint, Step) { return (startBlock, endBlock, numberOfBackers(), ethReceivedPresale + ethReceivedMain, maxCap, minCap, totalTokensSent, tokenPriceWei, minContributionPresale, minContributionMainSale, paused, crowdsaleClosed, token.decimals(), currentStep); } // @notice this function will determine status of crowdsale function determineStatus() external view returns (uint) { if (crowdsaleClosed) // ICO finihsed return 1; if (block.number < endBlock && totalTokensSent < maxCap - 100) // ICO in progress return 2; if (totalTokensSent < minCap && block.number > endBlock) // ICO failed return 3; if (endBlock == 0) // ICO hasn't been started yet return 4; return 0; } // {fallback function} // @notice It will call internal function which handels allocation of Ether and calculates tokens. function () public payable { contribute(msg.sender); } // @notice to allow for contribution from interface function contributePublic() external payable { contribute(msg.sender); } // @notice set the step of the campaign from presale to public sale // contract is deployed in presale mode // WARNING: there is no way to go back function advanceStep() external onlyOwner() { currentStep = Step.FundingMainSale; LogStepAdvanced(); } // @notice It will be called by owner to start the sale function start() external onlyOwner() { startBlock = block.number; endBlock = startBlock + (4*60*24*campaignDurationDays); // assumption is that one block takes 15 sec. crowdsaleClosed = false; LogStarted(startBlock, endBlock); } // @notice This function will finalize the sale. // It will only execute if predetermined sale time passed or all tokens are sold. function finalize() external onlyOwner() { require(!crowdsaleClosed); require(block.number >= endBlock || totalTokensSent > maxCap - 1000); // - 1000 is used to allow closing of the campaing when contribution is near // finished as exact amount of maxCap might be not feasible e.g. you can't easily buy few tokens. // when min contribution is 0.1 Eth. require(totalTokensSent >= minCap); crowdsaleClosed = true; // transfer commission portion to the platform commissionAddress.transfer(determineCommissions()); // transfer remaning funds to the campaign wallet multisigETH.transfer(this.balance); /*if (!token.transfer(owner, token.balanceOf(this))) revert(); // transfer tokens to admin account if (!token.burn(this, token.balanceOf(this))) revert(); // burn all the tokens remaining in the contract */ token.unlock(); // release lock from transfering tokens. LogFinalized(true); } // @notice it will allow contributors to get refund in case campaign failed // @return {bool} true if successful function refund() external whenNotPaused returns (bool) { uint totalEtherReceived = ethReceivedPresale + ethReceivedMain; require(totalEtherReceived < minCap); // ensure that campaign failed require(this.balance > 0); // contract will hold 0 ether at the end of campaign. // contract needs to be funded through fundContract() TokenHolder storage backer = tokenHolders[msg.sender]; require(backer.weiReceived > 0); // ensure that user has sent contribution require(!backer.refunded); // ensure that user hasn't been refunded yet backer.refunded = true; // save refund status to true refundCount++; totalRefunded += backer.weiReceived; if (!token.burn(msg.sender, backer.tokensToSend)) // burn tokens revert(); msg.sender.transfer(backer.weiReceived); // send back the contribution LogRefundETH(msg.sender, backer.weiReceived); return true; } // @notice allocate tokens to dev/team/advisors // @param _dev {address} // @param _amount {uint} amount of tokens function devAllocation(address _dev, uint _amount) external onlyOwner() returns (bool) { require(_dev != address(0)); require(crowdsaleClosed); require(totalTokensSent.add(_amount) <= token.totalSupply()); devIndex.push(_dev); TokenHolder storage tokenHolder = tokenHolders[_dev]; tokenHolder.tokensToSend = _amount; tokensSentDev += _amount; totalTokensSent += _amount; LogDevTokensAllocated(_dev, _amount); // Register event return true; } // @notice Failsafe drain function drain(uint _amount) external onlyOwner() { owner.transfer(_amount); } // @notice transfer tokens which are not subject to vesting // @param _recipient {addres} // @param _amont {uint} amount to transfer function transferTokens(address _recipient, uint _amount) external onlyOwner() returns (bool) { require(_recipient != address(0)); if (!token.transfer(_recipient, _amount)) revert(); LogNonVestedTokensSent(_recipient, _amount); } // @notice determine amount of commissions for the platform function determineCommissions() public view returns (uint) { if (this.balance <= 500 ether) { return (this.balance * 10)/100; }else if (this.balance <= 1000 ether) { return (this.balance * 8)/100; }else if (this.balance < 10000 ether) { return (this.balance * 6)/100; }else { return (this.balance * 6)/100; } } // @notice return number of contributors // @return {uint} number of contributors function numberOfBackers() public view returns (uint) { return holdersIndex.length; } // @notice It will be called by fallback function whenever ether is sent to it // @param _backer {address} address of beneficiary // @return res {bool} true if transaction was successful function contribute(address _backer) internal whenNotPaused respectTimeFrame returns(bool res) { //require(msg.value <= maxContribution); if (whiteList != address(0)) // if whitelist initialized verify member whitelist status require(whiteList.isWhiteListed(_backer)); // ensure that user is whitelisted uint tokensToSend = calculateNoOfTokensToSend(); // calculate number of tokens // Ensure that max cap hasn't been reached require(totalTokensSent + tokensToSend <= maxCap); TokenHolder storage backer = tokenHolders[_backer]; if (backer.weiReceived == 0) holdersIndex.push(_backer); if (Step.FundingMainSale == currentStep) { // Update the total Ether received and tokens sent during public sale require(msg.value >= minContributionMainSale); // stop when required minimum is not met ethReceivedMain = ethReceivedMain.add(msg.value); tokensSentMain += tokensToSend; }else { require(msg.value >= minContributionPresale); // stop when required minimum is not met ethReceivedPresale = ethReceivedPresale.add(msg.value); tokensSentPresale += tokensToSend; } backer.tokensToSend += tokensToSend; backer.weiReceived = backer.weiReceived.add(msg.value); totalTokensSent += tokensToSend; // tokens are not transferrd to contributors during this phase // tokens will be transferred based on the vesting schedule, when contributor // calls release() function of this contract LogReceivedETH(_backer, msg.value, tokensToSend); // Register event return true; } // @notice This function will return number of tokens based on time intervals in the campaign function calculateNoOfTokensToSend() internal view returns (uint) { uint tokenAmount = msg.value.mul(multiplier) / tokenPriceWei; if (Step.FundingMainSale == currentStep) { if (block.number <= startBlock + firstPeriod) { return tokenAmount + tokenAmount.mul(firstBonus) / 100; }else if (block.number <= startBlock + secondPeriod) { return tokenAmount + tokenAmount.mul(secondBonus) / 100; }else if (block.number <= startBlock + thirdPeriod) { return tokenAmount + tokenAmount.mul(thirdBonus) / 100; }else { return tokenAmount; } }else return tokenAmount + tokenAmount.mul(presaleBonus) / 100; } } // The token contract Token is ERC20, Ownable { using SafeMath for uint; // Public variables of the token string public name; string public symbol; uint public decimals; // How many decimals to show. string public version = "v0.1"; uint public totalSupply; bool public locked; address public crowdSaleAddress; mapping(address => uint) public balances; mapping(address => mapping(address => uint)) public allowed; // Lock transfer during the ICO modifier onlyUnlocked() { if (msg.sender != crowdSaleAddress && locked && msg.sender != owner) revert(); _; } modifier onlyAuthorized() { if (msg.sender != crowdSaleAddress && msg.sender != owner) revert(); _; } // The Token constructor function Token(uint _initialSupply, string _tokenName, uint _decimalUnits, string _tokenSymbol, string _version, address _crowdSaleAddress) public { locked = true; // Lock the transfer of tokens during the crowdsale totalSupply = _initialSupply * (10**_decimalUnits); name = _tokenName; // Set the name for display purposes symbol = _tokenSymbol; // Set the symbol for display purposes decimals = _decimalUnits; // Amount of decimals for display purposes version = _version; crowdSaleAddress = _crowdSaleAddress; balances[crowdSaleAddress] = totalSupply; } function unlock() public onlyAuthorized { locked = false; } function lock() public onlyAuthorized { locked = true; } function burn(address _member, uint256 _value) public onlyAuthorized returns(bool) { require(balances[_member] >= _value); balances[_member] -= _value; totalSupply -= _value; Transfer(_member, 0x0, _value); return true; } // @notice transfer tokens to given address // @param _to {address} address or recipient // @param _value {uint} amount to transfer // @return {bool} true if successful function transfer(address _to, uint _value) public onlyUnlocked returns(bool) { require(_to != address(0)); require(balances[msg.sender] >= _value); balances[msg.sender] -= _value; balances[_to] += _value; Transfer(msg.sender, _to, _value); return true; } // @notice transfer tokens from given address to another address // @param _from {address} from whom tokens are transferred // @param _to {address} to whom tokens are transferred // @param _value {uint} amount of tokens to transfer // @return {bool} true if successful function transferFrom(address _from, address _to, uint256 _value) public onlyUnlocked returns(bool success) { require(_to != address(0)); require(balances[_from] >= _value); // Check if the sender has enough require(_value <= allowed[_from][msg.sender]); // Check if allowed is greater or equal balances[_from] -= _value; // Subtract from the sender balances[_to] += _value; // Add the same to the recipient allowed[_from][msg.sender] -= _value; // adjust allowed Transfer(_from, _to, _value); return true; } // @notice to query balance of account // @return _owner {address} address of user to query balance function balanceOf(address _owner) public view returns(uint balance) { return balances[_owner]; } /** * @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, uint _value) public returns(bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } // @notice to query of allowance of one user to the other // @param _owner {address} of the owner of the account // @param _spender {address} of the spender of the account // @return remaining {uint} amount of remaining allowance function allowance(address _owner, address _spender) public view returns(uint 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; } }
Contract ABI
[{"constant":true,"inputs":[],"name":"tokenPriceWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"refundCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfBackers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"duration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"returnWebsiteData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cliff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"campaignDurationDays","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_totalBalance","type":"uint256"}],"name":"vestedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"status","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startCountDown","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"returnVestingSchedule","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"determineStatus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"holdersIndex","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"determineCommissions","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whiteList","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vestedAmountAvailable","outputs":[{"name":"amount","type":"uint256"},{"name":"decimals","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"contributePublic","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"advanceStep","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentStep","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minContributionMainSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenHolders","outputs":[{"name":"weiReceived","type":"uint256"},{"name":"tokensToSend","type":"uint256"},{"name":"refunded","type":"bool"},{"name":"releasedAmount","type":"uint256"},{"name":"revoked","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"multisigETH","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensSentDev","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxContribution","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":"ethReceivedMain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"commissionAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"thirdBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_start","type":"uint256"},{"name":"_cliff","type":"uint256"},{"name":"_duration","type":"uint256"},{"name":"_presaleBonus","type":"uint256"},{"name":"_whiteList","type":"address"}],"name":"initilizeVestingAndTokenAndWhiteList","outputs":[{"name":"res","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"presaleBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"thirdPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_start","type":"uint256"},{"name":"_cliff","type":"uint256"},{"name":"_duration","type":"uint256"},{"name":"_presaleBonus","type":"uint256"}],"name":"initilizeVestingAndToken","outputs":[{"name":"res","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ethReceivedPresale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensSent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensSentPresale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"firstPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dev","type":"address"},{"name":"_amount","type":"uint256"}],"name":"devAllocation","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalRefunded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minContributionPresale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensSentMain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"devIndex","outputs":[{"name":"","type":"address"}],"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":"_amount","type":"uint256"}],"name":"drain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensForTeam","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_decimalPoints","type":"uint256"},{"name":"_multisigETH","type":"address"},{"name":"_toekensForTeam","type":"uint256"},{"name":"_minContributionPresale","type":"uint256"},{"name":"_minContributionMainSale","type":"uint256"},{"name":"_maxContribution","type":"uint256"},{"name":"_maxCap","type":"uint256"},{"name":"_minCap","type":"uint256"},{"name":"_tokenPriceWei","type":"uint256"},{"name":"_campaignDurationDays","type":"uint256"},{"name":"_firstPeriod","type":"uint256"},{"name":"_secondPeriod","type":"uint256"},{"name":"_thirdPeriod","type":"uint256"},{"name":"_firstBonus","type":"uint256"},{"name":"_secondBonus","type":"uint256"},{"name":"_thirdBonus","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"backer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"LogReceivedETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"startBlockLog","type":"uint256"},{"indexed":false,"name":"endBlockLog","type":"uint256"}],"name":"LogStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"success","type":"bool"}],"name":"LogFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"backer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogRefundETH","type":"event"},{"anonymous":false,"inputs":[],"name":"LogStepAdvanced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"dev","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogDevTokensAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogNonVestedTokensSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"tokenDecimals","type":"uint256"}],"name":"Released","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"done","type":"bool"}],"name":"ContractUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60606040526000805460a060020a60ff0219169055341561001f57600080fd5b60405161020080611fc083398101604052808051919060200180519190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051906020019091905050336000806101000a815481600160a060020a030219169083600160a060020a031602179055508f600a0a6023819055508e600860006101000a815481600160a060020a030219169083600160a060020a031602179055506023548e02600a819055508c6016819055508b6015819055508a6017819055506023548a0260138190555060235489026014819055508760198190555086601c8190555085601d8190555084601e8190555083601f8190555082602081905550816021819055508060228190555073326b5e9b8b2ebf415f9e91b42c7911279d296ea1600960006101000a815481600160a060020a030219169083600160a060020a031602179055506000602560006101000a81548160ff021916908360028111156101c457fe5b021790555050505050505050505050505050505050611dd8806101e86000396000f3006060604052600436106102d15763ffffffff60e060020a60003504166305d0f15b81146102dd578063083c6323146103025780630bda4dbf146103155780630dbd5270146103285780630fb5a6b41461033b578063127e499c1461034e57806313b5d4201461036157806313d033c0146103fb57806319711d671461040e5780631b3ed722146104215780631bfce85314610434578063200d2ed21461044a57806321d7bdff1461045d57806323548b8b1461047057806325d104d4146104835780632975659d146104ba5780632a14a9da146104cd5780632b0e64b3146104ff5780633544a8641461051257806335593bcf1461052557806336335e19146105505780633cac38e41461055a5780633f4ba83a1461056d5780633fa615b01461058057806348cd4cb1146105935780634bb278f3146105a6578063590e1ae3146105b95780635bc34f71146105e05780635c975abb146106175780635eec743b1461062a57806361bb246c1461063d578063638b5e531461065057806374a8f103146106a6578063823914d9146106c55780638456cb59146106d857806386d1a69f146106eb578063878a18ef146106fe5780638d3d6576146107115780638da5cb5b146107245780639263b55914610737578063931742d31461074a57806393928c911461075d578063965e08e81461077057806399cb0823146107a55780639e439ff8146107b8578063a20d426c146107cb578063a5cf56f2146107f6578063ac1559d214610809578063b630aa481461081c578063be9a65551461082f578063bec3fa1714610842578063c4e3a63b14610864578063ccb07cef14610877578063d4fbe1e01461088a578063d9082962146108ac578063e44a94d3146108bf578063e4818e4b146108d2578063ed810d02146108e5578063ee73cf66146108f8578063f2fde38b1461090e578063f6b19c741461092d578063fc0c546a14610943578063fde83a3414610956575b6102da33610969565b50005b34156102e857600080fd5b6102f0610ba2565b60405190815260200160405180910390f35b341561030d57600080fd5b6102f0610ba8565b341561032057600080fd5b6102f0610bae565b341561033357600080fd5b6102f0610bb4565b341561034657600080fd5b6102f0610bbb565b341561035957600080fd5b6102f0610bc1565b341561036c57600080fd5b610374610bc7565b604051808f81526020018e81526020018d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185151515158152602001841515151581526020018381526020018260028111156103da57fe5b60ff1681526020019e50505050505050505050505050505060405180910390f35b341561040657600080fd5b6102f0610cd5565b341561041957600080fd5b6102f0610cdb565b341561042c57600080fd5b6102f0610ce1565b341561043f57600080fd5b6102f0600435610ce7565b341561045557600080fd5b6102f0610d57565b341561046857600080fd5b6102f0610d5d565b341561047b57600080fd5b6102f0610d63565b341561048e57600080fd5b610496610d69565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156104c557600080fd5b6102f0610d77565b34156104d857600080fd5b6104e3600435610de9565b604051600160a060020a03909116815260200160405180910390f35b341561050a57600080fd5b6102f0610e11565b341561051d57600080fd5b6104e3610ebb565b341561053057600080fd5b610538610eca565b60405191825260208201526040908101905180910390f35b610558610f6d565b005b341561056557600080fd5b610558610f79565b341561057857600080fd5b610558610fcf565b341561058b57600080fd5b6102f061104e565b341561059e57600080fd5b6102f0611054565b34156105b157600080fd5b61055861105a565b34156105c457600080fd5b6105cc6111c6565b604051901515815260200160405180910390f35b34156105eb57600080fd5b6105f361137b565b6040518082600281111561060357fe5b60ff16815260200191505060405180910390f35b341561062257600080fd5b6105cc611384565b341561063557600080fd5b6102f0611394565b341561064857600080fd5b6102f061139a565b341561065b57600080fd5b61066f600160a060020a03600435166113a0565b60405194855260208501939093529015156040808501919091526060840191909152901515608083015260a0909101905180910390f35b34156106b157600080fd5b610558600160a060020a03600435166113d4565b34156106d057600080fd5b6104e3611418565b34156106e357600080fd5b610558611427565b34156106f657600080fd5b6105586114ab565b341561070957600080fd5b6102f0611618565b341561071c57600080fd5b6102f061161e565b341561072f57600080fd5b6104e3611624565b341561074257600080fd5b6102f0611633565b341561075557600080fd5b6104e3611639565b341561076857600080fd5b6102f0611648565b341561077b57600080fd5b6105cc600160a060020a036004358116906024359060443590606435906084359060a4351661164e565b34156107b057600080fd5b6102f061172f565b34156107c357600080fd5b6102f0611735565b34156107d657600080fd5b6105cc600160a060020a036004351660243560443560643560843561173b565b341561080157600080fd5b6102f0611806565b341561081457600080fd5b6102f061180c565b341561082757600080fd5b6102f0611812565b341561083a57600080fd5b610558611818565b341561084d57600080fd5b6105cc600160a060020a036004351660243561188d565b341561086f57600080fd5b6102f0611986565b341561088257600080fd5b6105cc61198c565b341561089557600080fd5b6105cc600160a060020a0360043516602435611995565b34156108b757600080fd5b6102f0611b0a565b34156108ca57600080fd5b6102f0611b10565b34156108dd57600080fd5b6102f0611b16565b34156108f057600080fd5b6102f0611b1c565b341561090357600080fd5b6104e3600435611b22565b341561091957600080fd5b610558600160a060020a0360043516611b30565b341561093857600080fd5b610558600435611bcb565b341561094e57600080fd5b6104e3611c19565b341561096157600080fd5b6102f0611c28565b600080548190819060a060020a900460ff161561098557600080fd5b601154431080610996575060125443115b156109a057600080fd5b600654600160a060020a031615610a3057600654600160a060020a0316636f9170f68560006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a0a57600080fd5b6102c65a03f11515610a1b57600080fd5b505050604051805190501515610a3057600080fd5b610a38611c2e565b915060135482600d540111151515610a4f57600080fd5b50600160a060020a038316600090815260056020526040902080541515610ab5576026805460018101610a828382611d69565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b60255460ff166002811115610ac657fe5b60011415610b0057601554341015610add57600080fd5b600c54610af0903463ffffffff611d1216565b600c55600e805483019055610b2e565b601654341015610b0f57600080fd5b600b54610b22903463ffffffff611d1216565b600b55600f8054830190555b600181018054830190558054610b4a903463ffffffff611d1216565b8155600d805483019055600160a060020a0384167fe3539dcc17b38d337133cfce1f00f1e94765090378d48a1d73171a93e6a1ff78348460405191825260208201526040908101905180910390a25060019392505050565b60195481565b60125481565b601a5481565b6026545b90565b60035481565b60205481565b600080600080600080600080600080600080600080601154601254610bea610bb4565b600c54600b5401601354601454600d54601954601654601554600060149054906101000a900460ff16601860009054906101000a900460ff16600460009054906101000a9004600160a060020a0316600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610c7e57600080fd5b6102c65a03f11515610c8f57600080fd5b50505060405180519050602560009054906101000a900460ff169d509d509d509d509d509d509d509d509d509d509d509d509d509d50909192939495969798999a9b9c9d565b60015481565b601c5481565b60235481565b6000600154421015610cfb57506000610d52565b600354600254610d109163ffffffff611d1216565b4210610d1d575080610d52565b600354610d45610d3860025442611d3690919063ffffffff16565b849063ffffffff611d4816565b811515610d4e57fe5b0490505b919050565b60245481565b60025481565b60135481565b600354600154600254909192565b60185460009060ff1615610d8d57506001610bb8565b60125443108015610da45750606460135403600d54105b15610db157506002610bb8565b601454600d54108015610dc5575060125443115b15610dd257506003610bb8565b6012541515610de357506004610bb8565b50600090565b6026805482908110610df757fe5b600091825260209091200154600160a060020a0316905081565b6000681b1ae4d6e2ef500000600160a060020a0330163111610e46576064600a600160a060020a03301631025b049050610bb8565b683635c9adc5dea00000600160a060020a0330163111610e755760646008600160a060020a0330163102610e3e565b69021e19e0c9bab240000030600160a060020a0316311015610ea65760646006600160a060020a0330163102610e3e565b60646006600160a060020a0330163102610e3e565b600654600160a060020a031681565b600160a060020a033316600090815260056020526040812060018101548291908290610ef590610ce7565b6003830154600454919250820390600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610f4857600080fd5b6102c65a03f11515610f5957600080fd5b505050604051805190509350935050509091565b610f7633610969565b50565b60005433600160a060020a03908116911614610f9457600080fd5b6025805460ff191660011790557f592c878e6add7d4d1ceb88871d699a1f9655424e4cd45f0ca7ad9f98526f286860405160405180910390a1565b60005433600160a060020a03908116911614610fea57600080fd5b60005460a060020a900460ff16151561100257600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60145481565b60115481565b60005433600160a060020a0390811691161461107557600080fd5b60185460ff161561108557600080fd5b6012544310158061109d57506103e860135403600d54115b15156110a857600080fd5b601454600d5410156110b957600080fd5b6018805460ff19166001179055600954600160a060020a03166108fc6110dd610e11565b9081150290604051600060405180830381858888f19350505050151561110257600080fd5b600854600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561113b57600080fd5b600454600160a060020a031663a69df4b56040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561117a57600080fd5b6102c65a03f1151561118b57600080fd5b5050507fe2b612f94c4cb9a16dd0d29db7c97a0e08091b23de2a812f782c2d8b760537706001604051901515815260200160405180910390a1565b600080548190819060a060020a900460ff16156111e257600080fd5b600c54600b546014549101925082106111fa57600080fd5b6000600160a060020a033016311161121157600080fd5b50600160a060020a033316600090815260056020526040812080549091901161123957600080fd5b600281015460ff161561124b57600080fd5b60028101805460ff19166001908117909155601a8054820190558154601b8054909101905560045490820154600160a060020a0390911690639dc29fac90339060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156112d757600080fd5b6102c65a03f115156112e857600080fd5b5050506040518051905015156112fd57600080fd5b8054600160a060020a0333169080156108fc0290604051600060405180830381858888f19350505050151561133157600080fd5b33600160a060020a03167f991678bf7f45816a1ff5cf860f3dabd3e26c34d959aa479904bf9caec17af1c5826000015460405190815260200160405180910390a260019250505090565b60255460ff1681565b60005460a060020a900460ff1681565b60155481565b60215481565b600560205260009081526040902080546001820154600283015460038401546004909401549293919260ff91821692911685565b6000805433600160a060020a039081169116146113f057600080fd5b50600160a060020a03166000908152600560205260409020600401805460ff19166001179055565b600854600160a060020a031681565b60005433600160a060020a0390811691161461144257600080fd5b60005460a060020a900460ff161561145957600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600160a060020a03331660009081526005602052604081206004810154909190819060ff16156114da57600080fd5b6114e78360010154610ce7565b6003840180548083039081019091556004549193509150600160a060020a031663a9059cbb338360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561155a57600080fd5b6102c65a03f1151561156b57600080fd5b505050604051805150506004547fd5840651550c173a8bf246eede440a59253bc61eadb2e8887168faad2fad631d908290600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156115e157600080fd5b6102c65a03f115156115f257600080fd5b5050506040518051905060405191825260208201526040908101905180910390a1505050565b60105481565b60175481565b600054600160a060020a031681565b600c5481565b600954600160a060020a031681565b60225481565b6000805433600160a060020a0390811691161461166a57600080fd5b8385111561167757600080fd5b600160a060020a038716151561168c57600080fd5b60038490556116a1868663ffffffff611d1216565b6001908155600287905560048054600160a060020a03808b1673ffffffffffffffffffffffffffffffffffffffff1992831617909255600680549286169290911691909117905560078490557f197d0e3bb2b41721838884620cf57f1ed98cc18d2f03a8f182b616bea64af84e90604051901515815260200160405180910390a15060019695505050505050565b60075481565b601f5481565b6000805433600160a060020a0390811691161461175757600080fd5b8284111561176457600080fd5b600160a060020a038616151561177957600080fd5b600383905561178e858563ffffffff611d1216565b600190815560028690556004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03891617905560078390557f197d0e3bb2b41721838884620cf57f1ed98cc18d2f03a8f182b616bea64af84e90604051901515815260200160405180910390a150600195945050505050565b600b5481565b600d5481565b600f5481565b60005433600160a060020a0390811691161461183357600080fd5b436011819055601c5461168002810160128190556018805460ff191690557fa88abb2da4d124e645a64f427adf44fa8111af1831a3f5437591925a2cf7a4e7919060405191825260208201526040908101905180910390a1565b6000805433600160a060020a039081169116146118a957600080fd5b600160a060020a03831615156118be57600080fd5b600454600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561191d57600080fd5b6102c65a03f1151561192e57600080fd5b50505060405180519050151561194357600080fd5b82600160a060020a03167fc0e43987907a4f82c4722f79a2e833ae2fc53dca0daa8b8141726b810591126e8360405190815260200160405180910390a292915050565b601d5481565b60185460ff1681565b60008054819033600160a060020a039081169116146119b357600080fd5b600160a060020a03841615156119c857600080fd5b60185460ff1615156119d957600080fd5b600454600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a2157600080fd5b6102c65a03f11515611a3257600080fd5b5050506040518051600d54909150611a50908563ffffffff611d1216565b1115611a5b57600080fd5b6027805460018101611a6d8382611d69565b506000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558083526005909152604091829020600181018690556010805487019055600d8054870190559250907f969830dc5773a5b34b166c8a34cd2600c8cb681dab9cc14b1a69b000731fe3aa9085905190815260200160405180910390a25060019392505050565b601b5481565b60165481565b601e5481565b600e5481565b6027805482908110610df757fe5b60005433600160a060020a03908116911614611b4b57600080fd5b600160a060020a0381161515611b6057600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614611be657600080fd5b600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610f7657600080fd5b600454600160a060020a031681565b600a5481565b600080601954611c4960235434611d4890919063ffffffff16565b811515611c5257fe5b602554919004915060ff166002811115611c6857fe5b60011415611cf757601d54601154014311611ca7576064611c9460205483611d4890919063ffffffff16565b811515611c9d57fe5b0481019150611d0e565b601e54601154014311611ccb576064611c9460215483611d4890919063ffffffff16565b601f54601154014311611cef576064611c9460225483611d4890919063ffffffff16565b809150611d0e565b6064611c9460075483611d4890919063ffffffff16565b5090565b6000828201838110801590611d275750828110155b1515611d2f57fe5b9392505050565b600082821115611d4257fe5b50900390565b6000828202831580611d275750828482811515611d6157fe5b0414611d2f57fe5b815481835581811511611d8d57600083815260209020611d8d918101908301611d92565b505050565b610bb891905b80821115611d0e5760008155600101611d985600a165627a7a7230582069cf72ba79943bcfb648637d08cf076b6c3c1939f4ef4ea8a462b6f755958e9200290000000000000000000000000000000000000000000000000000000000000012000000000000000000000000818598b0305dc16c694294e2d863f4e668a0aad5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b7ec32d7a2000000000000000000000000000000000000000000000000000004b7ec32d7a2000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000000000000000000000000000000000000000016c6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000044364c5bb0000000000000000000000000000000000000000000000000000000000000000005a00000000000000000000000000000000000000000000000000000000000871eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000818598b0305dc16c694294e2d863f4e668a0aad5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b7ec32d7a2000000000000000000000000000000000000000000000000000004b7ec32d7a2000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000000000000000000000000000000000000000016c6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000044364c5bb0000000000000000000000000000000000000000000000000000000000000000005a00000000000000000000000000000000000000000000000000000000000871eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [1] : 000000000000000000000000818598b0305dc16c694294e2d863f4e668a0aad5
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 00000000000000000000000000000000000000000000000004b7ec32d7a20000
Arg [4] : 00000000000000000000000000000000000000000000000004b7ec32d7a20000
Arg [5] : 00000000000000000000000000000000000000000000003635c9adc5dea00000
Arg [6] : 00000000000000000000000000000000000000000000000000000000000016c6
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [8] : 00000000000000000000000000000000000000000000000000044364c5bb0000
Arg [9] : 000000000000000000000000000000000000000000000000000000000000005a
Arg [10] : 00000000000000000000000000000000000000000000000000000000000871eb
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000023
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000000
Swarm Source:
bzzr://69cf72ba79943bcfb648637d08cf076b6c3c1939f4ef4ea8a462b6f755958e92
Block | Age | transaction | Difficulty | GasUsed | Reward |
---|
Block | Age | Uncle Number | Difficulty | GasUsed | Reward |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.