ERC-20
Overview
Max Total Supply
0
Holders
0
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ChangeableRateCrowdsale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-11-27 */ pragma solidity ^0.4.11; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal constant returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal constant returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @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; /** * @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 { if (newOwner != address(0)) { owner = newOwner; } } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev modifier to allow actions only when the contract IS paused */ modifier whenNotPaused() { require(!paused); _; } /** * @dev modifier to allow actions only when the contract IS NOT paused */ modifier whenPaused { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused returns (bool) { paused = true; Pause(); return true; } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused returns (bool) { paused = false; Unpause(); return true; } } /** * @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) constant returns (uint256); function transfer(address to, uint256 value) returns (bool); event Transfer(address indexed from, address indexed to, 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) returns (bool) { 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) constant returns (uint256 balance) { return balances[_owner]; } } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) constant returns (uint256); function transferFrom(address from, address to, uint256 value) returns (bool); function approve(address spender, uint256 value) returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @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)) 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 amout of tokens to be transfered */ function transferFrom(address _from, address _to, uint256 _value) returns (bool) { var _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); balances[_to] = balances[_to].add(_value); balances[_from] = balances[_from].sub(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender. * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) returns (bool) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 require((_value == 0) || (allowed[msg.sender][_spender] == 0)); 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 specifing the amount of tokens still avaible for the spender. */ function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } } /** * @title HoQuToken * @dev HoQu.io token contract. */ contract HoQuToken is StandardToken, Pausable { string public constant name = "HOQU Token"; string public constant symbol = "HQX"; uint32 public constant decimals = 18; /** * @dev Give all tokens to msg.sender. */ function HoQuToken(uint _totalSupply) { require (_totalSupply > 0); totalSupply = balances[msg.sender] = _totalSupply; } function transfer(address _to, uint _value) whenNotPaused returns (bool) { return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint _value) whenNotPaused returns (bool) { return super.transferFrom(_from, _to, _value); } } /** * @title ClaimableCrowdsale * @title HoQu.io claimable crowdsale contract. */ contract ClaimableCrowdsale is Pausable { using SafeMath for uint256; // all accepted ethers will be sent to this address address beneficiaryAddress; // all remain tokens after ICO should go to that address address public bankAddress; // token instance HoQuToken public token; uint256 public maxTokensAmount; uint256 public issuedTokensAmount = 0; uint256 public minBuyableAmount; uint256 public tokenRate; // amount of HQX per 1 ETH uint256 endDate; bool public isFinished = false; // buffer for claimable tokens mapping(address => uint256) public tokens; mapping(address => bool) public approved; mapping(uint32 => address) internal tokenReceivers; uint32 internal receiversCount; /** * Events for token purchase logging */ event TokenBought(address indexed _buyer, uint256 _tokens, uint256 _amount); event TokenAdded(address indexed _receiver, uint256 _tokens, uint256 _equivalentAmount); event TokenToppedUp(address indexed _receiver, uint256 _tokens, uint256 _equivalentAmount); event TokenSubtracted(address indexed _receiver, uint256 _tokens, uint256 _equivalentAmount); event TokenSent(address indexed _receiver, uint256 _tokens); modifier inProgress() { require (!isFinished); require (issuedTokensAmount < maxTokensAmount); require (now <= endDate); _; } /** * @param _tokenAddress address of a HQX token contract * @param _bankAddress address for remain HQX tokens accumulation * @param _beneficiaryAddress accepted ETH go to this address * @param _tokenRate rate HQX per 1 ETH * @param _minBuyableAmount min ETH per each buy action (in ETH wei) * @param _maxTokensAmount ICO HQX capacity (in HQX wei) * @param _endDate the date when ICO will expire */ function ClaimableCrowdsale( address _tokenAddress, address _bankAddress, address _beneficiaryAddress, uint256 _tokenRate, uint256 _minBuyableAmount, uint256 _maxTokensAmount, uint256 _endDate ) { token = HoQuToken(_tokenAddress); bankAddress = _bankAddress; beneficiaryAddress = _beneficiaryAddress; tokenRate = _tokenRate; minBuyableAmount = _minBuyableAmount; maxTokensAmount = _maxTokensAmount; endDate = _endDate; } /* * @dev Set new HoQu token exchange rate. */ function setTokenRate(uint256 _tokenRate) onlyOwner { require (_tokenRate > 0); tokenRate = _tokenRate; } /** * Buy HQX. Tokens will be stored in contract until claim stage */ function buy() payable inProgress whenNotPaused { uint256 payAmount = msg.value; uint256 returnAmount = 0; // calculate token amount to be transfered to investor uint256 tokensAmount = tokenRate.mul(payAmount); if (issuedTokensAmount + tokensAmount > maxTokensAmount) { tokensAmount = maxTokensAmount.sub(issuedTokensAmount); payAmount = tokensAmount.div(tokenRate); returnAmount = msg.value.sub(payAmount); } issuedTokensAmount = issuedTokensAmount.add(tokensAmount); require (issuedTokensAmount <= maxTokensAmount); storeTokens(msg.sender, tokensAmount); TokenBought(msg.sender, tokensAmount, payAmount); beneficiaryAddress.transfer(payAmount); if (returnAmount > 0) { msg.sender.transfer(returnAmount); } } /** * Add HQX payed by another crypto (BTC, LTC). Tokens will be stored in contract until claim stage */ function add(address _receiver, uint256 _equivalentEthAmount) onlyOwner inProgress whenNotPaused { uint256 tokensAmount = tokenRate.mul(_equivalentEthAmount); issuedTokensAmount = issuedTokensAmount.add(tokensAmount); storeTokens(_receiver, tokensAmount); TokenAdded(_receiver, tokensAmount, _equivalentEthAmount); } /** * Add HQX by referral program. Tokens will be stored in contract until claim stage */ function topUp(address _receiver, uint256 _equivalentEthAmount) onlyOwner whenNotPaused { uint256 tokensAmount = tokenRate.mul(_equivalentEthAmount); issuedTokensAmount = issuedTokensAmount.add(tokensAmount); storeTokens(_receiver, tokensAmount); TokenToppedUp(_receiver, tokensAmount, _equivalentEthAmount); } /** * Reduce bought HQX amount. Emergency use only */ function sub(address _receiver, uint256 _equivalentEthAmount) onlyOwner whenNotPaused { uint256 tokensAmount = tokenRate.mul(_equivalentEthAmount); require (tokens[_receiver] >= tokensAmount); tokens[_receiver] = tokens[_receiver].sub(tokensAmount); issuedTokensAmount = issuedTokensAmount.sub(tokensAmount); TokenSubtracted(_receiver, tokensAmount, _equivalentEthAmount); } /** * Internal method for storing tokens in contract until claim stage */ function storeTokens(address _receiver, uint256 _tokensAmount) internal whenNotPaused { if (tokens[_receiver] == 0) { tokenReceivers[receiversCount] = _receiver; receiversCount++; approved[_receiver] = false; } tokens[_receiver] = tokens[_receiver].add(_tokensAmount); } /** * Claim all bought HQX. Available tokens will be sent to transaction sender address if it is approved */ function claim() whenNotPaused { claimFor(msg.sender); } /** * Claim all bought HQX for specific approved address */ function claimOne(address _receiver) onlyOwner whenNotPaused { claimFor(_receiver); } /** * Claim all bought HQX for all approved addresses */ function claimAll() onlyOwner whenNotPaused { for (uint32 i = 0; i < receiversCount; i++) { address receiver = tokenReceivers[i]; if (approved[receiver] && tokens[receiver] > 0) { claimFor(receiver); } } } /** * Internal method for claiming tokens for specific approved address */ function claimFor(address _receiver) internal whenNotPaused { require(approved[_receiver]); require(tokens[_receiver] > 0); uint256 tokensToSend = tokens[_receiver]; tokens[_receiver] = 0; token.transferFrom(bankAddress, _receiver, tokensToSend); TokenSent(_receiver, tokensToSend); } function approve(address _receiver) onlyOwner whenNotPaused { approved[_receiver] = true; } /** * Finish Sale. */ function finish() onlyOwner { require (issuedTokensAmount >= maxTokensAmount || now > endDate); require (!isFinished); isFinished = true; token.transfer(bankAddress, token.balanceOf(this)); } function getReceiversCount() constant onlyOwner returns (uint32) { return receiversCount; } function getReceiver(uint32 i) constant onlyOwner returns (address) { return tokenReceivers[i]; } /** * Buy HQX. Tokens will be stored in contract until claim stage */ function() external payable { buy(); } } /** * @title ChangeableRateCrowdsale * @dev HoQu.io Main Sale stage */ contract ChangeableRateCrowdsale is ClaimableCrowdsale { struct RateBoundary { uint256 amount; uint256 rate; } mapping (uint => RateBoundary) public rateBoundaries; uint public currentBoundary = 0; uint public numOfBoundaries = 0; uint256 public nextBoundaryAmount; /** * @param _tokenAddress address of a HQX token contract * @param _bankAddress address for remain HQX tokens accumulation * @param _beneficiaryAddress accepted ETH go to this address * @param _tokenRate rate HQX per 1 ETH * @param _minBuyableAmount min ETH per each buy action (in ETH wei) * @param _maxTokensAmount ICO HQX capacity (in HQX wei) * @param _endDate the date when ICO will expire */ function ChangeableRateCrowdsale( address _tokenAddress, address _bankAddress, address _beneficiaryAddress, uint256 _tokenRate, uint256 _minBuyableAmount, uint256 _maxTokensAmount, uint256 _endDate ) ClaimableCrowdsale( _tokenAddress, _bankAddress, _beneficiaryAddress, _tokenRate, _minBuyableAmount, _maxTokensAmount, _endDate ) { rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 13777764 ether, rate : 6000 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 27555528 ether, rate : 5750 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 41333292 ether, rate : 5650 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 55111056 ether, rate : 5550 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 68888820 ether, rate : 5450 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 82666584 ether, rate : 5350 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 96444348 ether, rate : 5250 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 110222112 ether, rate : 5150 }); rateBoundaries[numOfBoundaries++] = RateBoundary({ amount : 137777640 ether, rate : 5000 }); nextBoundaryAmount = rateBoundaries[currentBoundary].amount; } /** * Internal method to change rate if boundary is hit */ function touchRate() internal { if (issuedTokensAmount >= nextBoundaryAmount) { currentBoundary++; if (currentBoundary >= numOfBoundaries) { nextBoundaryAmount = maxTokensAmount; } else { nextBoundaryAmount = rateBoundaries[currentBoundary].amount; tokenRate = rateBoundaries[currentBoundary].rate; } } } /** * Inherited internal method for storing tokens in contract until claim stage */ function storeTokens(address _receiver, uint256 _tokensAmount) internal whenNotPaused { ClaimableCrowdsale.storeTokens(_receiver, _tokensAmount); touchRate(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"claimOne","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTokensAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minBuyableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_equivalentEthAmount","type":"uint256"}],"name":"sub","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint32"}],"name":"getReceiver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"rateBoundaries","outputs":[{"name":"amount","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenRate","type":"uint256"}],"name":"setTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bankAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentBoundary","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getReceiversCount","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numOfBoundaries","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finish","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_equivalentEthAmount","type":"uint256"}],"name":"topUp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"approved","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"issuedTokensAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextBoundaryAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_equivalentEthAmount","type":"uint256"}],"name":"add","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_bankAddress","type":"address"},{"name":"_beneficiaryAddress","type":"address"},{"name":"_tokenRate","type":"uint256"},{"name":"_minBuyableAmount","type":"uint256"},{"name":"_maxTokensAmount","type":"uint256"},{"name":"_endDate","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_buyer","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"TokenBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_equivalentAmount","type":"uint256"}],"name":"TokenAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_equivalentAmount","type":"uint256"}],"name":"TokenToppedUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_equivalentAmount","type":"uint256"}],"name":"TokenSubtracted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"}],"name":"TokenSent","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]
Contract Creation Code
60606040526000805460a060020a60ff021916815560058190556009805460ff19169055600f819055601055341561003657600080fd5b60405160e08061150f8339810160405280805191906020018051919060200180519190602001805191906020018051919060200180519190602001805160008054600160a060020a03338116600160a060020a03199283161790925560038054838d1690831617905560028054838c1690831617905560018054928a16929091169190911790556007869055600685905560048490556008819055915060409050805190810160409081526a0b658e154215c96f100000825261177060208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a16cb1c2a842b92de200000825261167660208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a2230aa3fc6415c4d300000825261161260208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a2d963855085725bc40000082526115ae60208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a38fbc66a4a6cef2b500000825261154a60208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a4461547f8c82b89a60000082526114e660208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a4fc6e294ce988209700000825261148260208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a5b2c70aa10ae4b78800000825261141e60208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a71f78cd494d9de56a00000825261138860208084019190915260108054600181019091556000908152600e909152208151815560208201516001909101555050600f546000908152600e6020526040902054601155505050505050611163806103ac6000396000f3006060604052600436106101665763ffffffff60e060020a6000350416630262dc1381146101705780630a3846651461018f5780632511b182146101b457806326ffee08146101c757806331711884146101e95780633c78fe07146101fc5780633f4ba83a146102345780634a7510721461025b5780634e71d92d146102895780635c975abb1461029c57806361241c28146102af5780637822ed49146102c55780637b352962146102d85780638456cb59146102eb5780638da5cb5b146102fe578063a4bd7a2014610311578063a6f2ae3a14610166578063a72a05f714610324578063d1058e5914610350578063d4f114a614610363578063d56b288914610376578063d6f7ddf914610389578063d8b964e6146103ab578063daea85c5146103ca578063e4860339146103e9578063e69b414b14610408578063f07255e31461041b578063f2fde38b1461042e578063f5d82b6b1461044d578063fc0c546a1461046f575b61016e610482565b005b341561017b57600080fd5b61016e600160a060020a0360043516610621565b341561019a57600080fd5b6101a261065f565b60405190815260200160405180910390f35b34156101bf57600080fd5b6101a2610665565b34156101d257600080fd5b61016e600160a060020a036004351660243561066b565b34156101f457600080fd5b6101a261077b565b341561020757600080fd5b61021863ffffffff60043516610781565b604051600160a060020a03909116815260200160405180910390f35b341561023f57600080fd5b6102476107bf565b604051901515815260200160405180910390f35b341561026657600080fd5b610271600435610843565b60405191825260208201526040908101905180910390f35b341561029457600080fd5b61016e61085c565b34156102a757600080fd5b61024761087e565b34156102ba57600080fd5b61016e60043561088e565b34156102d057600080fd5b6102186108bb565b34156102e357600080fd5b6102476108ca565b34156102f657600080fd5b6102476108d3565b341561030957600080fd5b61021861095c565b341561031c57600080fd5b6101a261096b565b341561032f57600080fd5b610337610971565b60405163ffffffff909116815260200160405180910390f35b341561035b57600080fd5b61016e61099a565b341561036e57600080fd5b6101a2610a59565b341561038157600080fd5b61016e610a5f565b341561039457600080fd5b61016e600160a060020a0360043516602435610ba1565b34156103b657600080fd5b610247600160a060020a0360043516610c53565b34156103d557600080fd5b61016e600160a060020a0360043516610c68565b34156103f457600080fd5b6101a2600160a060020a0360043516610cbe565b341561041357600080fd5b6101a2610cd0565b341561042657600080fd5b6101a2610cd6565b341561043957600080fd5b61016e600160a060020a0360043516610cdc565b341561045857600080fd5b61016e600160a060020a0360043516602435610d33565b341561047a57600080fd5b610218610e14565b6009546000908190819060ff161561049957600080fd5b600454600554106104a957600080fd5b6008544211156104b857600080fd5b60005460a060020a900460ff16156104cf57600080fd5b600754349350600092506104e9908463ffffffff610e2316565b90506004548160055401111561053a5760055460045461050e9163ffffffff610e4e16565b905061052560075482610e6090919063ffffffff16565b9250610537348463ffffffff610e4e16565b91505b60055461054d908263ffffffff610e7716565b600581905560045490111561056157600080fd5b61056b3382610e86565b33600160a060020a03167f28cab0d660ed8aedd61a8c9db00b97f6a2d67e07d87795994f440b18bc5f1aa3828560405191825260208201526040908101905180910390a2600154600160a060020a031683156108fc0284604051600060405180830381858888f1935050505015156105e257600080fd5b600082111561061c57600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561061c57600080fd5b505050565b60005433600160a060020a0390811691161461063c57600080fd5b60005460a060020a900460ff161561065357600080fd5b61065c81610eaf565b50565b60045481565b60065481565b6000805433600160a060020a0390811691161461068757600080fd5b60005460a060020a900460ff161561069e57600080fd5b6007546106b1908363ffffffff610e2316565b600160a060020a0384166000908152600a6020526040902054909150819010156106da57600080fd5b600160a060020a0383166000908152600a6020526040902054610703908263ffffffff610e4e16565b600160a060020a0384166000908152600a602052604090205560055461072f908263ffffffff610e4e16565b600555600160a060020a0383167f2da8b2becb27b189a54d21689aa110c877379a94c6f59f115cedc91d66239b33828460405191825260208201526040908101905180910390a2505050565b60075481565b6000805433600160a060020a0390811691161461079d57600080fd5b5063ffffffff166000908152600c6020526040902054600160a060020a031690565b6000805433600160a060020a039081169116146107db57600080fd5b60005460a060020a900460ff1615156107f357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b600e602052600090815260409020805460019091015482565b60005460a060020a900460ff161561087357600080fd5b61087c33610eaf565b565b60005460a060020a900460ff1681565b60005433600160a060020a039081169116146108a957600080fd5b600081116108b657600080fd5b600755565b600254600160a060020a031681565b60095460ff1681565b6000805433600160a060020a039081169116146108ef57600080fd5b60005460a060020a900460ff161561090657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b600054600160a060020a031681565b600f5481565b6000805433600160a060020a0390811691161461098d57600080fd5b50600d5463ffffffff1690565b60008054819033600160a060020a039081169116146109b857600080fd5b60005460a060020a900460ff16156109cf57600080fd5b600091505b600d5463ffffffff9081169083161015610a55575063ffffffff81166000908152600c6020908152604080832054600160a060020a0316808452600b9092529091205460ff168015610a3c5750600160a060020a0381166000908152600a6020526040812054115b15610a4a57610a4a81610eaf565b6001909101906109d4565b5050565b60105481565b60005433600160a060020a03908116911614610a7a57600080fd5b600454600554101580610a8e575060085442115b1515610a9957600080fd5b60095460ff1615610aa957600080fd5b6009805460ff19166001179055600354600254600160a060020a039182169163a9059cbb9116826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1d57600080fd5b6102c65a03f11515610b2e57600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b8457600080fd5b6102c65a03f11515610b9557600080fd5b50505060405180515050565b6000805433600160a060020a03908116911614610bbd57600080fd5b60005460a060020a900460ff1615610bd457600080fd5b600754610be7908363ffffffff610e2316565b600554909150610bfd908263ffffffff610e7716565b600555610c0a8382610e86565b82600160a060020a03167ff10143e1b37ebaf3698e98976d8bddabcea045adc939c03b245da18e81ea9651828460405191825260208201526040908101905180910390a2505050565b600b6020526000908152604090205460ff1681565b60005433600160a060020a03908116911614610c8357600080fd5b60005460a060020a900460ff1615610c9a57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600a6020526000908152604090205481565b60055481565b60115481565b60005433600160a060020a03908116911614610cf757600080fd5b600160a060020a0381161561065c5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000805433600160a060020a03908116911614610d4f57600080fd5b60095460ff1615610d5f57600080fd5b60045460055410610d6f57600080fd5b600854421115610d7e57600080fd5b60005460a060020a900460ff1615610d9557600080fd5b600754610da8908363ffffffff610e2316565b600554909150610dbe908263ffffffff610e7716565b600555610dcb8382610e86565b82600160a060020a03167fa818a22273fc309f0a3682b642c74c5b5c25c0615ff378d07767cd231e19fffc828460405191825260208201526040908101905180910390a2505050565b600354600160a060020a031681565b6000828202831580610e3f5750828482811515610e3c57fe5b04145b1515610e4757fe5b9392505050565b600082821115610e5a57fe5b50900390565b6000808284811515610e6e57fe5b04949350505050565b600082820183811015610e4757fe5b60005460a060020a900460ff1615610e9d57600080fd5b610ea78282610ffd565b610a556110ee565b6000805460a060020a900460ff1615610ec757600080fd5b600160a060020a0382166000908152600b602052604090205460ff161515610eee57600080fd5b600160a060020a0382166000908152600a602052604081205411610f1157600080fd5b50600160a060020a038082166000908152600a60205260408082208054908390556003546002549194908116936323b872dd93929091169186918691516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610fa157600080fd5b6102c65a03f11515610fb257600080fd5b50505060405180515050600160a060020a0382167fd4ff88d569a7ad2bfd6b17da9dbe82e2ccc016fd0051e08ff1ad1e6fe8fc9b558260405190815260200160405180910390a25050565b60005460a060020a900460ff161561101457600080fd5b600160a060020a0382166000908152600a602052604090205415156110a557600d805463ffffffff9081166000908152600c60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038916908117909155855463ffffffff19811690861660010190951694909417909455918152600b90915220805460ff191690555b600160a060020a0382166000908152600a60205260409020546110ce908263ffffffff610e7716565b600160a060020a039092166000908152600a602052604090209190915550565b6011546005541061087c57600f80546001019081905560105490106111185760045460115561087c565b600f546000908152600e602052604090208054601155600101546007555600a165627a7a723058205dcd51c36e6f1408ac87e0e8d000b315fa16ccd0bbf97ffbb808e16ac1dc65b400290000000000000000000000001b957dc4aefeed3b4a2351a6a6d5cbfbba0cecfa00000000000000000000000029f5ffb0e38e72ea60226f24b0e241bcc12868b80000000000000000000000008c097a9c954894c8779edef955398d6b8ea7226a0000000000000000000000000000000000000000000000000000000000001770000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000071f78cd494d9de56a00000000000000000000000000000000000000000000000000000000000005a949f7f
Deployed Bytecode
0x6060604052600436106101665763ffffffff60e060020a6000350416630262dc1381146101705780630a3846651461018f5780632511b182146101b457806326ffee08146101c757806331711884146101e95780633c78fe07146101fc5780633f4ba83a146102345780634a7510721461025b5780634e71d92d146102895780635c975abb1461029c57806361241c28146102af5780637822ed49146102c55780637b352962146102d85780638456cb59146102eb5780638da5cb5b146102fe578063a4bd7a2014610311578063a6f2ae3a14610166578063a72a05f714610324578063d1058e5914610350578063d4f114a614610363578063d56b288914610376578063d6f7ddf914610389578063d8b964e6146103ab578063daea85c5146103ca578063e4860339146103e9578063e69b414b14610408578063f07255e31461041b578063f2fde38b1461042e578063f5d82b6b1461044d578063fc0c546a1461046f575b61016e610482565b005b341561017b57600080fd5b61016e600160a060020a0360043516610621565b341561019a57600080fd5b6101a261065f565b60405190815260200160405180910390f35b34156101bf57600080fd5b6101a2610665565b34156101d257600080fd5b61016e600160a060020a036004351660243561066b565b34156101f457600080fd5b6101a261077b565b341561020757600080fd5b61021863ffffffff60043516610781565b604051600160a060020a03909116815260200160405180910390f35b341561023f57600080fd5b6102476107bf565b604051901515815260200160405180910390f35b341561026657600080fd5b610271600435610843565b60405191825260208201526040908101905180910390f35b341561029457600080fd5b61016e61085c565b34156102a757600080fd5b61024761087e565b34156102ba57600080fd5b61016e60043561088e565b34156102d057600080fd5b6102186108bb565b34156102e357600080fd5b6102476108ca565b34156102f657600080fd5b6102476108d3565b341561030957600080fd5b61021861095c565b341561031c57600080fd5b6101a261096b565b341561032f57600080fd5b610337610971565b60405163ffffffff909116815260200160405180910390f35b341561035b57600080fd5b61016e61099a565b341561036e57600080fd5b6101a2610a59565b341561038157600080fd5b61016e610a5f565b341561039457600080fd5b61016e600160a060020a0360043516602435610ba1565b34156103b657600080fd5b610247600160a060020a0360043516610c53565b34156103d557600080fd5b61016e600160a060020a0360043516610c68565b34156103f457600080fd5b6101a2600160a060020a0360043516610cbe565b341561041357600080fd5b6101a2610cd0565b341561042657600080fd5b6101a2610cd6565b341561043957600080fd5b61016e600160a060020a0360043516610cdc565b341561045857600080fd5b61016e600160a060020a0360043516602435610d33565b341561047a57600080fd5b610218610e14565b6009546000908190819060ff161561049957600080fd5b600454600554106104a957600080fd5b6008544211156104b857600080fd5b60005460a060020a900460ff16156104cf57600080fd5b600754349350600092506104e9908463ffffffff610e2316565b90506004548160055401111561053a5760055460045461050e9163ffffffff610e4e16565b905061052560075482610e6090919063ffffffff16565b9250610537348463ffffffff610e4e16565b91505b60055461054d908263ffffffff610e7716565b600581905560045490111561056157600080fd5b61056b3382610e86565b33600160a060020a03167f28cab0d660ed8aedd61a8c9db00b97f6a2d67e07d87795994f440b18bc5f1aa3828560405191825260208201526040908101905180910390a2600154600160a060020a031683156108fc0284604051600060405180830381858888f1935050505015156105e257600080fd5b600082111561061c57600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561061c57600080fd5b505050565b60005433600160a060020a0390811691161461063c57600080fd5b60005460a060020a900460ff161561065357600080fd5b61065c81610eaf565b50565b60045481565b60065481565b6000805433600160a060020a0390811691161461068757600080fd5b60005460a060020a900460ff161561069e57600080fd5b6007546106b1908363ffffffff610e2316565b600160a060020a0384166000908152600a6020526040902054909150819010156106da57600080fd5b600160a060020a0383166000908152600a6020526040902054610703908263ffffffff610e4e16565b600160a060020a0384166000908152600a602052604090205560055461072f908263ffffffff610e4e16565b600555600160a060020a0383167f2da8b2becb27b189a54d21689aa110c877379a94c6f59f115cedc91d66239b33828460405191825260208201526040908101905180910390a2505050565b60075481565b6000805433600160a060020a0390811691161461079d57600080fd5b5063ffffffff166000908152600c6020526040902054600160a060020a031690565b6000805433600160a060020a039081169116146107db57600080fd5b60005460a060020a900460ff1615156107f357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b600e602052600090815260409020805460019091015482565b60005460a060020a900460ff161561087357600080fd5b61087c33610eaf565b565b60005460a060020a900460ff1681565b60005433600160a060020a039081169116146108a957600080fd5b600081116108b657600080fd5b600755565b600254600160a060020a031681565b60095460ff1681565b6000805433600160a060020a039081169116146108ef57600080fd5b60005460a060020a900460ff161561090657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b600054600160a060020a031681565b600f5481565b6000805433600160a060020a0390811691161461098d57600080fd5b50600d5463ffffffff1690565b60008054819033600160a060020a039081169116146109b857600080fd5b60005460a060020a900460ff16156109cf57600080fd5b600091505b600d5463ffffffff9081169083161015610a55575063ffffffff81166000908152600c6020908152604080832054600160a060020a0316808452600b9092529091205460ff168015610a3c5750600160a060020a0381166000908152600a6020526040812054115b15610a4a57610a4a81610eaf565b6001909101906109d4565b5050565b60105481565b60005433600160a060020a03908116911614610a7a57600080fd5b600454600554101580610a8e575060085442115b1515610a9957600080fd5b60095460ff1615610aa957600080fd5b6009805460ff19166001179055600354600254600160a060020a039182169163a9059cbb9116826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1d57600080fd5b6102c65a03f11515610b2e57600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b8457600080fd5b6102c65a03f11515610b9557600080fd5b50505060405180515050565b6000805433600160a060020a03908116911614610bbd57600080fd5b60005460a060020a900460ff1615610bd457600080fd5b600754610be7908363ffffffff610e2316565b600554909150610bfd908263ffffffff610e7716565b600555610c0a8382610e86565b82600160a060020a03167ff10143e1b37ebaf3698e98976d8bddabcea045adc939c03b245da18e81ea9651828460405191825260208201526040908101905180910390a2505050565b600b6020526000908152604090205460ff1681565b60005433600160a060020a03908116911614610c8357600080fd5b60005460a060020a900460ff1615610c9a57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600a6020526000908152604090205481565b60055481565b60115481565b60005433600160a060020a03908116911614610cf757600080fd5b600160a060020a0381161561065c5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000805433600160a060020a03908116911614610d4f57600080fd5b60095460ff1615610d5f57600080fd5b60045460055410610d6f57600080fd5b600854421115610d7e57600080fd5b60005460a060020a900460ff1615610d9557600080fd5b600754610da8908363ffffffff610e2316565b600554909150610dbe908263ffffffff610e7716565b600555610dcb8382610e86565b82600160a060020a03167fa818a22273fc309f0a3682b642c74c5b5c25c0615ff378d07767cd231e19fffc828460405191825260208201526040908101905180910390a2505050565b600354600160a060020a031681565b6000828202831580610e3f5750828482811515610e3c57fe5b04145b1515610e4757fe5b9392505050565b600082821115610e5a57fe5b50900390565b6000808284811515610e6e57fe5b04949350505050565b600082820183811015610e4757fe5b60005460a060020a900460ff1615610e9d57600080fd5b610ea78282610ffd565b610a556110ee565b6000805460a060020a900460ff1615610ec757600080fd5b600160a060020a0382166000908152600b602052604090205460ff161515610eee57600080fd5b600160a060020a0382166000908152600a602052604081205411610f1157600080fd5b50600160a060020a038082166000908152600a60205260408082208054908390556003546002549194908116936323b872dd93929091169186918691516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610fa157600080fd5b6102c65a03f11515610fb257600080fd5b50505060405180515050600160a060020a0382167fd4ff88d569a7ad2bfd6b17da9dbe82e2ccc016fd0051e08ff1ad1e6fe8fc9b558260405190815260200160405180910390a25050565b60005460a060020a900460ff161561101457600080fd5b600160a060020a0382166000908152600a602052604090205415156110a557600d805463ffffffff9081166000908152600c60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038916908117909155855463ffffffff19811690861660010190951694909417909455918152600b90915220805460ff191690555b600160a060020a0382166000908152600a60205260409020546110ce908263ffffffff610e7716565b600160a060020a039092166000908152600a602052604090209190915550565b6011546005541061087c57600f80546001019081905560105490106111185760045460115561087c565b600f546000908152600e602052604090208054601155600101546007555600a165627a7a723058205dcd51c36e6f1408ac87e0e8d000b315fa16ccd0bbf97ffbb808e16ac1dc65b40029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001b957dc4aefeed3b4a2351a6a6d5cbfbba0cecfa00000000000000000000000029f5ffb0e38e72ea60226f24b0e241bcc12868b80000000000000000000000008c097a9c954894c8779edef955398d6b8ea7226a0000000000000000000000000000000000000000000000000000000000001770000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000071f78cd494d9de56a00000000000000000000000000000000000000000000000000000000000005a949f7f
-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0x1B957Dc4aEfeed3b4A2351a6A6d5cbfbbA0CeCFa
Arg [1] : _bankAddress (address): 0x29f5FFB0E38E72eA60226f24b0E241bCC12868b8
Arg [2] : _beneficiaryAddress (address): 0x8c097a9C954894C8779EdEF955398D6b8Ea7226a
Arg [3] : _tokenRate (uint256): 6000
Arg [4] : _minBuyableAmount (uint256): 10000000000000000
Arg [5] : _maxTokensAmount (uint256): 137777640000000000000000000
Arg [6] : _endDate (uint256): 1519689599
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000001b957dc4aefeed3b4a2351a6a6d5cbfbba0cecfa
Arg [1] : 00000000000000000000000029f5ffb0e38e72ea60226f24b0e241bcc12868b8
Arg [2] : 0000000000000000000000008c097a9c954894c8779edef955398d6b8ea7226a
Arg [3] : 0000000000000000000000000000000000000000000000000000000000001770
Arg [4] : 000000000000000000000000000000000000000000000000002386f26fc10000
Arg [5] : 00000000000000000000000000000000000000000071f78cd494d9de56a00000
Arg [6] : 000000000000000000000000000000000000000000000000000000005a949f7f
Swarm Source
bzzr://5dcd51c36e6f1408ac87e0e8d000b315fa16ccd0bbf97ffbb808e16ac1dc65b4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.