More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,708 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 5288745 | 2492 days ago | IN | 0.5 ETH | 0.00004011 | ||||
Transfer | 5226486 | 2502 days ago | IN | 0.0001 ETH | 0.0000252 | ||||
Transfer | 5172189 | 2511 days ago | IN | 0.0001 ETH | 0.0002016 | ||||
Transfer | 5123526 | 2520 days ago | IN | 0.01 ETH | 0.0004011 | ||||
Transfer | 5114276 | 2521 days ago | IN | 0.01 ETH | 0.00072928 | ||||
Transfer | 5113403 | 2521 days ago | IN | 0.01 ETH | 0.00014585 | ||||
Transfer | 5113262 | 2521 days ago | IN | 0 ETH | 0.00016962 | ||||
Transfer | 5107593 | 2522 days ago | IN | 0.01 ETH | 0.0008022 | ||||
Transfer | 5106162 | 2523 days ago | IN | 0.0001 ETH | 0.00126 | ||||
Transfer | 5105637 | 2523 days ago | IN | 0.05 ETH | 0.0004011 | ||||
Transfer | 5105504 | 2523 days ago | IN | 1.01 ETH | 0.00072928 | ||||
Transfer | 5105490 | 2523 days ago | IN | 1.01 ETH | 0.00199749 | ||||
Transfer | 5105474 | 2523 days ago | IN | 1.01 ETH | 0.0005292 | ||||
Transfer | 5105472 | 2523 days ago | IN | 0.51725725 ETH | 0.000042 | ||||
Transfer | 5105465 | 2523 days ago | IN | 0.01348581 ETH | 0.0049128 | ||||
Transfer | 5105444 | 2523 days ago | IN | 1 ETH | 0.0077504 | ||||
Transfer | 5105431 | 2523 days ago | IN | 0.5168386 ETH | 0.000063 | ||||
Transfer | 5105426 | 2523 days ago | IN | 0 ETH | 0.00010601 | ||||
Transfer | 5105404 | 2523 days ago | IN | 0 ETH | 0.00008481 | ||||
Transfer | 5105394 | 2523 days ago | IN | 1.1 ETH | 0.00188324 | ||||
Transfer | 5105383 | 2523 days ago | IN | 1.3 ETH | 0.0049128 | ||||
Transfer | 5105357 | 2523 days ago | IN | 1 ETH | 0.0058128 | ||||
Transfer | 5105333 | 2523 days ago | IN | 0.1 ETH | 0.00397208 | ||||
Transfer | 5105333 | 2523 days ago | IN | 0.01493644 ETH | 0.00397208 | ||||
Transfer | 5105332 | 2523 days ago | IN | 1.01 ETH | 0.0058128 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5105465 | 2523 days ago | 0.00013485 ETH | ||||
5105465 | 2523 days ago | 0.00134858 ETH | ||||
5105465 | 2523 days ago | 0.01200237 ETH | ||||
5105444 | 2523 days ago | 0.01 ETH | ||||
5105444 | 2523 days ago | 0.1 ETH | ||||
5105444 | 2523 days ago | 0.89 ETH | ||||
5105394 | 2523 days ago | 0.011 ETH | ||||
5105394 | 2523 days ago | 0.11 ETH | ||||
5105394 | 2523 days ago | 0.979 ETH | ||||
5105383 | 2523 days ago | 0.013 ETH | ||||
5105383 | 2523 days ago | 0.13 ETH | ||||
5105383 | 2523 days ago | 1.157 ETH | ||||
5105357 | 2523 days ago | 0.01 ETH | ||||
5105357 | 2523 days ago | 0.1 ETH | ||||
5105357 | 2523 days ago | 0.89 ETH | ||||
5105333 | 2523 days ago | 0.001 ETH | ||||
5105333 | 2523 days ago | 0.01 ETH | ||||
5105333 | 2523 days ago | 0.089 ETH | ||||
5105333 | 2523 days ago | 0.00014936 ETH | ||||
5105333 | 2523 days ago | 0.00149364 ETH | ||||
5105333 | 2523 days ago | 0.01329343 ETH | ||||
5105332 | 2523 days ago | 0.0101 ETH | ||||
5105332 | 2523 days ago | 0.101 ETH | ||||
5105332 | 2523 days ago | 0.8989 ETH | ||||
5105326 | 2523 days ago | 0.0007 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xc443dC89...853d8D856 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
StarterCoinCrowdsale
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-01-05 */ pragma solidity ^0.4.13; library SafeMath { function mul(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal constant returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal constant returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } 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() { 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; } } contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public constant returns (uint256 balance) { return balances[_owner]; } } contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } contract LimitedTransferToken is ERC20 { /** * @dev Checks whether it can transfer or otherwise throws. */ modifier canTransfer(address _sender, uint256 _value) { require(_value <= transferableTokens(_sender, uint64(now))); _; } /** * @dev Checks modifier and allows transfer if tokens are not locked. * @param _to The address that will receive the tokens. * @param _value The amount of tokens to be transferred. */ function transfer(address _to, uint256 _value) canTransfer(msg.sender, _value) public returns (bool) { return super.transfer(_to, _value); } /** * @dev Checks modifier and allows transfer if tokens are not locked. * @param _from The address that will send the tokens. * @param _to The address that will receive the tokens. * @param _value The amount of tokens to be transferred. */ function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from, _value) public returns (bool) { return super.transferFrom(_from, _to, _value); } /** * @dev Default transferable tokens function returns all tokens for a holder (no limit). * @dev Overwriting transferableTokens(address holder, uint64 time) is the way to provide the * specific logic for limiting token transferability for a holder over time. */ function transferableTokens(address holder, uint64 time) public constant returns (uint256) { return balanceOf(holder); } } library SafeERC20 { function safeTransfer(ERC20Basic token, address to, uint256 value) internal { assert(token.transfer(to, value)); } function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal { assert(token.transferFrom(from, to, value)); } function safeApprove(ERC20 token, address spender, uint256 value) internal { assert(token.approve(spender, value)); } } contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); uint256 _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } /** * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol */ function increaseApproval (address _spender, uint _addedValue) 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) 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 MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); Transfer(0x0, _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner public returns (bool) { mintingFinished = true; MintFinished(); return true; } } contract TokenTimelock { using SafeERC20 for ERC20Basic; // ERC20 basic token contract being held ERC20Basic public token; // beneficiary of tokens after they are released address public beneficiary; // timestamp when token release is enabled uint64 public releaseTime; function TokenTimelock(ERC20Basic _token, address _beneficiary, uint64 _releaseTime) { require(_releaseTime > now); token = _token; beneficiary = _beneficiary; releaseTime = _releaseTime; } /** * @notice Transfers tokens held by timelock to beneficiary. * Deprecated: please use TokenTimelock#release instead. */ function claim() public { require(msg.sender == beneficiary); release(); } /** * @notice Transfers tokens held by timelock to beneficiary. */ function release() public { require(now >= releaseTime); uint256 amount = token.balanceOf(this); require(amount > 0); token.safeTransfer(beneficiary, amount); } } contract StarterCoin is MintableToken, LimitedTransferToken { string public constant name = "StarterCoin"; string public constant symbol = "STAC"; uint8 public constant decimals = 18; uint256 public endTimeICO; address public bountyWallet; function StarterCoin(uint256 _endTimeICO, address _bountyWallet) { endTimeICO = _endTimeICO; bountyWallet = _bountyWallet; } function transferableTokens(address holder, uint64 time) public constant returns (uint256) { // allow transfers after the end of ICO return (time > endTimeICO) || (holder == bountyWallet) ? balanceOf(holder) : 0; } } contract StarterCoinCrowdsale is Ownable { using SafeMath for uint256; // The token being sold MintableToken public token; // start and end timestamps where investments are allowed (both inclusive) uint256 public startTime; uint256 public endTime; uint256[11] public timings; uint8[10] public bonuses; // address where funds are collected address public wallet89; address public wallet10; address public wallet1; // how many token units a buyer gets per wei uint256 public constant RATE = 4500; // amount of raised money in wei uint256 public weiRaised; uint256 public tokenSold; uint256 public constant CAP = 154622 ether; uint256 public constant TOKEN_CAP = 695797500 * (10 ** uint256(18)); // 45000000+62797500+588000000 STC TokenTimelock public devTokenTimelock; TokenTimelock public foundersTokenTimelock; TokenTimelock public teamTokenTimelock; TokenTimelock public advisersTokenTimelock; uint256 public constant BOUNTY_SUPPLY = 78400000 * (10 ** uint256(18)); uint256 public constant DEV_SUPPLY = 78400000 * (10 ** uint256(18)); uint256 public constant FOUNDERS_SUPPLY = 59600000 * (10 ** uint256(18)); uint256 public constant TEAM_SUPPLY = 39200000 * (10 ** uint256(18)); uint256 public constant ADVISERS_SUPPLY = 29400000 * (10 ** uint256(18)); function StarterCoinCrowdsale( uint256 [11] _timings, uint8 [10] _bonuses, address [3] _wallets, address bountyWallet, address devWallet, uint64 devReleaseTime, address foundersWallet, uint64 foundersReleaseTime, address teamWallet, uint64 teamReleaseTime, address advisersWallet, uint64 advisersReleaseTime ) { require(_timings[0] >= now); for(uint i = 1; i < timings.length; i++) { require(_timings[i] >= _timings[i-1]); } timings = _timings; bonuses = _bonuses; startTime = timings[0]; endTime = timings[timings.length-1]; require(devReleaseTime >= endTime); require(foundersReleaseTime >= endTime); require(teamReleaseTime >= endTime); require(advisersReleaseTime >= endTime); require(_wallets[0] != 0x0); require(_wallets[1] != 0x0); require(_wallets[2] != 0x0); require(bountyWallet != 0x0); require(devWallet != 0x0); require(foundersWallet != 0x0); require(teamWallet != 0x0); require(advisersWallet != 0x0); wallet89 = _wallets[0]; wallet10 = _wallets[1]; wallet1 = _wallets[2]; token = new StarterCoin(endTime, bountyWallet); token.mint(bountyWallet, BOUNTY_SUPPLY); devTokenTimelock = new TokenTimelock(token, devWallet, devReleaseTime); token.mint(devTokenTimelock, DEV_SUPPLY); foundersTokenTimelock = new TokenTimelock(token, foundersWallet, foundersReleaseTime); token.mint(foundersTokenTimelock, FOUNDERS_SUPPLY); teamTokenTimelock = new TokenTimelock(token, teamWallet, teamReleaseTime); token.mint(teamTokenTimelock, TEAM_SUPPLY); advisersTokenTimelock = new TokenTimelock(token, advisersWallet, advisersReleaseTime); token.mint(advisersTokenTimelock, ADVISERS_SUPPLY); } /** * event for token purchase logging * @param purchaser who paid for the tokens * @param beneficiary who got the tokens * @param value weis paid for purchase * @param amount amount of tokens purchased */ event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); // creates the token to be sold. // override this method to have crowdsale of a specific mintable token. function createTokenContract() internal returns (MintableToken) { return new MintableToken(); } // fallback function can be used to buy tokens function () payable { buyTokens(msg.sender); } // low level token purchase function function buyTokens(address beneficiary) public payable { require(beneficiary != 0x0); require(msg.value >= 100); // required for proper splitting funds between 3 wallets uint256 weiAmount = msg.value; // calculate period bonus uint256 periodBonus; for (uint8 i = 1; i < timings.length; i++) { if ( now < timings[i] ) { periodBonus = RATE.mul(uint256(bonuses[i-1])).div(100); break; } } // calculate bulk purchase bonus uint256 bulkPurchaseBonus; if (weiAmount >= 50 ether) { bulkPurchaseBonus = 3600; // 80% bonus for RATE 4500 } else if (weiAmount >= 30 ether) { bulkPurchaseBonus = 3150; // 70% bonus for RATE 4500 } else if (weiAmount >= 10 ether) { bulkPurchaseBonus = 2250; // 50% bonus for RATE 4500 } else if (weiAmount >= 5 ether) { bulkPurchaseBonus = 1350; // 30% bonus for RATE 4500 } else if (weiAmount >= 3 ether) { bulkPurchaseBonus = 450; // 10% bonus for RATE 4500 } uint256 actualRate = RATE.add(periodBonus).add(bulkPurchaseBonus); // calculate token amount to be created uint256 tokens = weiAmount.mul(actualRate); // update state weiRaised = weiRaised.add(weiAmount); tokenSold = tokenSold.add(tokens); require(validPurchase()); token.mint(beneficiary, tokens); TokenPurchase(msg.sender, beneficiary, weiAmount, tokens); forwardFunds(); } // send ether to the fund collection wallet // override to create custom fund forwarding mechanisms function forwardFunds() internal { uint256 wei89 = msg.value.mul(89).div(100); uint256 wei10 = msg.value.div(10); uint256 wei1 = msg.value.sub(wei89).sub(wei10); wallet89.transfer(wei89); wallet10.transfer(wei10); wallet1.transfer(wei1); } // add off chain contribution. BTC address of contribution added for transparency function addOffChainContribution(address beneficiar, uint256 weiAmount, uint256 tokenAmount, string btcAddress) onlyOwner public { require(beneficiar != 0x0); require(weiAmount > 0); require(tokenAmount > 0); weiRaised += weiAmount; tokenSold += tokenAmount; require(validPurchase()); token.mint(beneficiar, tokenAmount); } // overriding Crowdsale#validPurchase to add extra CAP logic // @return true if investors can buy at the moment function validPurchase() internal constant returns (bool) { bool withinCap = weiRaised <= CAP; bool withinPeriod = now >= startTime && now <= endTime; bool withinTokenCap = tokenSold <= TOKEN_CAP; return withinPeriod && withinCap && withinTokenCap; } // overriding Crowdsale#hasEnded to add CAP logic // @return true if crowdsale event has ended function hasEnded() public constant returns (bool) { bool capReached = weiRaised >= CAP; return now > endTime || capReached; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"wallet1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisersTokenTimelock","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTokenTimelock","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundersTokenTimelock","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BOUNTY_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet10","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ADVISERS_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet89","outputs":[{"name":"","type":"address"}],"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":"","type":"uint256"}],"name":"timings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FOUNDERS_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"bonuses","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TEAM_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEV_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devTokenTimelock","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiar","type":"address"},{"name":"weiAmount","type":"uint256"},{"name":"tokenAmount","type":"uint256"},{"name":"btcAddress","type":"string"}],"name":"addOffChainContribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_timings","type":"uint256[11]"},{"name":"_bonuses","type":"uint8[10]"},{"name":"_wallets","type":"address[3]"},{"name":"bountyWallet","type":"address"},{"name":"devWallet","type":"address"},{"name":"devReleaseTime","type":"uint64"},{"name":"foundersWallet","type":"address"},{"name":"foundersReleaseTime","type":"uint64"},{"name":"teamWallet","type":"address"},{"name":"teamReleaseTime","type":"uint64"},{"name":"advisersWallet","type":"address"},{"name":"advisersReleaseTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Deployed Bytecode
0x6060604052600436106101455763ffffffff60e060020a6000350416631a026c96811461015057806327687d341461017f5780633197cbb614610192578063322a8957146101b75780634042b66f146101ca578063454a2958146101dd578063519ee19e146101f05780635d771933146102035780635f88ffed14610216578063664e97041461022957806366e232761461023c57806378e979251461024f5780637b775ec3146102625780638da5cb5b146102755780639610f6911461028857806398ca667f1461029e5780639a6524f1146102b1578063ab375641146102c4578063b9c3a818146102f0578063c05f486e14610203578063e9d9c4a914610303578063ec81b48314610316578063ec8ac4d814610329578063ecb70fb71461033d578063f2eb32fb14610364578063f2fde38b146103cc578063fc0c546a146103eb575b61014e336103fe565b005b341561015b57600080fd5b61016361067d565b604051600160a060020a03909116815260200160405180910390f35b341561018a57600080fd5b61016361068c565b341561019d57600080fd5b6101a561069b565b60405190815260200160405180910390f35b34156101c257600080fd5b6101636106a1565b34156101d557600080fd5b6101a56106b0565b34156101e857600080fd5b6101636106b6565b34156101fb57600080fd5b6101a56106c5565b341561020e57600080fd5b6101a56106cb565b341561022157600080fd5b6101636106da565b341561023457600080fd5b6101a56106e9565b341561024757600080fd5b6101a56106ef565b341561025a57600080fd5b6101a56106fe565b341561026d57600080fd5b610163610704565b341561028057600080fd5b610163610713565b341561029357600080fd5b6101a5600435610722565b34156102a957600080fd5b6101a5610736565b34156102bc57600080fd5b6101a5610745565b34156102cf57600080fd5b6102da600435610755565b60405160ff909116815260200160405180910390f35b34156102fb57600080fd5b6101a561077c565b341561030e57600080fd5b61016361078b565b341561032157600080fd5b6101a561079a565b61014e600160a060020a03600435166103fe565b341561034857600080fd5b6103506107a8565b604051901515815260200160405180910390f35b341561036f57600080fd5b61014e60048035600160a060020a03169060248035916044359160849060643590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506107d095505050505050565b34156103d757600080fd5b61014e600160a060020a03600435166108bd565b34156103f657600080fd5b610163610958565b60008080808080600160a060020a038716151561041a57600080fd5b606434101561042857600080fd5b349550600193505b600b8460ff1610156104b257600460ff8516600b811061044c57fe5b01544210156104a7576104a06064610494600f60ff600019890116600a811061047157fe5b6020808204909201546111949260ff92066101000a90041663ffffffff61096716565b9063ffffffff61099216565b94506104b2565b600190930192610430565b6802b5e3af16b188000086106104cc57610e10925061052d565b6801a055690d9db8000086106104e657610c4e925061052d565b678ac7230489e8000086106104ff576108ca925061052d565b674563918244f40000861061051857610546925061052d565b6729a2241af62c0000861061052d576101c292505b61054f836105436111948863ffffffff6109a916565b9063ffffffff6109a916565b9150610561868363ffffffff61096716565b601354909150610577908763ffffffff6109a916565b60135560145461058d908263ffffffff6109a916565b6014556105986109b8565b15156105a357600080fd5b600154600160a060020a03166340c10f19888360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561060257600080fd5b6102c65a03f1151561061357600080fd5b505050604051805190505086600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18888460405191825260208201526040908101905180910390a3610674610a17565b50505050505050565b601254600160a060020a031681565b601854600160a060020a031681565b60035481565b601754600160a060020a031681565b60135481565b601654600160a060020a031681565b60145481565b6a40d9d88421f592e800000081565b601154600160a060020a031681565b61119481565b6a1851b1318cbc171700000081565b60025481565b601054600160a060020a031681565b600054600160a060020a031681565b600481600b811061072f57fe5b0154905081565b6a314cca79588285e200000081565b6b023f8cda0e3531091e70000081565b600f81600a811061076257fe5b60209182820401919006915054906101000a900460ff1681565b6a206cec4210fac97400000081565b601554600160a060020a031681565b6920be134e7188a138000081565b6000806920be134e7188a1380000601354101590506003544211806107ca5750805b91505090565b60005433600160a060020a039081169116146107eb57600080fd5b600160a060020a038416151561080057600080fd5b6000831161080d57600080fd5b6000821161081a57600080fd5b601380548401905560148054830190556108326109b8565b151561083d57600080fd5b600154600160a060020a03166340c10f19858460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561089c57600080fd5b6102c65a03f115156108ad57600080fd5b5050506040518051505050505050565b60005433600160a060020a039081169116146108d857600080fd5b600160a060020a03811615156108ed57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b6000828202831580610983575082848281151561098057fe5b04145b151561098b57fe5b9392505050565b60008082848115156109a057fe5b04949350505050565b60008282018381101561098b57fe5b6000806000806920be134e7188a13800006013541115925060025442101580156109e457506003544211155b6014549092506b023f8cda0e3531091e7000009011159050818015610a065750825b8015610a0f5750805b935050505090565b60008080610a31606461049434605963ffffffff61096716565b9250610a4434600a63ffffffff61099216565b9150610a6682610a5a348663ffffffff610b0716565b9063ffffffff610b0716565b601054909150600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515610a9c57600080fd5b601154600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515610acf57600080fd5b601254600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610b0257600080fd5b505050565b600082821115610b1357fe5b509003905600a165627a7a72305820a9274094528a0819a03308d8fe2dc218d93b53ea79316f480597b007c2314eae0029
Swarm Source
bzzr://73dfd1c26e6c0b444d01f554a32699dce958ace240e441bbbb12f355c604db57
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.