Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 195 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stop | 5498839 | 2328 days ago | IN | 0 ETH | 0.00002705 | ||||
Burn Investor To... | 5431916 | 2340 days ago | IN | 0 ETH | 0.00110465 | ||||
Burn Investor To... | 5426737 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426733 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426725 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426714 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426707 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426700 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426695 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426686 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426677 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426663 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426657 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426650 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426640 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426629 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426623 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426619 | 2340 days ago | IN | 0 ETH | 0.00002912 | ||||
Burn Investor To... | 5426609 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426599 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426593 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426582 | 2340 days ago | IN | 0 ETH | 0.00002912 | ||||
Burn Investor To... | 5426568 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426559 | 2340 days ago | IN | 0 ETH | 0.00002918 | ||||
Burn Investor To... | 5426548 | 2340 days ago | IN | 0 ETH | 0.00002912 |
Latest 2 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4726744 | 2460 days ago | 0.73 ETH | ||||
4697280 | 2465 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
HandelionCrowdsale
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-12-08 */ pragma solidity ^0.4.15; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal constant returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(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; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public constant returns (uint256 balance) { return balances[_owner]; } } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } /** * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol */ function increaseApproval (address _spender, uint _addedValue) public returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract BurnableToken is StandardToken { address public constant BURN_ADDRESS = 0; event Burn(address indexed burner, uint256 value); function burnTokensInternal(address _address, uint256 _value) internal { require(_value > 0); require(_value <= balances[_address]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure address burner = _address; balances[burner] = balances[burner].sub(_value); totalSupply = totalSupply.sub(_value); Burn(burner, _value); Transfer(burner, BURN_ADDRESS, _value); } } /** * @title Handelion Token * @dev Main token used for Handelion crowdsale */ contract HIONToken is BurnableToken, Ownable { /** Handelion token name official name. */ string public constant name = "HION Token by Handelion"; /** Handelion token official symbol.*/ string public constant symbol = "HION"; /** Number of decimal units for Handelion token */ uint256 public constant decimals = 18; /* Preissued token amount */ uint256 public constant PREISSUED_AMOUNT = 29750000 * 1 ether; /** * Indicates wheather token transfer is allowed. Token transfer is allowed after crowdsale is over. * Before crowdsale is over only token owner is allowed to transfer tokens to investors. */ bool public transferAllowed = false; /** Raises when initial amount of tokens is preissued */ event LogTokenPreissued(address ownereAddress, uint256 amount); modifier canTransfer(address sender) { require(transferAllowed || sender == owner); _; } /** * Creates and initializes Handelion token */ function HIONToken() { // Address of token creator. The creator of this token is major holder of all preissued tokens before crowdsale starts owner = msg.sender; // Send all pre-created tokens to token creator address totalSupply = totalSupply.add(PREISSUED_AMOUNT); balances[owner] = balances[owner].add(PREISSUED_AMOUNT); LogTokenPreissued(owner, PREISSUED_AMOUNT); } /** * Returns Token creator address */ function getCreatorAddress() public constant returns(address creatorAddress) { return owner; } /** * Gets total supply of Handelion token */ function getTotalSupply() public constant returns(uint256) { return totalSupply; } /** * Gets number of remaining tokens */ function getRemainingTokens() public constant returns(uint256) { return balanceOf(owner); } /** * Allows token transfer. Should be called after crowdsale is over */ function allowTransfer() onlyOwner public { transferAllowed = true; } /** * Overrides transfer function by adding check whether transfer is allwed */ function transfer(address _to, uint256 _value) canTransfer(msg.sender) public returns (bool) { super.transfer(_to, _value); } /** * Override transferFrom function and adds a check whether transfer is allwed */ function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from) public returns (bool) { super.transferFrom(_from, _to, _value); } /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { burnTokensInternal(msg.sender, _value); } /** * @dev Burns a specific amount of tokens for specific address. Can be called only by token owner. * @param _address * @param _value The amount of token to be burned. */ function burn(address _address, uint256 _value) public onlyOwner { burnTokensInternal(_address, _value); } } /* * Stoppable * * Abstract contract that allows children to implement an * emergency stop mechanism. * * */ contract Stoppable is Ownable { bool public stopped; modifier stopInEmergency { require(!stopped); _; } modifier stopNonOwnersInEmergency { require(!stopped || msg.sender == owner); _; } modifier onlyInEmergency { require(stopped); _; } // called by the owner on emergency, triggers stopped state function stop() external onlyOwner { stopped = true; } // called by the owner on end of emergency, returns to normal state function unstop() external onlyOwner onlyInEmergency { stopped = false; } } /** * @title Crowdsale * @dev Crowdsale is a base contract for managing a token crowdsale. * Crowdsales have a start and end timestamps, where investors can make * token purchases and the crowdsale will assign them tokens based * on a token per ETH rate. Funds collected are forwarded to a wallet * as they arrive. */ contract Crowdsale is Ownable, Stoppable { using SafeMath for uint256; /** inclusive start timestamps of crowdsale */ uint256 public startTime; /** inclusive end timestamp of crowedsale */ uint256 public endTime; /** address where funds are collected */ address public multisigWallet; // how many token units a buyer gets per wei uint256 public rate; /** minimal amount of sold tokens for crowdsale to be considered as successful */ uint256 public minimumTokenAmount; /** maximal number of tokens we can sell */ uint256 public maximumTokenAmount; // amount of raised money in wei uint256 public weiRaised; /** amount of sold tokens */ uint256 public tokensSold; /** number of unique investors */ uint public investorCount; /** Identifies whether crowdsale has been finalized */ bool public finalized; /** Identifies wheather refund is opened */ bool public isRefunding; /** Amount of received ETH by investor */ mapping (address => uint256) public investedAmountOf; /** Amount of selled tokens by investor */ mapping (address => uint256) public tokenAmountOf; /** * 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 LogTokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); event LogCrowdsaleStarted(); event LogCrowdsaleFinalized(bool isGoalReached); event LogRefundingOpened(uint256 refundAmount); event LogInvestorRefunded(address investorAddress, uint256 refundedAmount); function Crowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet) { //require(_startTime >= now); require(_endTime >= _startTime); require(_rate > 0); require(_wallet != address(0)); createTokenContract(); startTime = _startTime; endTime = _endTime; rate = _rate; multisigWallet = _wallet; } // creates the token to be sold. // override this method to have crowdsale of a specific token. function createTokenContract() internal; /** * Prealocates tokens before crowdsale starts. * Override this function to prealocate for specific crowdsale */ function preallocateTokens() internal; // fallback function can be used to buy tokens function () public payable { buyTokens(msg.sender); } // low level token purchase function function buyTokens(address beneficiary) public payable stopInEmergency { require(beneficiary != address(0)); require(validPurchase()); uint256 weiAmount = msg.value; // calculate token amount to be created //uint256 tokens = weiAmount.mul(rate); uint256 tokens = calculateTokenAmount(weiAmount); // Check whether within this ttransaction we will not overflow maximum token amount require(tokensSold.add(tokens) <= maximumTokenAmount); // update state weiRaised = weiRaised.add(weiAmount); tokensSold = tokensSold.add(tokens); investedAmountOf[beneficiary] = investedAmountOf[beneficiary].add(weiAmount); tokenAmountOf[beneficiary] = tokenAmountOf[beneficiary].add(tokens); // forward tokens to purchaser forwardTokens(beneficiary, tokens); LogTokenPurchase(msg.sender, beneficiary, weiAmount, tokens); // forward ETH to multisig wallet forwardFunds(); } /** * This function just transfers tokens to beneficiary address. * It should be used for cases when investor buys tokens using other currencies */ function transferTokens(address beneficiary, uint256 amount) public onlyOwner { require(beneficiary != address(0)); require(amount > 0); uint256 weiAmount = amount * 1 ether; tokensSold = tokensSold.add(weiAmount); tokenAmountOf[beneficiary] = tokenAmountOf[beneficiary].add(weiAmount); forwardTokens(beneficiary, weiAmount); } // send ether to the fund collection wallet // override to create custom fund forwarding mechanisms function forwardFunds() internal { multisigWallet.transfer(msg.value); } /** * Forwards tokens to purchaser. * Override this function to send approprieate tokens for specific crowdsale */ function forwardTokens(address _purchaser, uint256 _amount) internal; /** * Calculates amount of tokens investor is buying based on funds */ function calculateTokenAmount(uint256 _weiAmount) constant internal returns (uint256); /** * Closes crowdsale and changes its state to Finalized. * Warning - this action is undoable! */ function finalize() public onlyOwner { finalized = true; finalizeInternal(); LogCrowdsaleFinalized(goalReached()); } /** * Override this function to perform additional actions on crowdsale finalization * */ function finalizeInternal() internal; // @return true if the transaction can buy tokens function validPurchase() internal constant returns (bool) { bool withinPeriod = now >= startTime && now <= endTime; bool nonZeroPurchase = msg.value != 0; bool notFinalized = !finalized; bool maxCapNotReached = tokensSold < maximumTokenAmount; return withinPeriod && nonZeroPurchase && notFinalized && maxCapNotReached; } function goalReached() public constant returns (bool) { return tokensSold >= minimumTokenAmount; } // @return true if crowdsale event has ended function hasEnded() public constant returns (bool) { return now > endTime; } /** * Opens smart contract for refunding */ function openRefund() public payable onlyOwner { // Check that amount of funds transferred for refund is more than 0 require(msg.value > 0); // mark refunding as opened isRefunding = true; // perform internal custom actions openRefundInternal(); // Log refund event LogRefundingOpened(msg.value); } /** * implement this function in ancesstor class to execute specific smart contract actions on open refunding * */ function openRefundInternal() internal; /** * Requests refund. Can be called only when contract is open for refunding. * Returns investor funds and burns his tokens */ function requestRefund() public { // check if refunding is opened require(isRefunding); // check that address is valid require(msg.sender != address(0)); // get investor invested amount uint256 investedAmount = investedAmountOf[msg.sender]; uint256 tokenAmount = tokenAmountOf[msg.sender]; // if invested amount is 0 then throw error require(investedAmount > 0); // check if we have enough funds on smart contract to refund investor require(this.balance >= investedAmount); // update investor amount - reset it its invested amount to 0 investedAmountOf[msg.sender] = 0; // update investor tokens - reset to 0 tokenAmountOf[msg.sender] = 0; // Log event that investor has been refunded LogInvestorRefunded(msg.sender, investedAmount); // burn investor tokens burnTokensInternal(msg.sender, tokenAmount); // forward funds to investor address msg.sender.transfer(investedAmount); } /** * Burns specified investor tokens */ function burnAllInvestorTokens(address _address) public onlyOwner { require(_address != address(0)); // Get investor tokens uint256 tokenAmount = tokenAmountOf[_address]; if (tokenAmount > 0) { burnTokensInternal(_address, tokenAmount); } } /** * Burns specified investor tokens */ function burnInvestorTokens(address _address, uint256 amount) public onlyOwner { require(_address != address(0)); if (amount > 0) { burnTokensInternal(_address, amount * 1 ether); } } /** * Implement this function in ancestor classes to perform token burning */ function burnTokensInternal(address _address, uint256 tokenAmount) internal; /** * Gets current contract balance */ function getBalance() public constant returns (uint256) { return this.balance; } /** * Moves all funds from contract to owner's wallet */ function withdraw() public onlyOwner { require(this.balance > 0); multisigWallet.transfer(this.balance); } } /** * Handelion ICO crowdsale. * */ contract HandelionCrowdsale is Crowdsale { struct FundingTier { uint256 cap; uint256 rate; } /** amount of tokens Handelion owners are keeping for them selves */ uint256 public preallocatedTokenAmount; /** Handelion token we are selling in this crowdsale */ HIONToken public token; /** how many tokens goes to contract owners from each token sent to investor */ uint256 public ownerFraction; /** Token price tiers and caps */ FundingTier public tier1; FundingTier public tier2; FundingTier public tier3; FundingTier public tier4; FundingTier public tier5; /** * Start date: 08-12-2017 12:00 GMT * End date: 31-03-2018 12:00 GMT */ function HandelionCrowdsale() Crowdsale(1512734400, 1522497600, 300, 0x7E23cFa050d23B9706a071dEd0A62d30AE6BB6c8) { minimumTokenAmount = 5000000 * 1 ether; maximumTokenAmount = 29750000 * 1 ether; preallocatedTokenAmount = 6564912 * 1 ether; ownerFraction = 4; tier1 = FundingTier({cap: 2081338 * 1 ether, rate: 480}); tier2 = FundingTier({cap: 2750000 * 1 ether, rate: 460}); tier3 = FundingTier({cap: 5000000 * 1 ether, rate: 440}); tier4 = FundingTier({cap: 5000000 * 1 ether, rate: 420}); tier5 = FundingTier({cap: 8353750 * 1 ether, rate: 400}); preallocateTokens(); finalized = false; } /** * Overriding function to create HandelionToken */ function createTokenContract() internal { token = new HIONToken(); } /** * Preallocate tokens to handelion platform owners */ function preallocateTokens() internal { tokensSold = tokensSold.add(preallocatedTokenAmount); forwardTokens(multisigWallet, preallocatedTokenAmount); } /** * Forward handelion tokens to purchaset */ function forwardTokens(address _purchaser, uint256 _amount) internal { token.transfer(_purchaser, _amount); /* if (_purchaser != multisigWallet) { uint256 tokensToOwners = _amount.div(ownerFraction); token.transfer(multisigWallet, tokensToOwners); } */ } function calculateTierTokens(FundingTier _tier, uint256 _amount, uint256 _currentTokenAmount) constant internal returns (uint256) { uint256 maxTierTokens = _tier.cap.sub(_currentTokenAmount); if (maxTierTokens <= 0) { return 0; } uint256 tokenCount = _amount.mul(_tier.rate); if (tokenCount > maxTierTokens) { tokenCount = maxTierTokens; } return tokenCount; } function calculateTokenAmount(uint256 _weiAmount) constant internal returns (uint256) { uint256 nTokens = tokensSold; uint256 remainingWei = _weiAmount; uint256 tierTokens = 0; if (nTokens < tier1.cap) { tierTokens = calculateTierTokens(tier1, remainingWei, nTokens); nTokens = nTokens.add(tierTokens); remainingWei = remainingWei.sub(tierTokens.div(tier1.rate)); } if (remainingWei > 0 && nTokens < tier2.cap) { tierTokens = calculateTierTokens(tier2, remainingWei, nTokens); nTokens = nTokens.add(tierTokens); remainingWei = remainingWei.sub(tierTokens.div(tier2.rate)); } if (remainingWei > 0 && nTokens < tier3.cap) { tierTokens = calculateTierTokens(tier3, remainingWei, nTokens); nTokens = nTokens.add(tierTokens); remainingWei = remainingWei.sub(tierTokens.div(tier3.rate)); } if (remainingWei > 0 && nTokens < tier4.cap) { tierTokens = calculateTierTokens(tier4, remainingWei, nTokens); nTokens = nTokens.add(tierTokens); remainingWei = remainingWei.sub(tierTokens.div(tier4.rate)); } if (remainingWei > 0 && nTokens < tier5.cap) { tierTokens = calculateTierTokens(tier5, remainingWei, nTokens); nTokens = nTokens.add(tierTokens); remainingWei = remainingWei.sub(tierTokens.div(tier5.rate)); } require(remainingWei == 0); return nTokens.sub(tokensSold); } /** * Perform actions on finalization - allow tokens transfer */ function finalizeInternal() internal onlyOwner { } /** * Performs smart contract additional actions on refund opening */ function openRefundInternal() internal onlyOwner { } /** * Burns all caller tokens * */ function burnTokensInternal(address _address, uint256 tokenAmount) internal { require(_address != address(0)); uint256 tokensToBurn = tokenAmount; uint256 maxTokens = token.balanceOf(_address); if (tokensToBurn > maxTokens) { tokensToBurn = maxTokens; } token.burn(_address, tokensToBurn); } /** * Gets remaining tokens on a contract */ function getRemainingTokens() public constant returns(uint256) { return token.getRemainingTokens(); } /** * Gets total supply of tokens */ function getTotalSupply() constant returns (uint256 res) { return token.getTotalSupply(); } /** * Gets amount of token of specific investor */ function getTokenAmountOf(address investor) constant returns (uint256 res) { return token.balanceOf(investor); } /** * Allow token transfer. By default and during crowdsale tokens are non-transferable. * Call these operation when you need to allow token transfer */ function allowTokenTransfer() public onlyOwner { token.allowTransfer(); } /** * Burns remaining tokens which are not sold during crowdsale */ function burnRemainingTokens() public onlyOwner { burnTokensInternal(this, getRemainingTokens()); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"preallocatedTokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investedAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnInvestorTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tier5","outputs":[{"name":"cap","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tier4","outputs":[{"name":"cap","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tier2","outputs":[{"name":"cap","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"openRefund","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"getTokenAmountOf","outputs":[{"name":"res","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tier3","outputs":[{"name":"cap","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"allowTokenTransfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"goalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"burnRemainingTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ownerFraction","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"multisigWallet","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isRefunding","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getRemainingTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tier1","outputs":[{"name":"cap","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getTotalSupply","outputs":[{"name":"res","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"burnAllInvestorTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maximumTokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"requestRefund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"investorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minimumTokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unstop","outputs":[],"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":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogTokenPurchase","type":"event"},{"anonymous":false,"inputs":[],"name":"LogCrowdsaleStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"isGoalReached","type":"bool"}],"name":"LogCrowdsaleFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"refundAmount","type":"uint256"}],"name":"LogRefundingOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"refundedAmount","type":"uint256"}],"name":"LogInvestorRefunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b5b635a2a7ec0635abf784061012c737e23cfa050d23b9706a071ded0a62d30ae6bb6c85b5b60008054600160a060020a03191633600160a060020a03161790555b838310156200005f57600080fd5b600082116200006d57600080fd5b600160a060020a03811615156200008357600080fd5b6200009b640100000000620018646200021f82021704565b60018490556002839055600482905560038054600160a060020a031916600160a060020a0383161790555b50506a0422ca8b0a00a42500000060055550506a189bcebb48509d75c000006006556a056e2c97b6858492c00000600d556004600f55604080519081016040526a01b8bd8f1ecea9b4a8000081526101e06020820152601081518155602082015160019091015550604080519081016040526a024655cc78b38d7ac0000081526101cc6020820152601281518155602082015160019091015550604080519081016040526a0422ca8b0a00a42500000081526101b86020820152601481518155602082015160019091015550604080519081016040526a0422ca8b0a00a42500000081526101a46020820152601681518155602082015160019091015550604080519081016040526a06e8f9b1e6479969980000815261019060208201526018815181556020820151600190910155506200020e640100000000620018b56200026382021704565b600a805460ff191690555b62000377565b6200022962000366565b604051809103906000f08015156200024057600080fd5b600e8054600160a060020a031916600160a060020a03929092169190911790555b565b600d5460085462000282916401000000006200156f620002b182021704565b600855600354600d546200026191600160a060020a0316906401000000006200158a620002cc82021704565b5b565b600082820183811015620002c157fe5b8091505b5092915050565b600e54600160a060020a031663a9059cbb83836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200034557600080fd5b6102c65a03f115156200035757600080fd5b505050604051805150505b5050565b604051610fcd8062002c7e83390190565b6128f780620003876000396000f30060606040523615620002135763ffffffff60e060020a60003504166307da68f581146200022257806312065fe0146200023a5780631984a90614620002625780631aae3460146200028a5780631d1fe10814620002be5780631e5ff41a14620002e55780632c4e722e14620003135780633197cbb6146200033b57806333ae716614620003635780633806153e1462000391578063392aa4d514620003bf5780633ccfd60b14620003cb5780634042b66f14620003e357806343b3aa46146200040b5780634b1740ad146200043f5780634bb278f3146200046d578063518ab2a8146200048557806371b5ee7114620004ad57806375f12b2114620004c557806378e9792514620004ef5780637d3d6522146200051757806383408d73146200054157806388516a8914620005595780638da5cb5b14620005815780639075becf14620005b357806397b150ca14620005e55780639d6fb0201462000619578063af35ae271462000643578063b3f05b97146200066b578063bb6b13a11462000695578063bec3fa1714620006c3578063c4e41b2214620006ea578063c5e128131462000712578063c80743c51462000736578063d5cef133146200075e578063d7e64c001462000776578063dec7fa11146200079e578063ec8ac4d814620007c6578063ecb70fb714620007de578063f2fde38b1462000808578063f8bd71c7146200082c578063fc0c546a1462000844575b5b6200021f3362000876565b5b005b34156200022e57600080fd5b6200021f62000a09565b005b34156200024657600080fd5b6200025062000a4d565b60405190815260200160405180910390f35b34156200026e57600080fd5b6200025062000a5c565b60405190815260200160405180910390f35b34156200029657600080fd5b62000250600160a060020a036004351662000a62565b60405190815260200160405180910390f35b3415620002ca57600080fd5b6200021f600160a060020a036004351660243562000a74565b005b3415620002f157600080fd5b620002fb62000acd565b60405191825260208201526040908101905180910390f35b34156200031f57600080fd5b6200025062000ad6565b60405190815260200160405180910390f35b34156200034757600080fd5b6200025062000adc565b60405190815260200160405180910390f35b34156200036f57600080fd5b620002fb62000ae2565b60405191825260208201526040908101905180910390f35b34156200039d57600080fd5b620002fb62000aeb565b60405191825260208201526040908101905180910390f35b6200021f62000af4565b005b3415620003d757600080fd5b6200021f62000b6e565b005b3415620003ef57600080fd5b6200025062000be0565b60405190815260200160405180910390f35b34156200041757600080fd5b62000250600160a060020a036004351662000be6565b60405190815260200160405180910390f35b34156200044b57600080fd5b620002fb62000c65565b60405191825260208201526040908101905180910390f35b34156200047957600080fd5b6200021f62000c6e565b005b34156200049157600080fd5b6200025062000ce3565b60405190815260200160405180910390f35b3415620004b957600080fd5b6200021f62000ce9565b005b3415620004d157600080fd5b620004db62000d5e565b604051901515815260200160405180910390f35b3415620004fb57600080fd5b6200025062000d6e565b60405190815260200160405180910390f35b34156200052357600080fd5b620004db62000d74565b604051901515815260200160405180910390f35b34156200054d57600080fd5b6200021f62000d80565b005b34156200056557600080fd5b6200025062000db5565b60405190815260200160405180910390f35b34156200058d57600080fd5b6200059762000dbb565b604051600160a060020a03909116815260200160405180910390f35b3415620005bf57600080fd5b6200059762000dca565b604051600160a060020a03909116815260200160405180910390f35b3415620005f157600080fd5b62000250600160a060020a036004351662000dd9565b60405190815260200160405180910390f35b34156200062557600080fd5b620004db62000deb565b604051901515815260200160405180910390f35b34156200064f57600080fd5b6200025062000df9565b60405190815260200160405180910390f35b34156200067757600080fd5b620004db62000e65565b604051901515815260200160405180910390f35b3415620006a157600080fd5b620002fb62000e6e565b60405191825260208201526040908101905180910390f35b3415620006cf57600080fd5b6200021f600160a060020a036004351660243562000e77565b005b3415620006f657600080fd5b6200025062000f34565b60405190815260200160405180910390f35b34156200071e57600080fd5b6200021f600160a060020a036004351662000fa0565b005b34156200074257600080fd5b6200025062001009565b60405190815260200160405180910390f35b34156200076a57600080fd5b6200021f6200100f565b005b34156200078257600080fd5b6200025062001140565b60405190815260200160405180910390f35b3415620007aa57600080fd5b6200025062001146565b60405190815260200160405180910390f35b6200021f600160a060020a036004351662000876565b005b3415620007ea57600080fd5b620004db6200114c565b604051901515815260200160405180910390f35b34156200081457600080fd5b6200021f600160a060020a036004351662001155565b005b34156200083857600080fd5b6200021f620011f0565b005b34156200085057600080fd5b6200059762001248565b604051600160a060020a03909116815260200160405180910390f35b60008054819060a060020a900460ff16156200089157600080fd5b600160a060020a0383161515620008a757600080fd5b620008b162001257565b1515620008bd57600080fd5b349150620008cb82620012ba565b9050600654620008e7826008546200156f90919063ffffffff16565b1115620008f357600080fd5b60075462000908908363ffffffff6200156f16565b60075560085462000920908263ffffffff6200156f16565b600855600160a060020a0383166000908152600b60205260409020546200094e908363ffffffff6200156f16565b600160a060020a0384166000908152600b6020908152604080832093909355600c9052205462000985908263ffffffff6200156f16565b600160a060020a0384166000908152600c6020526040902055620009aa83826200158a565b82600160a060020a031633600160a060020a03167ff370ff51765588b4b12b4ccf319b865dd3499a57df818acfe82c2740e41c878d848460405191825260208201526040908101905180910390a362000a026200160b565b5b5b505050565b60005433600160a060020a0390811691161462000a2557600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b600160a060020a033016315b90565b600d5481565b600b6020526000908152604090205481565b60005433600160a060020a0390811691161462000a9057600080fd5b600160a060020a038216151562000aa657600080fd5b600081111562000ac65762000ac68282670de0b6b3a76400000262001643565b5b5b5b5050565b60185460195482565b60045481565b60025481565b60165460175482565b60125460135482565b60005433600160a060020a0390811691161462000b1057600080fd5b6000341162000b1e57600080fd5b600a805461ff00191661010017905562000b3762001756565b7fd1db1cc4ddccda15efc28e3f4319e7e224d9a818d61ade9aa9189a34c43997cd3460405190815260200160405180910390a15b5b565b60005433600160a060020a0390811691161462000b8a57600080fd5b6000600160a060020a033016311162000ba257600080fd5b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151562000a4a57600080fd5b5b5b565b60075481565b600e54600090600160a060020a03166370a0823183836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151562000c4257600080fd5b6102c65a03f1151562000c5457600080fd5b50505060405180519150505b919050565b60145460155482565b60005433600160a060020a0390811691161462000c8a57600080fd5b600a805460ff1916600117905562000ca162001756565b7f816b6574b848fe57b8b0a2b5c54ce5301b23d66a4b5e3088636b4f0af69a363662000ccc62000d74565b604051901515815260200160405180910390a15b5b565b60085481565b60005433600160a060020a0390811691161462000d0557600080fd5b600e54600160a060020a0316639b08a22f6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151562000d4557600080fd5b6102c65a03f1151562000a0257600080fd5b5050505b5b565b60005460a060020a900460ff1681565b60015481565b60055460085410155b90565b60005433600160a060020a0390811691161462000d9c57600080fd5b62000a4a3062000dab62000df9565b62001643565b5b5b565b600f5481565b600054600160a060020a031681565b600354600160a060020a031681565b600c6020526000908152604090205481565b600a54610100900460ff1681565b600e54600090600160a060020a031663af35ae2782604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151562000e4457600080fd5b6102c65a03f1151562000e5657600080fd5b50505060405180519150505b90565b600a5460ff1681565b60105460115482565b6000805433600160a060020a0390811691161462000e9457600080fd5b600160a060020a038316151562000eaa57600080fd5b6000821162000eb857600080fd5b50600854670de0b6b3a764000082029062000eda908263ffffffff6200156f16565b600855600160a060020a0383166000908152600c602052604090205462000f08908263ffffffff6200156f16565b600160a060020a0384166000908152600c602052604090205562000a0283826200158a565b5b5b505050565b600e54600090600160a060020a031663c4e41b2282604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151562000e4457600080fd5b6102c65a03f1151562000e5657600080fd5b50505060405180519150505b90565b6000805433600160a060020a0390811691161462000fbd57600080fd5b600160a060020a038216151562000fd357600080fd5b50600160a060020a0381166000908152600c60205260408120549081111562000ac65762000ac6828262001643565b5b5b5b5050565b60065481565b600a546000908190610100900460ff1615156200102b57600080fd5b33600160a060020a031615156200104157600080fd5b5050600160a060020a0333166000908152600b6020908152604080832054600c909252822054909182116200107557600080fd5b600160a060020a03301631829010156200108e57600080fd5b33600160a060020a0381166000908152600b60209081526040808320839055600c909152808220919091557f07539074907e4de12048ba675b69d7e60c2822331a8d772440502b34a22d86159190849051600160a060020a03909216825260208201526040908101905180910390a162001109338262001643565b600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151562000ac657600080fd5b5b5050565b60095481565b60055481565b60025442115b90565b60005433600160a060020a039081169116146200117157600080fd5b600160a060020a03811615156200118757600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a039081169116146200120c57600080fd5b60005460a060020a900460ff1615156200122557600080fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b600e54600160a060020a031681565b600080600080600060015442101580156200127457506002544211155b600a54600654600854929650341515955060ff909116159350901090508380156200129c5750825b8015620012a65750815b8015620012b05750805b94505b5050505090565b60085460105460009190839083908310156200133a57620012f7601060408051908101604052815481526001909101546020820152838562001796565b90506200130b838263ffffffff6200156f16565b60115490935062001337906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b6000821180156200134c575060125483105b15620013bc5762001379601260408051908101604052815481526001909101546020820152838562001796565b90506200138d838263ffffffff6200156f16565b601354909350620013b9906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b600082118015620013ce575060145483105b156200143e57620013fb601460408051908101604052815481526001909101546020820152838562001796565b90506200140f838263ffffffff6200156f16565b6015549093506200143b906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b60008211801562001450575060165483105b15620014c0576200147d601660408051908101604052815481526001909101546020820152838562001796565b905062001491838263ffffffff6200156f16565b601754909350620014bd906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b600082118015620014d2575060185483105b156200154257620014ff601860408051908101604052815481526001909101546020820152838562001796565b905062001513838263ffffffff6200156f16565b6019549093506200153f906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b81156200154e57600080fd5b6008546200156490849063ffffffff6200181216565b93505b505050919050565b6000828201838110156200157f57fe5b8091505b5092915050565b600e54600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620015ea57600080fd5b6102c65a03f11515620015fc57600080fd5b505050604051805150505b5050565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151562000a4a57600080fd5b5b565b600080600160a060020a03841615156200165c57600080fd5b600e54839250600160a060020a03166370a082318560006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515620016b957600080fd5b6102c65a03f11515620016cb57600080fd5b505050604051805191505080821115620016e3578091505b600e54600160a060020a0316639dc29fac858460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156200173a57600080fd5b6102c65a03f115156200174c57600080fd5b5050505b50505050565b60005433600160a060020a0390811691161462000a4a57600080fd5b5b5b565b60005433600160a060020a0390811691161462000a4a57600080fd5b5b5b565b60008080620017ae8487519063ffffffff6200181216565b915060008211620017c35760009250620017ec565b620017da8660200151869063ffffffff6200182a16565b905081811115620017e85750805b8092505b50509392505050565b60008082848115156200180457fe5b0490508091505b5092915050565b6000828211156200181f57fe5b508082035b92915050565b6000808315156200183f576000915062001583565b508282028284828115156200185057fe5b04146200157f57fe5b8091505b5092915050565b6200186e620018ed565b604051809103906000f08015156200188557600080fd5b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555b565b600d54600854620018cc9163ffffffff6200156f16565b600855600354600d5462000a4a91600160a060020a0316906200158a565b5b565b604051610fcd80620018ff83390190560060606040526003805460a060020a60ff0219169055341561001f57600080fd5b5b5b60038054600160a060020a03191633600160a060020a03161790555b60038054600160a060020a03191633600160a060020a031617905560005461007d906a189bcebb48509d75c000006401000000006101388102610e261704565b6000908155600354600160a060020a03168152600160205260409020546100bc906a189bcebb48509d75c00000640100000000610e2661013882021704565b60038054600160a060020a03908116600090815260016020526040908190209390935590547f32293954eca702992fc402ae586fdbe6c627ab237e4de224a5c3b7ac72e0a53a929116906a189bcebb48509d75c000009051600160a060020a03909216825260208201526040908101905180910390a15b610152565b60008282018381101561014757fe5b8091505b5092915050565b610e6c806101616000396000f300606060405236156101255763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461012a578063095ea7b3146101b557806318160ddd146101eb5780631e7e4b5e1461021057806323b872dd14610235578063313ce5671461027157806334fec4671461029657806342966c68146102bd57806366188463146102d557806370a082311461030b5780638da5cb5b1461033c57806394d2d7a71461036b57806395d89b411461039a5780639b08a22f146104255780639dc29fac1461043a578063a9059cbb1461045e578063af35ae2714610494578063c4e41b22146104b9578063d73dd623146104de578063dd62ed3e14610514578063f2fde38b1461054b578063fccc28131461056c575b600080fd5b341561013557600080fd5b61013d61059b565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017a5780820151818401525b602001610161565b50505050905090810190601f1680156101a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c057600080fd5b6101d7600160a060020a03600435166024356105d2565b604051901515815260200160405180910390f35b34156101f657600080fd5b6101fe61063f565b60405190815260200160405180910390f35b341561021b57600080fd5b6101fe610645565b60405190815260200160405180910390f35b341561024057600080fd5b6101d7600160a060020a0360043581169060243516604435610654565b604051901515815260200160405180910390f35b341561027c57600080fd5b6101fe61069f565b60405190815260200160405180910390f35b34156102a157600080fd5b6101d76106a4565b604051901515815260200160405180910390f35b34156102c857600080fd5b6102d36004356106b4565b005b34156102e057600080fd5b6101d7600160a060020a03600435166024356106c2565b604051901515815260200160405180910390f35b341561031657600080fd5b6101fe600160a060020a03600435166107be565b60405190815260200160405180910390f35b341561034757600080fd5b61034f6107dd565b604051600160a060020a03909116815260200160405180910390f35b341561037657600080fd5b61034f6107ec565b604051600160a060020a03909116815260200160405180910390f35b34156103a557600080fd5b61013d6107fc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017a5780820151818401525b602001610161565b50505050905090810190601f1680156101a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043057600080fd5b6102d3610833565b005b341561044557600080fd5b6102d3600160a060020a0360043516602435610876565b005b341561046957600080fd5b6101d7600160a060020a03600435166024356108a1565b604051901515815260200160405180910390f35b341561049f57600080fd5b6101fe6108ea565b60405190815260200160405180910390f35b34156104c457600080fd5b6101fe610908565b60405190815260200160405180910390f35b34156104e957600080fd5b6101d7600160a060020a036004351660243561090f565b604051901515815260200160405180910390f35b341561051f57600080fd5b6101fe600160a060020a03600435811690602435166109b4565b60405190815260200160405180910390f35b341561055657600080fd5b6102d3600160a060020a03600435166109e1565b005b341561057757600080fd5b61034f610a7a565b604051600160a060020a03909116815260200160405180910390f35b60408051908101604052601781527f48494f4e20546f6b656e2062792048616e64656c696f6e000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b6a189bcebb48509d75c0000081565b600354600090849060a060020a900460ff168061067e5750600354600160a060020a038281169116145b151561068957600080fd5b610694858585610a7f565b505b5b509392505050565b601281565b60035460a060020a900460ff1681565b6106be3382610c02565b5b50565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561071f57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610756565b61072f818463ffffffff610d1316565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600160a060020a0381166000908152600160205260409020545b919050565b600354600160a060020a031681565b600354600160a060020a03165b90565b60408051908101604052600481527f48494f4e00000000000000000000000000000000000000000000000000000000602082015281565b60035433600160a060020a0390811691161461084e57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60035433600160a060020a0390811691161461089157600080fd5b61089b8282610c02565b5b5b5050565b600354600090339060a060020a900460ff16806108cb5750600354600160a060020a038281169116145b15156108d657600080fd5b6108e08484610d2a565b505b5b5092915050565b60035460009061090290600160a060020a03166107be565b90505b90565b6000545b90565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610947908363ffffffff610e2616565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a039081169116146109fc57600080fd5b600160a060020a0381161515610a1157600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600081565b6000600160a060020a0383161515610a9657600080fd5b600160a060020a038416600090815260016020526040902054821115610abb57600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610aee57600080fd5b600160a060020a038416600090815260016020526040902054610b17908363ffffffff610d1316565b600160a060020a038086166000908152600160205260408082209390935590851681522054610b4c908363ffffffff610e2616565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610b94908363ffffffff610d1316565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b9392505050565b6000808211610c1057600080fd5b600160a060020a038316600090815260016020526040902054821115610c3557600080fd5b50600160a060020a0382166000908152600160205260409020548290610c61908363ffffffff610d1316565b600160a060020a03821660009081526001602052604081209190915554610c8e908363ffffffff610d1316565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a26000600160a060020a0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35b505050565b600082821115610d1f57fe5b508082035b92915050565b6000600160a060020a0383161515610d4157600080fd5b600160a060020a033316600090815260016020526040902054821115610d6657600080fd5b600160a060020a033316600090815260016020526040902054610d8f908363ffffffff610d1316565b600160a060020a033381166000908152600160205260408082209390935590851681522054610dc4908363ffffffff610e2616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610e3557fe5b8091505b50929150505600a165627a7a72305820a3e8512807f839c2cd88607b8a5b2594e1249401c56a63b0218f33928902cc730029a165627a7a723058205c32327e1231be0462e19f676458148711daf98732f7e40f6801a8b9091deb48002960606040526003805460a060020a60ff0219169055341561001f57600080fd5b5b5b60038054600160a060020a03191633600160a060020a03161790555b60038054600160a060020a03191633600160a060020a031617905560005461007d906a189bcebb48509d75c000006401000000006101388102610e261704565b6000908155600354600160a060020a03168152600160205260409020546100bc906a189bcebb48509d75c00000640100000000610e2661013882021704565b60038054600160a060020a03908116600090815260016020526040908190209390935590547f32293954eca702992fc402ae586fdbe6c627ab237e4de224a5c3b7ac72e0a53a929116906a189bcebb48509d75c000009051600160a060020a03909216825260208201526040908101905180910390a15b610152565b60008282018381101561014757fe5b8091505b5092915050565b610e6c806101616000396000f300606060405236156101255763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461012a578063095ea7b3146101b557806318160ddd146101eb5780631e7e4b5e1461021057806323b872dd14610235578063313ce5671461027157806334fec4671461029657806342966c68146102bd57806366188463146102d557806370a082311461030b5780638da5cb5b1461033c57806394d2d7a71461036b57806395d89b411461039a5780639b08a22f146104255780639dc29fac1461043a578063a9059cbb1461045e578063af35ae2714610494578063c4e41b22146104b9578063d73dd623146104de578063dd62ed3e14610514578063f2fde38b1461054b578063fccc28131461056c575b600080fd5b341561013557600080fd5b61013d61059b565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017a5780820151818401525b602001610161565b50505050905090810190601f1680156101a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c057600080fd5b6101d7600160a060020a03600435166024356105d2565b604051901515815260200160405180910390f35b34156101f657600080fd5b6101fe61063f565b60405190815260200160405180910390f35b341561021b57600080fd5b6101fe610645565b60405190815260200160405180910390f35b341561024057600080fd5b6101d7600160a060020a0360043581169060243516604435610654565b604051901515815260200160405180910390f35b341561027c57600080fd5b6101fe61069f565b60405190815260200160405180910390f35b34156102a157600080fd5b6101d76106a4565b604051901515815260200160405180910390f35b34156102c857600080fd5b6102d36004356106b4565b005b34156102e057600080fd5b6101d7600160a060020a03600435166024356106c2565b604051901515815260200160405180910390f35b341561031657600080fd5b6101fe600160a060020a03600435166107be565b60405190815260200160405180910390f35b341561034757600080fd5b61034f6107dd565b604051600160a060020a03909116815260200160405180910390f35b341561037657600080fd5b61034f6107ec565b604051600160a060020a03909116815260200160405180910390f35b34156103a557600080fd5b61013d6107fc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017a5780820151818401525b602001610161565b50505050905090810190601f1680156101a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043057600080fd5b6102d3610833565b005b341561044557600080fd5b6102d3600160a060020a0360043516602435610876565b005b341561046957600080fd5b6101d7600160a060020a03600435166024356108a1565b604051901515815260200160405180910390f35b341561049f57600080fd5b6101fe6108ea565b60405190815260200160405180910390f35b34156104c457600080fd5b6101fe610908565b60405190815260200160405180910390f35b34156104e957600080fd5b6101d7600160a060020a036004351660243561090f565b604051901515815260200160405180910390f35b341561051f57600080fd5b6101fe600160a060020a03600435811690602435166109b4565b60405190815260200160405180910390f35b341561055657600080fd5b6102d3600160a060020a03600435166109e1565b005b341561057757600080fd5b61034f610a7a565b604051600160a060020a03909116815260200160405180910390f35b60408051908101604052601781527f48494f4e20546f6b656e2062792048616e64656c696f6e000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b6a189bcebb48509d75c0000081565b600354600090849060a060020a900460ff168061067e5750600354600160a060020a038281169116145b151561068957600080fd5b610694858585610a7f565b505b5b509392505050565b601281565b60035460a060020a900460ff1681565b6106be3382610c02565b5b50565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561071f57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610756565b61072f818463ffffffff610d1316565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600160a060020a0381166000908152600160205260409020545b919050565b600354600160a060020a031681565b600354600160a060020a03165b90565b60408051908101604052600481527f48494f4e00000000000000000000000000000000000000000000000000000000602082015281565b60035433600160a060020a0390811691161461084e57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60035433600160a060020a0390811691161461089157600080fd5b61089b8282610c02565b5b5b5050565b600354600090339060a060020a900460ff16806108cb5750600354600160a060020a038281169116145b15156108d657600080fd5b6108e08484610d2a565b505b5b5092915050565b60035460009061090290600160a060020a03166107be565b90505b90565b6000545b90565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610947908363ffffffff610e2616565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a039081169116146109fc57600080fd5b600160a060020a0381161515610a1157600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600081565b6000600160a060020a0383161515610a9657600080fd5b600160a060020a038416600090815260016020526040902054821115610abb57600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610aee57600080fd5b600160a060020a038416600090815260016020526040902054610b17908363ffffffff610d1316565b600160a060020a038086166000908152600160205260408082209390935590851681522054610b4c908363ffffffff610e2616565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610b94908363ffffffff610d1316565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b9392505050565b6000808211610c1057600080fd5b600160a060020a038316600090815260016020526040902054821115610c3557600080fd5b50600160a060020a0382166000908152600160205260409020548290610c61908363ffffffff610d1316565b600160a060020a03821660009081526001602052604081209190915554610c8e908363ffffffff610d1316565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a26000600160a060020a0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35b505050565b600082821115610d1f57fe5b508082035b92915050565b6000600160a060020a0383161515610d4157600080fd5b600160a060020a033316600090815260016020526040902054821115610d6657600080fd5b600160a060020a033316600090815260016020526040902054610d8f908363ffffffff610d1316565b600160a060020a033381166000908152600160205260408082209390935590851681522054610dc4908363ffffffff610e2616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610e3557fe5b8091505b50929150505600a165627a7a72305820a3e8512807f839c2cd88607b8a5b2594e1249401c56a63b0218f33928902cc730029
Deployed Bytecode
0x60606040523615620002135763ffffffff60e060020a60003504166307da68f581146200022257806312065fe0146200023a5780631984a90614620002625780631aae3460146200028a5780631d1fe10814620002be5780631e5ff41a14620002e55780632c4e722e14620003135780633197cbb6146200033b57806333ae716614620003635780633806153e1462000391578063392aa4d514620003bf5780633ccfd60b14620003cb5780634042b66f14620003e357806343b3aa46146200040b5780634b1740ad146200043f5780634bb278f3146200046d578063518ab2a8146200048557806371b5ee7114620004ad57806375f12b2114620004c557806378e9792514620004ef5780637d3d6522146200051757806383408d73146200054157806388516a8914620005595780638da5cb5b14620005815780639075becf14620005b357806397b150ca14620005e55780639d6fb0201462000619578063af35ae271462000643578063b3f05b97146200066b578063bb6b13a11462000695578063bec3fa1714620006c3578063c4e41b2214620006ea578063c5e128131462000712578063c80743c51462000736578063d5cef133146200075e578063d7e64c001462000776578063dec7fa11146200079e578063ec8ac4d814620007c6578063ecb70fb714620007de578063f2fde38b1462000808578063f8bd71c7146200082c578063fc0c546a1462000844575b5b6200021f3362000876565b5b005b34156200022e57600080fd5b6200021f62000a09565b005b34156200024657600080fd5b6200025062000a4d565b60405190815260200160405180910390f35b34156200026e57600080fd5b6200025062000a5c565b60405190815260200160405180910390f35b34156200029657600080fd5b62000250600160a060020a036004351662000a62565b60405190815260200160405180910390f35b3415620002ca57600080fd5b6200021f600160a060020a036004351660243562000a74565b005b3415620002f157600080fd5b620002fb62000acd565b60405191825260208201526040908101905180910390f35b34156200031f57600080fd5b6200025062000ad6565b60405190815260200160405180910390f35b34156200034757600080fd5b6200025062000adc565b60405190815260200160405180910390f35b34156200036f57600080fd5b620002fb62000ae2565b60405191825260208201526040908101905180910390f35b34156200039d57600080fd5b620002fb62000aeb565b60405191825260208201526040908101905180910390f35b6200021f62000af4565b005b3415620003d757600080fd5b6200021f62000b6e565b005b3415620003ef57600080fd5b6200025062000be0565b60405190815260200160405180910390f35b34156200041757600080fd5b62000250600160a060020a036004351662000be6565b60405190815260200160405180910390f35b34156200044b57600080fd5b620002fb62000c65565b60405191825260208201526040908101905180910390f35b34156200047957600080fd5b6200021f62000c6e565b005b34156200049157600080fd5b6200025062000ce3565b60405190815260200160405180910390f35b3415620004b957600080fd5b6200021f62000ce9565b005b3415620004d157600080fd5b620004db62000d5e565b604051901515815260200160405180910390f35b3415620004fb57600080fd5b6200025062000d6e565b60405190815260200160405180910390f35b34156200052357600080fd5b620004db62000d74565b604051901515815260200160405180910390f35b34156200054d57600080fd5b6200021f62000d80565b005b34156200056557600080fd5b6200025062000db5565b60405190815260200160405180910390f35b34156200058d57600080fd5b6200059762000dbb565b604051600160a060020a03909116815260200160405180910390f35b3415620005bf57600080fd5b6200059762000dca565b604051600160a060020a03909116815260200160405180910390f35b3415620005f157600080fd5b62000250600160a060020a036004351662000dd9565b60405190815260200160405180910390f35b34156200062557600080fd5b620004db62000deb565b604051901515815260200160405180910390f35b34156200064f57600080fd5b6200025062000df9565b60405190815260200160405180910390f35b34156200067757600080fd5b620004db62000e65565b604051901515815260200160405180910390f35b3415620006a157600080fd5b620002fb62000e6e565b60405191825260208201526040908101905180910390f35b3415620006cf57600080fd5b6200021f600160a060020a036004351660243562000e77565b005b3415620006f657600080fd5b6200025062000f34565b60405190815260200160405180910390f35b34156200071e57600080fd5b6200021f600160a060020a036004351662000fa0565b005b34156200074257600080fd5b6200025062001009565b60405190815260200160405180910390f35b34156200076a57600080fd5b6200021f6200100f565b005b34156200078257600080fd5b6200025062001140565b60405190815260200160405180910390f35b3415620007aa57600080fd5b6200025062001146565b60405190815260200160405180910390f35b6200021f600160a060020a036004351662000876565b005b3415620007ea57600080fd5b620004db6200114c565b604051901515815260200160405180910390f35b34156200081457600080fd5b6200021f600160a060020a036004351662001155565b005b34156200083857600080fd5b6200021f620011f0565b005b34156200085057600080fd5b6200059762001248565b604051600160a060020a03909116815260200160405180910390f35b60008054819060a060020a900460ff16156200089157600080fd5b600160a060020a0383161515620008a757600080fd5b620008b162001257565b1515620008bd57600080fd5b349150620008cb82620012ba565b9050600654620008e7826008546200156f90919063ffffffff16565b1115620008f357600080fd5b60075462000908908363ffffffff6200156f16565b60075560085462000920908263ffffffff6200156f16565b600855600160a060020a0383166000908152600b60205260409020546200094e908363ffffffff6200156f16565b600160a060020a0384166000908152600b6020908152604080832093909355600c9052205462000985908263ffffffff6200156f16565b600160a060020a0384166000908152600c6020526040902055620009aa83826200158a565b82600160a060020a031633600160a060020a03167ff370ff51765588b4b12b4ccf319b865dd3499a57df818acfe82c2740e41c878d848460405191825260208201526040908101905180910390a362000a026200160b565b5b5b505050565b60005433600160a060020a0390811691161462000a2557600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b600160a060020a033016315b90565b600d5481565b600b6020526000908152604090205481565b60005433600160a060020a0390811691161462000a9057600080fd5b600160a060020a038216151562000aa657600080fd5b600081111562000ac65762000ac68282670de0b6b3a76400000262001643565b5b5b5b5050565b60185460195482565b60045481565b60025481565b60165460175482565b60125460135482565b60005433600160a060020a0390811691161462000b1057600080fd5b6000341162000b1e57600080fd5b600a805461ff00191661010017905562000b3762001756565b7fd1db1cc4ddccda15efc28e3f4319e7e224d9a818d61ade9aa9189a34c43997cd3460405190815260200160405180910390a15b5b565b60005433600160a060020a0390811691161462000b8a57600080fd5b6000600160a060020a033016311162000ba257600080fd5b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151562000a4a57600080fd5b5b5b565b60075481565b600e54600090600160a060020a03166370a0823183836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151562000c4257600080fd5b6102c65a03f1151562000c5457600080fd5b50505060405180519150505b919050565b60145460155482565b60005433600160a060020a0390811691161462000c8a57600080fd5b600a805460ff1916600117905562000ca162001756565b7f816b6574b848fe57b8b0a2b5c54ce5301b23d66a4b5e3088636b4f0af69a363662000ccc62000d74565b604051901515815260200160405180910390a15b5b565b60085481565b60005433600160a060020a0390811691161462000d0557600080fd5b600e54600160a060020a0316639b08a22f6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151562000d4557600080fd5b6102c65a03f1151562000a0257600080fd5b5050505b5b565b60005460a060020a900460ff1681565b60015481565b60055460085410155b90565b60005433600160a060020a0390811691161462000d9c57600080fd5b62000a4a3062000dab62000df9565b62001643565b5b5b565b600f5481565b600054600160a060020a031681565b600354600160a060020a031681565b600c6020526000908152604090205481565b600a54610100900460ff1681565b600e54600090600160a060020a031663af35ae2782604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151562000e4457600080fd5b6102c65a03f1151562000e5657600080fd5b50505060405180519150505b90565b600a5460ff1681565b60105460115482565b6000805433600160a060020a0390811691161462000e9457600080fd5b600160a060020a038316151562000eaa57600080fd5b6000821162000eb857600080fd5b50600854670de0b6b3a764000082029062000eda908263ffffffff6200156f16565b600855600160a060020a0383166000908152600c602052604090205462000f08908263ffffffff6200156f16565b600160a060020a0384166000908152600c602052604090205562000a0283826200158a565b5b5b505050565b600e54600090600160a060020a031663c4e41b2282604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151562000e4457600080fd5b6102c65a03f1151562000e5657600080fd5b50505060405180519150505b90565b6000805433600160a060020a0390811691161462000fbd57600080fd5b600160a060020a038216151562000fd357600080fd5b50600160a060020a0381166000908152600c60205260408120549081111562000ac65762000ac6828262001643565b5b5b5b5050565b60065481565b600a546000908190610100900460ff1615156200102b57600080fd5b33600160a060020a031615156200104157600080fd5b5050600160a060020a0333166000908152600b6020908152604080832054600c909252822054909182116200107557600080fd5b600160a060020a03301631829010156200108e57600080fd5b33600160a060020a0381166000908152600b60209081526040808320839055600c909152808220919091557f07539074907e4de12048ba675b69d7e60c2822331a8d772440502b34a22d86159190849051600160a060020a03909216825260208201526040908101905180910390a162001109338262001643565b600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151562000ac657600080fd5b5b5050565b60095481565b60055481565b60025442115b90565b60005433600160a060020a039081169116146200117157600080fd5b600160a060020a03811615156200118757600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a039081169116146200120c57600080fd5b60005460a060020a900460ff1615156200122557600080fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b600e54600160a060020a031681565b600080600080600060015442101580156200127457506002544211155b600a54600654600854929650341515955060ff909116159350901090508380156200129c5750825b8015620012a65750815b8015620012b05750805b94505b5050505090565b60085460105460009190839083908310156200133a57620012f7601060408051908101604052815481526001909101546020820152838562001796565b90506200130b838263ffffffff6200156f16565b60115490935062001337906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b6000821180156200134c575060125483105b15620013bc5762001379601260408051908101604052815481526001909101546020820152838562001796565b90506200138d838263ffffffff6200156f16565b601354909350620013b9906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b600082118015620013ce575060145483105b156200143e57620013fb601460408051908101604052815481526001909101546020820152838562001796565b90506200140f838263ffffffff6200156f16565b6015549093506200143b906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b60008211801562001450575060165483105b15620014c0576200147d601660408051908101604052815481526001909101546020820152838562001796565b905062001491838263ffffffff6200156f16565b601754909350620014bd906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b600082118015620014d2575060185483105b156200154257620014ff601860408051908101604052815481526001909101546020820152838562001796565b905062001513838263ffffffff6200156f16565b6019549093506200153f906200132990839063ffffffff620017f516565b839063ffffffff6200181216565b91505b81156200154e57600080fd5b6008546200156490849063ffffffff6200181216565b93505b505050919050565b6000828201838110156200157f57fe5b8091505b5092915050565b600e54600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620015ea57600080fd5b6102c65a03f11515620015fc57600080fd5b505050604051805150505b5050565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151562000a4a57600080fd5b5b565b600080600160a060020a03841615156200165c57600080fd5b600e54839250600160a060020a03166370a082318560006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515620016b957600080fd5b6102c65a03f11515620016cb57600080fd5b505050604051805191505080821115620016e3578091505b600e54600160a060020a0316639dc29fac858460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156200173a57600080fd5b6102c65a03f115156200174c57600080fd5b5050505b50505050565b60005433600160a060020a0390811691161462000a4a57600080fd5b5b5b565b60005433600160a060020a0390811691161462000a4a57600080fd5b5b5b565b60008080620017ae8487519063ffffffff6200181216565b915060008211620017c35760009250620017ec565b620017da8660200151869063ffffffff6200182a16565b905081811115620017e85750805b8092505b50509392505050565b60008082848115156200180457fe5b0490508091505b5092915050565b6000828211156200181f57fe5b508082035b92915050565b6000808315156200183f576000915062001583565b508282028284828115156200185057fe5b04146200157f57fe5b8091505b5092915050565b6200186e620018ed565b604051809103906000f08015156200188557600080fd5b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555b565b600d54600854620018cc9163ffffffff6200156f16565b600855600354600d5462000a4a91600160a060020a0316906200158a565b5b565b604051610fcd80620018ff83390190560060606040526003805460a060020a60ff0219169055341561001f57600080fd5b5b5b60038054600160a060020a03191633600160a060020a03161790555b60038054600160a060020a03191633600160a060020a031617905560005461007d906a189bcebb48509d75c000006401000000006101388102610e261704565b6000908155600354600160a060020a03168152600160205260409020546100bc906a189bcebb48509d75c00000640100000000610e2661013882021704565b60038054600160a060020a03908116600090815260016020526040908190209390935590547f32293954eca702992fc402ae586fdbe6c627ab237e4de224a5c3b7ac72e0a53a929116906a189bcebb48509d75c000009051600160a060020a03909216825260208201526040908101905180910390a15b610152565b60008282018381101561014757fe5b8091505b5092915050565b610e6c806101616000396000f300606060405236156101255763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461012a578063095ea7b3146101b557806318160ddd146101eb5780631e7e4b5e1461021057806323b872dd14610235578063313ce5671461027157806334fec4671461029657806342966c68146102bd57806366188463146102d557806370a082311461030b5780638da5cb5b1461033c57806394d2d7a71461036b57806395d89b411461039a5780639b08a22f146104255780639dc29fac1461043a578063a9059cbb1461045e578063af35ae2714610494578063c4e41b22146104b9578063d73dd623146104de578063dd62ed3e14610514578063f2fde38b1461054b578063fccc28131461056c575b600080fd5b341561013557600080fd5b61013d61059b565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017a5780820151818401525b602001610161565b50505050905090810190601f1680156101a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c057600080fd5b6101d7600160a060020a03600435166024356105d2565b604051901515815260200160405180910390f35b34156101f657600080fd5b6101fe61063f565b60405190815260200160405180910390f35b341561021b57600080fd5b6101fe610645565b60405190815260200160405180910390f35b341561024057600080fd5b6101d7600160a060020a0360043581169060243516604435610654565b604051901515815260200160405180910390f35b341561027c57600080fd5b6101fe61069f565b60405190815260200160405180910390f35b34156102a157600080fd5b6101d76106a4565b604051901515815260200160405180910390f35b34156102c857600080fd5b6102d36004356106b4565b005b34156102e057600080fd5b6101d7600160a060020a03600435166024356106c2565b604051901515815260200160405180910390f35b341561031657600080fd5b6101fe600160a060020a03600435166107be565b60405190815260200160405180910390f35b341561034757600080fd5b61034f6107dd565b604051600160a060020a03909116815260200160405180910390f35b341561037657600080fd5b61034f6107ec565b604051600160a060020a03909116815260200160405180910390f35b34156103a557600080fd5b61013d6107fc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017a5780820151818401525b602001610161565b50505050905090810190601f1680156101a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043057600080fd5b6102d3610833565b005b341561044557600080fd5b6102d3600160a060020a0360043516602435610876565b005b341561046957600080fd5b6101d7600160a060020a03600435166024356108a1565b604051901515815260200160405180910390f35b341561049f57600080fd5b6101fe6108ea565b60405190815260200160405180910390f35b34156104c457600080fd5b6101fe610908565b60405190815260200160405180910390f35b34156104e957600080fd5b6101d7600160a060020a036004351660243561090f565b604051901515815260200160405180910390f35b341561051f57600080fd5b6101fe600160a060020a03600435811690602435166109b4565b60405190815260200160405180910390f35b341561055657600080fd5b6102d3600160a060020a03600435166109e1565b005b341561057757600080fd5b61034f610a7a565b604051600160a060020a03909116815260200160405180910390f35b60408051908101604052601781527f48494f4e20546f6b656e2062792048616e64656c696f6e000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b6a189bcebb48509d75c0000081565b600354600090849060a060020a900460ff168061067e5750600354600160a060020a038281169116145b151561068957600080fd5b610694858585610a7f565b505b5b509392505050565b601281565b60035460a060020a900460ff1681565b6106be3382610c02565b5b50565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561071f57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610756565b61072f818463ffffffff610d1316565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600160a060020a0381166000908152600160205260409020545b919050565b600354600160a060020a031681565b600354600160a060020a03165b90565b60408051908101604052600481527f48494f4e00000000000000000000000000000000000000000000000000000000602082015281565b60035433600160a060020a0390811691161461084e57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60035433600160a060020a0390811691161461089157600080fd5b61089b8282610c02565b5b5b5050565b600354600090339060a060020a900460ff16806108cb5750600354600160a060020a038281169116145b15156108d657600080fd5b6108e08484610d2a565b505b5b5092915050565b60035460009061090290600160a060020a03166107be565b90505b90565b6000545b90565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610947908363ffffffff610e2616565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a039081169116146109fc57600080fd5b600160a060020a0381161515610a1157600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600081565b6000600160a060020a0383161515610a9657600080fd5b600160a060020a038416600090815260016020526040902054821115610abb57600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610aee57600080fd5b600160a060020a038416600090815260016020526040902054610b17908363ffffffff610d1316565b600160a060020a038086166000908152600160205260408082209390935590851681522054610b4c908363ffffffff610e2616565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610b94908363ffffffff610d1316565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b9392505050565b6000808211610c1057600080fd5b600160a060020a038316600090815260016020526040902054821115610c3557600080fd5b50600160a060020a0382166000908152600160205260409020548290610c61908363ffffffff610d1316565b600160a060020a03821660009081526001602052604081209190915554610c8e908363ffffffff610d1316565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a26000600160a060020a0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35b505050565b600082821115610d1f57fe5b508082035b92915050565b6000600160a060020a0383161515610d4157600080fd5b600160a060020a033316600090815260016020526040902054821115610d6657600080fd5b600160a060020a033316600090815260016020526040902054610d8f908363ffffffff610d1316565b600160a060020a033381166000908152600160205260408082209390935590851681522054610dc4908363ffffffff610e2616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610e3557fe5b8091505b50929150505600a165627a7a72305820a3e8512807f839c2cd88607b8a5b2594e1249401c56a63b0218f33928902cc730029a165627a7a723058205c32327e1231be0462e19f676458148711daf98732f7e40f6801a8b9091deb480029
Swarm Source
bzzr://a3e8512807f839c2cd88607b8a5b2594e1249401c56a63b0218f33928902cc73
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.