More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,891 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Emergency Refund | 21042804 | 179 days ago | IN | 0 ETH | 0.00026111 | ||||
Emergency Refund | 21042803 | 179 days ago | IN | 0 ETH | 0.00026403 | ||||
Emergency Refund | 21042802 | 179 days ago | IN | 0 ETH | 0.00026714 | ||||
Emergency Refund | 21042801 | 179 days ago | IN | 0 ETH | 0.00026077 | ||||
Emergency Refund | 21042798 | 179 days ago | IN | 0 ETH | 0.00026777 | ||||
Emergency Refund | 21042797 | 179 days ago | IN | 0 ETH | 0.00026013 | ||||
Emergency Refund | 21042796 | 179 days ago | IN | 0 ETH | 0.00024147 | ||||
Emergency Refund | 21042795 | 179 days ago | IN | 0 ETH | 0.00026393 | ||||
Emergency Refund | 21042794 | 179 days ago | IN | 0 ETH | 0.00025698 | ||||
Emergency Refund | 21042793 | 179 days ago | IN | 0 ETH | 0.00023439 | ||||
Emergency Refund | 21042792 | 179 days ago | IN | 0 ETH | 0.00025219 | ||||
Emergency Refund | 21042791 | 179 days ago | IN | 0 ETH | 0.00027034 | ||||
Emergency Refund | 21042790 | 179 days ago | IN | 0 ETH | 0.00027715 | ||||
Emergency Refund | 21042789 | 179 days ago | IN | 0 ETH | 0.00026671 | ||||
All Stop | 21042788 | 179 days ago | IN | 0 ETH | 0.00020951 | ||||
Transfer | 21042787 | 179 days ago | IN | 3.5 ETH | 0.0009002 | ||||
Claim | 14172299 | 1168 days ago | IN | 0 ETH | 0.00440621 | ||||
Transfer | 6536367 | 2379 days ago | IN | 0.01 ETH | 0.00042 | ||||
Transfer | 6531998 | 2379 days ago | IN | 0.01 ETH | 0.00042 | ||||
Transfer | 6531971 | 2379 days ago | IN | 0.01 ETH | 0.00042 | ||||
Transfer | 6531967 | 2379 days ago | IN | 0.01 ETH | 0.00042 | ||||
Transfer | 6525965 | 2380 days ago | IN | 0.01 ETH | 0.00042 | ||||
Transfer | 6525916 | 2380 days ago | IN | 0.01 ETH | 0.00042 | ||||
Transfer | 6525895 | 2380 days ago | IN | 0.01 ETH | 0.00042 | ||||
Transfer | 6525802 | 2380 days ago | IN | 0.01 ETH | 0.00042 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 21042804 | 179 days ago | 2.22712502 ETH | ||||
Transfer | 21042803 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042802 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042801 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042798 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042797 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042796 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042795 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042794 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042793 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042792 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042791 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042790 | 179 days ago | 3.5 ETH | ||||
Transfer | 21042789 | 179 days ago | 3.5 ETH | ||||
Transfer | 5418617 | 2569 days ago | 0 ETH | ||||
Transfer | 3734934 | 2895 days ago | 166,666.66666666 ETH | ||||
Transfer | 3638804 | 2912 days ago | 15 ETH | ||||
Transfer | 3638687 | 2912 days ago | 1.5 ETH | ||||
Transfer | 3638659 | 2912 days ago | 1.5 ETH | ||||
Transfer | 3638644 | 2912 days ago | 10 ETH | ||||
Transfer | 3638635 | 2912 days ago | 15 ETH | ||||
Transfer | 3638578 | 2912 days ago | 1.5 ETH | ||||
Transfer | 3638526 | 2912 days ago | 1 ETH | ||||
Transfer | 3638507 | 2912 days ago | 1 ETH | ||||
Transfer | 3638484 | 2912 days ago | 1 ETH |
Loading...
Loading
Contract Name:
ICO
Compiler Version
v0.4.10+commit.f0d539ae
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-05-03 */ pragma solidity >=0.4.4; contract Sale { uint public startTime; uint public stopTime; uint public target; uint public raised; uint public collected; uint public numContributors; mapping(address => uint) public balances; function buyTokens(address _a, uint _eth, uint _time) returns (uint); function getTokens(address holder) constant returns (uint); function getRefund(address holder) constant returns (uint); function getSoldTokens() constant returns (uint); function getOwnerEth() constant returns (uint); function tokensPerEth() constant returns (uint); function isActive(uint time) constant returns (bool); function isComplete(uint time) constant returns (bool); } contract Constants { uint DECIMALS = 8; } contract EventDefinitions { event logSaleStart(uint startTime, uint stopTime); event logPurchase(address indexed purchaser, uint eth); event logClaim(address indexed purchaser, uint refund, uint tokens); //Token standard events event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } contract Testable { uint fakeTime; bool public testing; modifier onlyTesting() { if (!testing) throw; _; } function setFakeTime(uint t) onlyTesting { fakeTime = t; } function addMinutes(uint m) onlyTesting { fakeTime = fakeTime + (m * 1 minutes); } function addDays(uint d) onlyTesting { fakeTime = fakeTime + (d * 1 days); } function currTime() constant returns (uint) { if (testing) { return fakeTime; } else { return block.timestamp; } } function weiPerEth() constant returns (uint) { if (testing) { return 200; } else { return 10**18; } } } contract Owned { address public owner; modifier onlyOwner() { if (msg.sender != owner) throw; _; } address newOwner; function changeOwner(address _newOwner) onlyOwner { newOwner = _newOwner; } function acceptOwnership() { if (msg.sender == newOwner) { owner = newOwner; } } } //from Zeppelin contract SafeMath { function safeMul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function safeSub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function safeAdd(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c>=a && c>=b); return c; } function assert(bool assertion) internal { if (!assertion) throw; } } contract Token is SafeMath, Owned, Constants { uint public totalSupply; address ico; address controller; string public name; uint8 public decimals; string public symbol; modifier onlyControllers() { if (msg.sender != ico && msg.sender != controller) throw; _; } modifier onlyPayloadSize(uint numwords) { assert(msg.data.length == numwords * 32 + 4); _; } function Token() { owner = msg.sender; name = "Monolith TKN"; decimals = uint8(DECIMALS); symbol = "TKN"; } function setICO(address _ico) onlyOwner { if (ico != 0) throw; ico = _ico; } function setController(address _controller) onlyOwner { if (controller != 0) throw; controller = _controller; } event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); event Mint(address owner, uint amount); //only called from contracts so don't need msg.data.length check function mint(address addr, uint amount) onlyControllers { if (maxSupply > 0 && safeAdd(totalSupply, amount) > maxSupply) throw; balanceOf[addr] = safeAdd(balanceOf[addr], amount); totalSupply = safeAdd(totalSupply, amount); Mint(addr, amount); } mapping(address => uint) public balanceOf; mapping (address => mapping (address => uint)) public allowance; function transfer(address _to, uint _value) onlyPayloadSize(2) returns (bool success) { if (balanceOf[msg.sender] < _value) return false; balanceOf[msg.sender] = balanceOf[msg.sender] - _value; balanceOf[_to] = safeAdd(balanceOf[_to], _value); Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint _value) onlyPayloadSize(3) returns (bool success) { if (balanceOf[_from] < _value) return false; var allowed = allowance[_from][msg.sender]; if (allowed < _value) return false; balanceOf[_to] = safeAdd(balanceOf[_to], _value); balanceOf[_from] = safeSub(balanceOf[_from], _value); allowance[_from][msg.sender] = safeSub(allowed, _value); Transfer(_from, _to, _value); return true; } function approve(address _spender, uint _value) onlyPayloadSize(2) returns (bool success) { //require user to set to zero before resetting to nonzero if ((_value != 0) && (allowance[msg.sender][_spender] != 0)) { return false; } allowance[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } function increaseApproval (address _spender, uint _addedValue) onlyPayloadSize(2) returns (bool success) { uint oldValue = allowance[msg.sender][_spender]; allowance[msg.sender][_spender] = safeAdd(oldValue, _addedValue); return true; } function decreaseApproval (address _spender, uint _subtractedValue) onlyPayloadSize(2) returns (bool success) { uint oldValue = allowance[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowance[msg.sender][_spender] = 0; } else { allowance[msg.sender][_spender] = safeSub(oldValue, _subtractedValue); } return true; } //Holds accumulated dividend tokens other than TKN TokenHolder tokenholder; //once locked, can no longer upgrade tokenholder bool lockedTokenHolder; function lockTokenHolder() onlyOwner { lockedTokenHolder = true; } //while unlocked, //this gives owner lots of power over held dividend tokens //effectively can deny access to all accumulated tokens //thus crashing TKN value function setTokenHolder(address _th) onlyOwner { if (lockedTokenHolder) throw; tokenholder = TokenHolder(_th); } event Burn(address burner, uint amount); function burn(uint _amount) returns (bool result) { if (_amount > balanceOf[msg.sender]) return false; balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], _amount); totalSupply = safeSub(totalSupply, _amount); result = tokenholder.burn(msg.sender, _amount); if (!result) throw; Burn(msg.sender, _amount); } uint public maxSupply; function setMaxSupply(uint _maxSupply) { if (msg.sender != controller) throw; if (maxSupply > 0) throw; maxSupply = _maxSupply; } } contract TokenHolder { function burn(address _burner, uint _amount) returns (bool result) { return false; } } contract ICO is EventDefinitions, Testable, SafeMath, Owned { Token public token; address public controller; address public payee; Sale[] public sales; //salenum => minimum wei mapping (uint => uint) saleMinimumPurchases; //next sale number user can claim from mapping (address => uint) public nextClaim; //net contributed ETH by each user (in case of stop/refund) mapping (address => uint) refundInStop; modifier tokenIsSet() { if (address(token) == 0) throw; _; } modifier onlyController() { if (msg.sender != address(controller)) throw; _; } function ICO() { owner = msg.sender; payee = msg.sender; allStopper = msg.sender; } //payee can only be changed once //intent is to lock payee to a contract that holds or distributes funds //in deployment, be sure to do this before changing owner! //we initialize to owner to keep things simple if there's no payee contract function changePayee(address newPayee) onlyOwner notAllStopped { payee = newPayee; } function setToken(address _token) onlyOwner { if (address(token) != 0x0) throw; token = Token(_token); } //before adding sales, we can set this to be a test ico //this lets us manipulate time and drastically lowers weiPerEth function setAsTest() onlyOwner { if (sales.length == 0) { testing = true; } } function setController(address _controller) onlyOwner notAllStopped { if (address(controller) != 0x0) throw; controller = _controller; //ICOController(_controller); } //******************************************************** //Sales //******************************************************** function addSale(address sale, uint minimumPurchase) onlyController notAllStopped { uint salenum = sales.length; sales.push(Sale(sale)); saleMinimumPurchases[salenum] = minimumPurchase; logSaleStart(Sale(sale).startTime(), Sale(sale).stopTime()); } function addSale(address sale) onlyController { addSale(sale, 0); } function getCurrSale() constant returns (uint) { if (sales.length == 0) throw; //no reason to call before startFirstSale return sales.length - 1; } function currSaleActive() constant returns (bool) { return sales[getCurrSale()].isActive(currTime()); } function currSaleComplete() constant returns (bool) { return sales[getCurrSale()].isComplete(currTime()); } function numSales() constant returns (uint) { return sales.length; } function numContributors(uint salenum) constant returns (uint) { return sales[salenum].numContributors(); } //******************************************************** //ETH Purchases //******************************************************** event logPurchase(address indexed purchaser, uint value); function () payable { deposit(); } function deposit() payable notAllStopped { doDeposit(msg.sender, msg.value); //not in doDeposit because only for Eth: uint contrib = refundInStop[msg.sender]; refundInStop[msg.sender] = contrib + msg.value; logPurchase(msg.sender, msg.value); } //is also called by token contributions function doDeposit(address _for, uint _value) private { uint currSale = getCurrSale(); if (!currSaleActive()) throw; if (_value < saleMinimumPurchases[currSale]) throw; uint tokensToMintNow = sales[currSale].buyTokens(_for, _value, currTime()); if (tokensToMintNow > 0) { token.mint(_for, tokensToMintNow); } } //******************************************************** //Token Purchases //******************************************************** //Support for purchase via other tokens //We don't attempt to deal with those tokens directly //We just give admin ability to tell us what deposit to credit //We only allow for first sale //because first sale normally has no refunds //As written, the refund would be in ETH event logPurchaseViaToken( address indexed purchaser, address indexed token, uint depositedTokens, uint ethValue, bytes32 _reference); event logPurchaseViaFiat( address indexed purchaser, uint ethValue, bytes32 _reference); mapping (bytes32 => bool) public mintRefs; mapping (address => uint) public raisedFromToken; uint public raisedFromFiat; function depositFiat(address _for, uint _ethValue, bytes32 _reference) notAllStopped onlyOwner { if (getCurrSale() > 0) throw; //only first sale allows this if (mintRefs[_reference]) throw; //already minted for this reference mintRefs[_reference] = true; raisedFromFiat = safeAdd(raisedFromFiat, _ethValue); doDeposit(_for, _ethValue); logPurchaseViaFiat(_for, _ethValue, _reference); } function depositTokens(address _for, address _token, uint _ethValue, uint _depositedTokens, bytes32 _reference) notAllStopped onlyOwner { if (getCurrSale() > 0) throw; //only first sale allows this if (mintRefs[_reference]) throw; //already minted for this reference mintRefs[_reference] = true; raisedFromToken[_token] = safeAdd(raisedFromToken[_token], _ethValue); //tokens do not count toward price changes and limits //we have to look up pricing, and do our own mint() uint tokensPerEth = sales[0].tokensPerEth(); uint tkn = safeMul(_ethValue, tokensPerEth) / weiPerEth(); token.mint(_for, tkn); logPurchaseViaToken(_for, _token, _depositedTokens, _ethValue, _reference); } //******************************************************** //Roundoff Protection //******************************************************** //protect against roundoff in payouts //this prevents last person getting refund from not being able to collect function safebalance(uint bal) private returns (uint) { if (bal > this.balance) { return this.balance; } else { return bal; } } //It'd be nicer if last person got full amount //instead of getting shorted by safebalance() //topUp() allows admin to deposit excess ether to cover it //and later get back any left over uint public topUpAmount; function topUp() payable onlyOwner notAllStopped { topUpAmount = safeAdd(topUpAmount, msg.value); } function withdrawTopUp() onlyOwner notAllStopped { uint amount = topUpAmount; topUpAmount = 0; if (!msg.sender.call.value(safebalance(amount))()) throw; } //******************************************************** //Claims //******************************************************** //Claim whatever you're owed, //from whatever completed sales you haven't already claimed //this covers refunds, and any tokens not minted immediately //(i.e. auction tokens, not firstsale tokens) function claim() notAllStopped { var (tokens, refund, nc) = claimable(msg.sender, true); nextClaim[msg.sender] = nc; logClaim(msg.sender, refund, tokens); if (tokens > 0) { token.mint(msg.sender, tokens); } if (refund > 0) { refundInStop[msg.sender] = safeSub(refundInStop[msg.sender], refund); if (!msg.sender.send(safebalance(refund))) throw; } } //Allow admin to claim on behalf of user and send to any address. //Scenarios: // user lost key // user sent from an exchange // user has expensive fallback function // user is unknown, funds presumed abandoned //We only allow this after one year has passed. function claimFor(address _from, address _to) onlyOwner notAllStopped { var (tokens, refund, nc) = claimable(_from, false); nextClaim[_from] = nc; logClaim(_from, refund, tokens); if (tokens > 0) { token.mint(_to, tokens); } if (refund > 0) { refundInStop[_from] = safeSub(refundInStop[_from], refund); if (!_to.send(safebalance(refund))) throw; } } function claimable(address _a, bool _includeRecent) constant private tokenIsSet returns (uint tokens, uint refund, uint nc) { nc = nextClaim[_a]; while (nc < sales.length && sales[nc].isComplete(currTime()) && ( _includeRecent || sales[nc].stopTime() + 1 years < currTime() )) { refund = safeAdd(refund, sales[nc].getRefund(_a)); tokens = safeAdd(tokens, sales[nc].getTokens(_a)); nc += 1; } } function claimableTokens(address a) constant returns (uint) { var (tokens, refund, nc) = claimable(a, true); return tokens; } function claimableRefund(address a) constant returns (uint) { var (tokens, refund, nc) = claimable(a, true); return refund; } function claimableTokens() constant returns (uint) { return claimableTokens(msg.sender); } function claimableRefund() constant returns (uint) { return claimableRefund(msg.sender); } //******************************************************** //Withdraw ETH //******************************************************** mapping (uint => bool) ownerClaimed; function claimableOwnerEth(uint salenum) constant returns (uint) { uint time = currTime(); if (!sales[salenum].isComplete(time)) return 0; return sales[salenum].getOwnerEth(); } function claimOwnerEth(uint salenum) onlyOwner notAllStopped { if (ownerClaimed[salenum]) throw; uint ownereth = claimableOwnerEth(salenum); if (ownereth > 0) { ownerClaimed[salenum] = true; if ( !payee.call.value(safebalance(ownereth))() ) throw; } } //******************************************************** //Sweep tokens sent here //******************************************************** //Support transfer of erc20 tokens out of this contract's address //Even if we don't intend for people to send them here, somebody will event logTokenTransfer(address token, address to, uint amount); function transferTokens(address _token, address _to) onlyOwner { Token token = Token(_token); uint balance = token.balanceOf(this); token.transfer(_to, balance); logTokenTransfer(_token, _to, balance); } //******************************************************** //Emergency Stop //******************************************************** bool allstopped; bool permastopped; //allow allStopper to be more secure address than owner //in which case it doesn't make sense to let owner change it again address allStopper; function setAllStopper(address _a) onlyOwner { if (allStopper != owner) return; allStopper = _a; } modifier onlyAllStopper() { if (msg.sender != allStopper) throw; _; } event logAllStop(); event logAllStart(); modifier allStopped() { if (!allstopped) throw; _; } modifier notAllStopped() { if (allstopped) throw; _; } function allStop() onlyAllStopper { allstopped = true; logAllStop(); } function allStart() onlyAllStopper { if (!permastopped) { allstopped = false; logAllStart(); } } function emergencyRefund(address _a, uint _amt) allStopped onlyAllStopper { //if you start actually calling this refund, the disaster is real. //Don't allow restart, so this can't be abused permastopped = true; uint amt = _amt; uint ethbal = refundInStop[_a]; //convenient default so owner doesn't have to look up balances //this is fine as long as no funds have been stolen if (amt == 0) amt = ethbal; //nobody can be refunded more than they contributed if (amt > ethbal) amt = ethbal; //since everything is halted, safer to call.value //so we don't have to worry about expensive fallbacks if ( !_a.call.value(safebalance(amt))() ) throw; } function raised() constant returns (uint) { return sales[getCurrSale()].raised(); } function tokensPerEth() constant returns (uint) { return sales[getCurrSale()].tokensPerEth(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"raisedFromToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"setToken","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"address"}],"name":"setAllStopper","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newPayee","type":"address"}],"name":"changePayee","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currSaleActive","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_for","type":"address"},{"name":"_token","type":"address"},{"name":"_ethValue","type":"uint256"},{"name":"_depositedTokens","type":"uint256"},{"name":"_reference","type":"bytes32"}],"name":"depositTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"allStart","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currSaleComplete","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"sale","type":"address"}],"name":"addSale","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"salenum","type":"uint256"}],"name":"claimableOwnerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"claimableRefund","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"address"},{"name":"_amt","type":"uint256"}],"name":"emergencyRefund","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"}],"name":"transferTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiPerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"claimableRefund","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"salenum","type":"uint256"}],"name":"numContributors","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"t","type":"uint256"}],"name":"setFakeTime","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"claimableTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"testing","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"m","type":"uint256"}],"name":"addMinutes","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"setAsTest","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numSales","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"raisedFromFiat","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"salenum","type":"uint256"}],"name":"claimOwnerEth","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdrawTopUp","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"payee","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"name":"claimFor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sales","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"claimableTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensPerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"mintRefs","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"nextClaim","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"d","type":"uint256"}],"name":"addDays","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"topUp","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"topUpAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCurrSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"allStop","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_for","type":"address"},{"name":"_ethValue","type":"uint256"},{"name":"_reference","type":"bytes32"}],"name":"depositFiat","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"sale","type":"address"},{"name":"minimumPurchase","type":"uint256"}],"name":"addSale","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"raised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"logPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"token","type":"address"},{"indexed":false,"name":"depositedTokens","type":"uint256"},{"indexed":false,"name":"ethValue","type":"uint256"},{"indexed":false,"name":"_reference","type":"bytes32"}],"name":"logPurchaseViaToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"ethValue","type":"uint256"},{"indexed":false,"name":"_reference","type":"bytes32"}],"name":"logPurchaseViaFiat","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"logTokenTransfer","type":"event"},{"anonymous":false,"inputs":[],"name":"logAllStop","type":"event"},{"anonymous":false,"inputs":[],"name":"logAllStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"startTime","type":"uint256"},{"indexed":false,"name":"stopTime","type":"uint256"}],"name":"logSaleStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"refund","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"logClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
6060604052341561000c57fe5b5b6001805461010060a860020a03191661010033600160a060020a03169081029190911790915560058054600160a060020a03191682179055600f80546201000060b060020a031916620100009092029190911790555b5b61234b806100736000396000f300606060405236156102355763ffffffff60e060020a60003504166307cbe8ab8114610246578063144fa6d714610274578063156773ca146102925780631a6af7b7146102b05780631c1bc850146102d2578063379ba3b7146102f05780633fe3f42714610314578063443f95dc1461034157806348b17b64146103535780634a6d0292146103775780634e71d92d1461039557806353cea153146103a75780635ab827f6146103cc57806367f8a8b8146103ee5780636a092e791461040f5780636c530ee3146104335780636e1e063f1461045557806371c1d1961461048357806379ba5097146104a85780637a08339d146104ba57806384d24226146104cf5780638d03b102146104fd5780638da5cb5b146105215780638ff591b41461054d57806392eefe9b1461056257806398e54c551461058057806399aa93c8146105925780639c492b9e146105b4578063a015cb10146105d6578063a6f9dae1146105eb578063a8af232b14610609578063ae90b2131461061b578063b4ba9e1114610647578063b5f522f71461066b578063bab8fe401461069a578063cbdd69b5146106bc578063cd5681d5146106de578063cf00746014610705578063d0e30db014610733578063dabd5d651461073d578063dc29f1de14610752578063dd592a321461075c578063e12097b71461077e578063ecb6c47a146107a0578063eeee7cc0146107b2578063efecab8a146107d6578063f0ea4bfc146107f7578063f77c479114610819578063fc0c546a14610845575b6102445b610241610871565b5b565b005b341561024e57fe5b610262600160a060020a03600435166108ef565b60408051918252519081900360200190f35b341561027c57fe5b610244600160a060020a0360043516610901565b005b341561029a57fe5b610244600160a060020a0360043516610959565b005b34156102b857fe5b6102626109d6565b60408051918252519081900360200190f35b34156102da57fe5b610244600160a060020a03600435166109f4565b005b34156102f857fe5b610300610a47565b604080519115158252519081900360200190f35b341561031c57fe5b610244600160a060020a0360043581169060243516604435606435608435610aeb565b005b341561034957fe5b610244610d17565b005b341561035b57fe5b610300610d82565b604080519115158252519081900360200190f35b341561037f57fe5b610244600160a060020a0360043516610e26565b005b341561039d57fe5b610244610e52565b005b34156103af57fe5b610262600435610fc2565b60408051918252519081900360200190f35b34156103d457fe5b610262611100565b60408051918252519081900360200190f35b34156103f657fe5b610244600160a060020a0360043516602435611111565b005b341561041757fe5b610244600160a060020a03600435811690602435166111c9565b005b341561043b57fe5b610262611336565b60408051918252519081900360200190f35b341561045d57fe5b610262600160a060020a036004351661135f565b60408051918252519081900360200190f35b341561048b57fe5b610262600435611384565b60408051918252519081900360200190f35b34156104b057fe5b610244611416565b005b34156104c257fe5b610244600435611467565b005b34156104d757fe5b610262600160a060020a0360043516611483565b60408051918252519081900360200190f35b341561050557fe5b6103006114a8565b604080519115158252519081900360200190f35b341561052957fe5b6105316114b1565b60408051600160a060020a039092168252519081900360200190f35b341561055557fe5b6102446004356114c5565b005b341561056a57fe5b610244600160a060020a03600435166114e7565b005b341561058857fe5b610244611551565b005b341561059a57fe5b61026261158c565b60408051918252519081900360200190f35b34156105bc57fe5b610262611593565b60408051918252519081900360200190f35b34156105de57fe5b610244600435611599565b005b34156105f357fe5b610244600160a060020a0360043516611655565b005b341561061157fe5b610244611696565b005b341561062357fe5b61053161170e565b60408051600160a060020a039092168252519081900360200190f35b341561064f57fe5b610244600160a060020a036004358116906024351661171d565b005b341561067357fe5b6105316004356118b4565b60408051600160a060020a039092168252519081900360200190f35b34156106a257fe5b6102626118e6565b60408051918252519081900360200190f35b34156106c457fe5b6102626118f7565b60408051918252519081900360200190f35b34156106e657fe5b61030060043561198c565b604080519115158252519081900360200190f35b341561070d57fe5b610262600160a060020a03600435166119a1565b60408051918252519081900360200190f35b610244610871565b005b341561074557fe5b6102446004356119b3565b005b6102446119d7565b005b341561076457fe5b610262611a1d565b60408051918252519081900360200190f35b341561078657fe5b610262611a23565b60408051918252519081900360200190f35b34156107a857fe5b610244611a41565b005b34156107ba57fe5b610244600160a060020a0360043516602435604435611a9d565b005b34156107de57fe5b610244600160a060020a0360043516602435611b80565b005b34156107ff57fe5b610262611d08565b60408051918252519081900360200190f35b341561082157fe5b610531611d9d565b60408051600160a060020a039092168252519081900360200190f35b341561084d57fe5b610531611dac565b60408051600160a060020a039092168252519081900360200190f35b600f5460009060ff16156108855760006000fd5b61088f3334611dbb565b50600160a060020a033316600081815260096020908152604091829020805434808201909255835191825292519293927fc30df14cb928081d7587d26c00adb1c5483c8049cc0456e2d2e8e226dfb7c920929181900390910190a25b5b50565b600b6020526000908152604090205481565b60015433600160a060020a0390811661010090920416146109225760006000fd5b600354600160a060020a0316156109395760006000fd5b60038054600160a060020a031916600160a060020a0383161790555b5b50565b60015433600160a060020a03908116610100909204161461097a5760006000fd5b600154600f54620100009004600160a060020a0390811661010090920416146109a2576108eb565b600f805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038416021790555b5b50565b60015460009060ff16156109ed57506000546109f0565b50425b5b90565b60015433600160a060020a039081166101009092041614610a155760006000fd5b600f5460ff1615610a265760006000fd5b60058054600160a060020a031916600160a060020a0383161790555b5b5b50565b60006006610a53611a23565b81548110610a5d57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a03166382afd23b610a936109d6565b6000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b600f54600090819060ff1615610b015760006000fd5b60015433600160a060020a039081166101009092041614610b225760006000fd5b6000610b2c611a23565b1115610b385760006000fd5b6000838152600a602052604090205460ff1615610b555760006000fd5b6000838152600a60209081526040808320805460ff19166001179055600160a060020a0389168352600b909152902054610b8f9086611f28565b600160a060020a0387166000908152600b6020526040812091909155600680549091908110610bba57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663cbdd69b56000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610c1f57fe5b60325a03f11515610c2c57fe5b5050604051519250610c3e9050611336565b610c488684611f50565b811515610c5157fe5b6003546040805160e060020a6340c10f19028152600160a060020a038c81166004830152949093046024840181905290519094509216916340c10f199160448082019260009290919082900301818387803b1515610cab57fe5b60325a03f11515610cb857fe5b505060408051868152602081018890528082018690529051600160a060020a03808a1693508a16917f15910e5cea9f22af6be011580707d2135bf1a23bf888657249f6e887af70a1fc919081900360600190a35b5b5b50505050505050565b600f5433600160a060020a03908116620100009092041614610d395760006000fd5b600f54610100900460ff16151561024157600f805460ff191690556040517f31ebd13fa817dd60b9d0ca3b04f5c010467dad9e01dce48c68ccd946dd8ec62990600090a15b5b5b565b60006006610d8e611a23565b81548110610d9857fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316633a0be1a6610a936109d6565b6000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b60045433600160a060020a03908116911614610e425760006000fd5b6108eb816000611b80565b5b5b50565b600f546000908190819060ff1615610e6a5760006000fd5b610e75336001611f7f565b600160a060020a03331660008181526008602090815260409182902084905581518581529081018690528151959850939650919450927fb72449e538635569e6f2eb1500da813bc2847392fa6a6972966a484ea8f9d73a9281900390910190a26000831115610f43576003546040805160e060020a6340c10f19028152600160a060020a03338116600483015260248201879052915191909216916340c10f1991604480830192600092919082900301818387803b1515610f3257fe5b60325a03f11515610f3f57fe5b5050505b6000821115610fba57600160a060020a033316600090815260096020526040902054610f6f9083612278565b600160a060020a0333166000818152600960205260409020919091556108fc610f9784612291565b6040518115909202916000818181858888f193505050501515610fba5760006000fd5b5b5b5b505050565b60006000610fce6109d6565b9050600683815481101515610fdf57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316633a0be1a6826000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b151561104c57fe5b60325a03f1151561105957fe5b5050604051511515905061107057600091506110fa565b600680548490811061107e57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663c5dacf686000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b15156110e357fe5b60325a03f115156110f057fe5b5050604051519250505b50919050565b600061110b3361135f565b90505b90565b600f54600090819060ff1615156111285760006000fd5b600f5433600160a060020a0390811662010000909204161461114a5760006000fd5b5050600f805461ff001916610100179055600160a060020a0382166000908152600960205260409020548190811515611181578091505b8082111561118d578091505b83600160a060020a03166111a083612291565b604051600081818185876185025a03f19250505015156111c05760006000fd5b5b5b5b50505050565b600154600090819033600160a060020a0390811661010090920416146111ef5760006000fd5b83915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561125257fe5b60325a03f1151561125f57fe5b50505060405180519050905081600160a060020a031663a9059cbb84836000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15156112d357fe5b60325a03f115156112e057fe5b505060408051600160a060020a0380881682528616602082015280820184905290517f977a8f1bdcf5f444d404662ea2c090d707ebcef1be61b37fe6ce74d0c6288fb892509081900360600190a15b5b50505050565b60015460009060ff161561134c575060c86109f0565b50670de0b6b3a76400006109f0565b5b90565b6000600060006000611372856001611f7f565b9250925092508193505b505050919050565b600060068281548110151561139557fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316638f03850b6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b15156113fa57fe5b60325a03f1151561140757fe5b5050604051519150505b919050565b60025433600160a060020a03908116911614156102415760025460018054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555b5b565b60015460ff1615156114795760006000fd5b60008190555b5b50565b6000600060006000611496856001611f7f565b9250925092508293505b505050919050565b60015460ff1681565b6001546101009004600160a060020a031681565b60015460ff1615156114d75760006000fd5b60008054603c83020190555b5b50565b60015433600160a060020a0390811661010090920416146115085760006000fd5b600f5460ff16156115195760006000fd5b600454600160a060020a0316156115305760006000fd5b60048054600160a060020a031916600160a060020a0383161790555b5b5b50565b60015433600160a060020a0390811661010090920416146115725760006000fd5b6006541515610241576001805460ff1916811790555b5b5b565b6006545b90565b600c5481565b60015460009033600160a060020a0390811661010090920416146115bd5760006000fd5b600f5460ff16156115ce5760006000fd5b6000828152600e602052604090205460ff16156115eb5760006000fd5b6115f482610fc2565b9050600081111561164d576000828152600e60205260409020805460ff19166001179055600554600160a060020a031661162d82612291565b604051600081818185876185025a03f192505050151561164d5760006000fd5b5b5b5b5b5050565b60015433600160a060020a0390811661010090920416146116765760006000fd5b60028054600160a060020a031916600160a060020a0383161790555b5b50565b60015460009033600160a060020a0390811661010090920416146116ba5760006000fd5b600f5460ff16156116cb5760006000fd5b50600d80546000909155600160a060020a0333166116e882612291565b604051600081818185876185025a03f19250505015156108eb5760006000fd5b5b5b5b50565b600554600160a060020a031681565b6001546000908190819033600160a060020a0390811661010090920416146117455760006000fd5b600f5460ff16156117565760006000fd5b611761856000611f7f565b600160a060020a03881660008181526008602090815260409182902084905581518581529081018690528151959850939650919450927fb72449e538635569e6f2eb1500da813bc2847392fa6a6972966a484ea8f9d73a9281900390910190a2600083111561182f576003546040805160e060020a6340c10f19028152600160a060020a03878116600483015260248201879052915191909216916340c10f1991604480830192600092919082900301818387803b151561181e57fe5b60325a03f1151561182b57fe5b5050505b60008211156118a957600160a060020a03851660009081526009602052604090205461185b9083612278565b600160a060020a0380871660009081526009602052604090209190915584166108fc61188684612291565b6040518115909202916000818181858888f1935050505015156118a95760006000fd5b5b5b5b5b5050505050565b60068054829081106118c257fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600061110b33611483565b90505b90565b60006006611903611a23565b8154811061190d57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663cbdd69b56000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b600a6020526000908152604090205460ff1681565b60086020526000908152604090205481565b60015460ff1615156119c55760006000fd5b600080546201518083020190555b5b50565b60015433600160a060020a0390811661010090920416146119f85760006000fd5b600f5460ff1615611a095760006000fd5b611a15600d5434611f28565b600d555b5b5b565b600d5481565b6006546000901515611a355760006000fd5b50600654600019015b90565b600f5433600160a060020a03908116620100009092041614611a635760006000fd5b600f805460ff191660011790556040517f0a9a784214055eda7660e0eea4cac1eb3e349173dce3741cb49393e72e98070190600090a15b5b565b600f5460ff1615611aae5760006000fd5b60015433600160a060020a039081166101009092041614611acf5760006000fd5b6000611ad9611a23565b1115611ae55760006000fd5b6000818152600a602052604090205460ff1615611b025760006000fd5b6000818152600a60205260409020805460ff19166001179055600c54611b289083611f28565b600c55611b358383611dbb565b60408051838152602081018390528151600160a060020a038616927f8a890695a0d1d5bc0de2dd9278f1b080ce4fa5f192849361d46119e98dea1f4d928290030190a25b5b5b505050565b60045460009033600160a060020a03908116911614611b9f5760006000fd5b600f5460ff1615611bb05760006000fd5b5060068054908160018101611bc583826122d4565b916000526020600020900160005b8154600160a060020a038088166101009390930a8381029102199091161790915560008381526007602090815260408083208790558051820183905280517f78e9792500000000000000000000000000000000000000000000000000000000815290517fea217d4dc825d94490e4479842497722c85e7da8444afc5a5c6928966e85849395506378e9792593600480840194938390030190829087803b1515611c7857fe5b60325a03f11515611c8557fe5b5050506040518051905084600160a060020a03166303ff5e736000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515611cd557fe5b60325a03f11515611ce257fe5b5050604080518051938152602081019390935280519283900301919050a15b5b5b505050565b60006006611d14611a23565b81548110611d1e57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663f0ea4bfc6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b600454600160a060020a031681565b600354600160a060020a031681565b60006000611dc7611a23565b9150611dd1610a47565b1515611ddd5760006000fd5b600082815260076020526040902054831015611df95760006000fd5b6006805483908110611e0757fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663d2395dcd8585611e3f6109d6565b6000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050602060405180830381600087803b1515611e9d57fe5b60325a03f11515611eaa57fe5b50506040515191505060008111156111c0576003546040805160e060020a6340c10f19028152600160a060020a03878116600483015260248201859052915191909216916340c10f1991604480830192600092919082900301818387803b1515611f1057fe5b60325a03f11515610d0c57fe5b5050505b5b50505050565b6000828201611f45848210801590611f405750838210155b6122c3565b8091505b5092915050565b6000828202611f45841580611f405750838583811515611f6c57fe5b04145b6122c3565b8091505b5092915050565b60035460009081908190600160a060020a03161515611f9e5760006000fd5b50600160a060020a0384166000908152600860205260409020545b6006548110801561205d57506006805482908110611fd357fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316633a0be1a66120096109d6565b6000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b151561204757fe5b60325a03f1151561205457fe5b50506040515190505b80156121055750838061210557506120736109d6565b600680548390811061208157fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a03166303ff5e736000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b15156120e657fe5b60325a03f115156120f357fe5b505050604051805190506301e1338001105b5b1561226f576121b78260068381548110151561211e57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663696c58c4886000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561219d57fe5b60325a03f115156121aa57fe5b5050604051519050611f28565b9150612265836006838154811015156121cc57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663450efe21886000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561219d57fe5b60325a03f115156121aa57fe5b5050604051519050611f28565b9250600101611fb9565b5b5b9250925092565b6000612286838311156122c3565b508082035b92915050565b600030600160a060020a0316318211156122b65750600160a060020a03301631611411565b5080611411565b5b919050565b8015156108eb5760006000fd5b5b50565b815481835581811511610fba57600083815260209020610fba9181019083016122fe565b5b505050565b6109f091905b808211156123185760008155600101612304565b5090565b905600a165627a7a72305820f0811d8f921c387af47f7a37b04616fc6ee77f8321d9bb1e4ac21f3b1c61db8e0029
Deployed Bytecode
0x606060405236156102355763ffffffff60e060020a60003504166307cbe8ab8114610246578063144fa6d714610274578063156773ca146102925780631a6af7b7146102b05780631c1bc850146102d2578063379ba3b7146102f05780633fe3f42714610314578063443f95dc1461034157806348b17b64146103535780634a6d0292146103775780634e71d92d1461039557806353cea153146103a75780635ab827f6146103cc57806367f8a8b8146103ee5780636a092e791461040f5780636c530ee3146104335780636e1e063f1461045557806371c1d1961461048357806379ba5097146104a85780637a08339d146104ba57806384d24226146104cf5780638d03b102146104fd5780638da5cb5b146105215780638ff591b41461054d57806392eefe9b1461056257806398e54c551461058057806399aa93c8146105925780639c492b9e146105b4578063a015cb10146105d6578063a6f9dae1146105eb578063a8af232b14610609578063ae90b2131461061b578063b4ba9e1114610647578063b5f522f71461066b578063bab8fe401461069a578063cbdd69b5146106bc578063cd5681d5146106de578063cf00746014610705578063d0e30db014610733578063dabd5d651461073d578063dc29f1de14610752578063dd592a321461075c578063e12097b71461077e578063ecb6c47a146107a0578063eeee7cc0146107b2578063efecab8a146107d6578063f0ea4bfc146107f7578063f77c479114610819578063fc0c546a14610845575b6102445b610241610871565b5b565b005b341561024e57fe5b610262600160a060020a03600435166108ef565b60408051918252519081900360200190f35b341561027c57fe5b610244600160a060020a0360043516610901565b005b341561029a57fe5b610244600160a060020a0360043516610959565b005b34156102b857fe5b6102626109d6565b60408051918252519081900360200190f35b34156102da57fe5b610244600160a060020a03600435166109f4565b005b34156102f857fe5b610300610a47565b604080519115158252519081900360200190f35b341561031c57fe5b610244600160a060020a0360043581169060243516604435606435608435610aeb565b005b341561034957fe5b610244610d17565b005b341561035b57fe5b610300610d82565b604080519115158252519081900360200190f35b341561037f57fe5b610244600160a060020a0360043516610e26565b005b341561039d57fe5b610244610e52565b005b34156103af57fe5b610262600435610fc2565b60408051918252519081900360200190f35b34156103d457fe5b610262611100565b60408051918252519081900360200190f35b34156103f657fe5b610244600160a060020a0360043516602435611111565b005b341561041757fe5b610244600160a060020a03600435811690602435166111c9565b005b341561043b57fe5b610262611336565b60408051918252519081900360200190f35b341561045d57fe5b610262600160a060020a036004351661135f565b60408051918252519081900360200190f35b341561048b57fe5b610262600435611384565b60408051918252519081900360200190f35b34156104b057fe5b610244611416565b005b34156104c257fe5b610244600435611467565b005b34156104d757fe5b610262600160a060020a0360043516611483565b60408051918252519081900360200190f35b341561050557fe5b6103006114a8565b604080519115158252519081900360200190f35b341561052957fe5b6105316114b1565b60408051600160a060020a039092168252519081900360200190f35b341561055557fe5b6102446004356114c5565b005b341561056a57fe5b610244600160a060020a03600435166114e7565b005b341561058857fe5b610244611551565b005b341561059a57fe5b61026261158c565b60408051918252519081900360200190f35b34156105bc57fe5b610262611593565b60408051918252519081900360200190f35b34156105de57fe5b610244600435611599565b005b34156105f357fe5b610244600160a060020a0360043516611655565b005b341561061157fe5b610244611696565b005b341561062357fe5b61053161170e565b60408051600160a060020a039092168252519081900360200190f35b341561064f57fe5b610244600160a060020a036004358116906024351661171d565b005b341561067357fe5b6105316004356118b4565b60408051600160a060020a039092168252519081900360200190f35b34156106a257fe5b6102626118e6565b60408051918252519081900360200190f35b34156106c457fe5b6102626118f7565b60408051918252519081900360200190f35b34156106e657fe5b61030060043561198c565b604080519115158252519081900360200190f35b341561070d57fe5b610262600160a060020a03600435166119a1565b60408051918252519081900360200190f35b610244610871565b005b341561074557fe5b6102446004356119b3565b005b6102446119d7565b005b341561076457fe5b610262611a1d565b60408051918252519081900360200190f35b341561078657fe5b610262611a23565b60408051918252519081900360200190f35b34156107a857fe5b610244611a41565b005b34156107ba57fe5b610244600160a060020a0360043516602435604435611a9d565b005b34156107de57fe5b610244600160a060020a0360043516602435611b80565b005b34156107ff57fe5b610262611d08565b60408051918252519081900360200190f35b341561082157fe5b610531611d9d565b60408051600160a060020a039092168252519081900360200190f35b341561084d57fe5b610531611dac565b60408051600160a060020a039092168252519081900360200190f35b600f5460009060ff16156108855760006000fd5b61088f3334611dbb565b50600160a060020a033316600081815260096020908152604091829020805434808201909255835191825292519293927fc30df14cb928081d7587d26c00adb1c5483c8049cc0456e2d2e8e226dfb7c920929181900390910190a25b5b50565b600b6020526000908152604090205481565b60015433600160a060020a0390811661010090920416146109225760006000fd5b600354600160a060020a0316156109395760006000fd5b60038054600160a060020a031916600160a060020a0383161790555b5b50565b60015433600160a060020a03908116610100909204161461097a5760006000fd5b600154600f54620100009004600160a060020a0390811661010090920416146109a2576108eb565b600f805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038416021790555b5b50565b60015460009060ff16156109ed57506000546109f0565b50425b5b90565b60015433600160a060020a039081166101009092041614610a155760006000fd5b600f5460ff1615610a265760006000fd5b60058054600160a060020a031916600160a060020a0383161790555b5b5b50565b60006006610a53611a23565b81548110610a5d57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a03166382afd23b610a936109d6565b6000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b600f54600090819060ff1615610b015760006000fd5b60015433600160a060020a039081166101009092041614610b225760006000fd5b6000610b2c611a23565b1115610b385760006000fd5b6000838152600a602052604090205460ff1615610b555760006000fd5b6000838152600a60209081526040808320805460ff19166001179055600160a060020a0389168352600b909152902054610b8f9086611f28565b600160a060020a0387166000908152600b6020526040812091909155600680549091908110610bba57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663cbdd69b56000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610c1f57fe5b60325a03f11515610c2c57fe5b5050604051519250610c3e9050611336565b610c488684611f50565b811515610c5157fe5b6003546040805160e060020a6340c10f19028152600160a060020a038c81166004830152949093046024840181905290519094509216916340c10f199160448082019260009290919082900301818387803b1515610cab57fe5b60325a03f11515610cb857fe5b505060408051868152602081018890528082018690529051600160a060020a03808a1693508a16917f15910e5cea9f22af6be011580707d2135bf1a23bf888657249f6e887af70a1fc919081900360600190a35b5b5b50505050505050565b600f5433600160a060020a03908116620100009092041614610d395760006000fd5b600f54610100900460ff16151561024157600f805460ff191690556040517f31ebd13fa817dd60b9d0ca3b04f5c010467dad9e01dce48c68ccd946dd8ec62990600090a15b5b5b565b60006006610d8e611a23565b81548110610d9857fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316633a0be1a6610a936109d6565b6000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b60045433600160a060020a03908116911614610e425760006000fd5b6108eb816000611b80565b5b5b50565b600f546000908190819060ff1615610e6a5760006000fd5b610e75336001611f7f565b600160a060020a03331660008181526008602090815260409182902084905581518581529081018690528151959850939650919450927fb72449e538635569e6f2eb1500da813bc2847392fa6a6972966a484ea8f9d73a9281900390910190a26000831115610f43576003546040805160e060020a6340c10f19028152600160a060020a03338116600483015260248201879052915191909216916340c10f1991604480830192600092919082900301818387803b1515610f3257fe5b60325a03f11515610f3f57fe5b5050505b6000821115610fba57600160a060020a033316600090815260096020526040902054610f6f9083612278565b600160a060020a0333166000818152600960205260409020919091556108fc610f9784612291565b6040518115909202916000818181858888f193505050501515610fba5760006000fd5b5b5b5b505050565b60006000610fce6109d6565b9050600683815481101515610fdf57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316633a0be1a6826000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b151561104c57fe5b60325a03f1151561105957fe5b5050604051511515905061107057600091506110fa565b600680548490811061107e57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663c5dacf686000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b15156110e357fe5b60325a03f115156110f057fe5b5050604051519250505b50919050565b600061110b3361135f565b90505b90565b600f54600090819060ff1615156111285760006000fd5b600f5433600160a060020a0390811662010000909204161461114a5760006000fd5b5050600f805461ff001916610100179055600160a060020a0382166000908152600960205260409020548190811515611181578091505b8082111561118d578091505b83600160a060020a03166111a083612291565b604051600081818185876185025a03f19250505015156111c05760006000fd5b5b5b5b50505050565b600154600090819033600160a060020a0390811661010090920416146111ef5760006000fd5b83915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561125257fe5b60325a03f1151561125f57fe5b50505060405180519050905081600160a060020a031663a9059cbb84836000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15156112d357fe5b60325a03f115156112e057fe5b505060408051600160a060020a0380881682528616602082015280820184905290517f977a8f1bdcf5f444d404662ea2c090d707ebcef1be61b37fe6ce74d0c6288fb892509081900360600190a15b5b50505050565b60015460009060ff161561134c575060c86109f0565b50670de0b6b3a76400006109f0565b5b90565b6000600060006000611372856001611f7f565b9250925092508193505b505050919050565b600060068281548110151561139557fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316638f03850b6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b15156113fa57fe5b60325a03f1151561140757fe5b5050604051519150505b919050565b60025433600160a060020a03908116911614156102415760025460018054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555b5b565b60015460ff1615156114795760006000fd5b60008190555b5b50565b6000600060006000611496856001611f7f565b9250925092508293505b505050919050565b60015460ff1681565b6001546101009004600160a060020a031681565b60015460ff1615156114d75760006000fd5b60008054603c83020190555b5b50565b60015433600160a060020a0390811661010090920416146115085760006000fd5b600f5460ff16156115195760006000fd5b600454600160a060020a0316156115305760006000fd5b60048054600160a060020a031916600160a060020a0383161790555b5b5b50565b60015433600160a060020a0390811661010090920416146115725760006000fd5b6006541515610241576001805460ff1916811790555b5b5b565b6006545b90565b600c5481565b60015460009033600160a060020a0390811661010090920416146115bd5760006000fd5b600f5460ff16156115ce5760006000fd5b6000828152600e602052604090205460ff16156115eb5760006000fd5b6115f482610fc2565b9050600081111561164d576000828152600e60205260409020805460ff19166001179055600554600160a060020a031661162d82612291565b604051600081818185876185025a03f192505050151561164d5760006000fd5b5b5b5b5b5050565b60015433600160a060020a0390811661010090920416146116765760006000fd5b60028054600160a060020a031916600160a060020a0383161790555b5b50565b60015460009033600160a060020a0390811661010090920416146116ba5760006000fd5b600f5460ff16156116cb5760006000fd5b50600d80546000909155600160a060020a0333166116e882612291565b604051600081818185876185025a03f19250505015156108eb5760006000fd5b5b5b5b50565b600554600160a060020a031681565b6001546000908190819033600160a060020a0390811661010090920416146117455760006000fd5b600f5460ff16156117565760006000fd5b611761856000611f7f565b600160a060020a03881660008181526008602090815260409182902084905581518581529081018690528151959850939650919450927fb72449e538635569e6f2eb1500da813bc2847392fa6a6972966a484ea8f9d73a9281900390910190a2600083111561182f576003546040805160e060020a6340c10f19028152600160a060020a03878116600483015260248201879052915191909216916340c10f1991604480830192600092919082900301818387803b151561181e57fe5b60325a03f1151561182b57fe5b5050505b60008211156118a957600160a060020a03851660009081526009602052604090205461185b9083612278565b600160a060020a0380871660009081526009602052604090209190915584166108fc61188684612291565b6040518115909202916000818181858888f1935050505015156118a95760006000fd5b5b5b5b5b5050505050565b60068054829081106118c257fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600061110b33611483565b90505b90565b60006006611903611a23565b8154811061190d57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663cbdd69b56000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b600a6020526000908152604090205460ff1681565b60086020526000908152604090205481565b60015460ff1615156119c55760006000fd5b600080546201518083020190555b5b50565b60015433600160a060020a0390811661010090920416146119f85760006000fd5b600f5460ff1615611a095760006000fd5b611a15600d5434611f28565b600d555b5b5b565b600d5481565b6006546000901515611a355760006000fd5b50600654600019015b90565b600f5433600160a060020a03908116620100009092041614611a635760006000fd5b600f805460ff191660011790556040517f0a9a784214055eda7660e0eea4cac1eb3e349173dce3741cb49393e72e98070190600090a15b5b565b600f5460ff1615611aae5760006000fd5b60015433600160a060020a039081166101009092041614611acf5760006000fd5b6000611ad9611a23565b1115611ae55760006000fd5b6000818152600a602052604090205460ff1615611b025760006000fd5b6000818152600a60205260409020805460ff19166001179055600c54611b289083611f28565b600c55611b358383611dbb565b60408051838152602081018390528151600160a060020a038616927f8a890695a0d1d5bc0de2dd9278f1b080ce4fa5f192849361d46119e98dea1f4d928290030190a25b5b5b505050565b60045460009033600160a060020a03908116911614611b9f5760006000fd5b600f5460ff1615611bb05760006000fd5b5060068054908160018101611bc583826122d4565b916000526020600020900160005b8154600160a060020a038088166101009390930a8381029102199091161790915560008381526007602090815260408083208790558051820183905280517f78e9792500000000000000000000000000000000000000000000000000000000815290517fea217d4dc825d94490e4479842497722c85e7da8444afc5a5c6928966e85849395506378e9792593600480840194938390030190829087803b1515611c7857fe5b60325a03f11515611c8557fe5b5050506040518051905084600160a060020a03166303ff5e736000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515611cd557fe5b60325a03f11515611ce257fe5b5050604080518051938152602081019390935280519283900301919050a15b5b5b505050565b60006006611d14611a23565b81548110611d1e57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663f0ea4bfc6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515610ad157fe5b60325a03f11515610ade57fe5b5050604051519150505b90565b600454600160a060020a031681565b600354600160a060020a031681565b60006000611dc7611a23565b9150611dd1610a47565b1515611ddd5760006000fd5b600082815260076020526040902054831015611df95760006000fd5b6006805483908110611e0757fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663d2395dcd8585611e3f6109d6565b6000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050602060405180830381600087803b1515611e9d57fe5b60325a03f11515611eaa57fe5b50506040515191505060008111156111c0576003546040805160e060020a6340c10f19028152600160a060020a03878116600483015260248201859052915191909216916340c10f1991604480830192600092919082900301818387803b1515611f1057fe5b60325a03f11515610d0c57fe5b5050505b5b50505050565b6000828201611f45848210801590611f405750838210155b6122c3565b8091505b5092915050565b6000828202611f45841580611f405750838583811515611f6c57fe5b04145b6122c3565b8091505b5092915050565b60035460009081908190600160a060020a03161515611f9e5760006000fd5b50600160a060020a0384166000908152600860205260409020545b6006548110801561205d57506006805482908110611fd357fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316633a0be1a66120096109d6565b6000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b151561204757fe5b60325a03f1151561205457fe5b50506040515190505b80156121055750838061210557506120736109d6565b600680548390811061208157fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a03166303ff5e736000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b15156120e657fe5b60325a03f115156120f357fe5b505050604051805190506301e1338001105b5b1561226f576121b78260068381548110151561211e57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663696c58c4886000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561219d57fe5b60325a03f115156121aa57fe5b5050604051519050611f28565b9150612265836006838154811015156121cc57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031663450efe21886000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561219d57fe5b60325a03f115156121aa57fe5b5050604051519050611f28565b9250600101611fb9565b5b5b9250925092565b6000612286838311156122c3565b508082035b92915050565b600030600160a060020a0316318211156122b65750600160a060020a03301631611411565b5080611411565b5b919050565b8015156108eb5760006000fd5b5b50565b815481835581811511610fba57600083815260209020610fba9181019083016122fe565b5b505050565b6109f091905b808211156123185760008155600101612304565b5090565b905600a165627a7a72305820f0811d8f921c387af47f7a37b04616fc6ee77f8321d9bb1e4ac21f3b1c61db8e0029
Swarm Source
bzzr://f0811d8f921c387af47f7a37b04616fc6ee77f8321d9bb1e4ac21f3b1c61db8e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.20336 | 3.3315 | $0.6774 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.