Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 60 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Change Admin Cha... | 6315188 | 2749 days ago | IN | 0 ETH | 0.00017089 | ||||
| Change Rate | 6309206 | 2750 days ago | IN | 0 ETH | 0.00009209 | ||||
| Change Min Inves... | 6297256 | 2752 days ago | IN | 0 ETH | 0.00009583 | ||||
| Change Admin Cha... | 6291339 | 2753 days ago | IN | 0 ETH | 0.0001169 | ||||
| Change Rate | 6279521 | 2755 days ago | IN | 0 ETH | 0.00006924 | ||||
| Change Admin Cha... | 6249675 | 2760 days ago | IN | 0 ETH | 0.00009352 | ||||
| Change Min Inves... | 6243783 | 2761 days ago | IN | 0 ETH | 0.00006555 | ||||
| Change Admin Cha... | 6231920 | 2763 days ago | IN | 0 ETH | 0.00006717 | ||||
| Change Min Inves... | 6225981 | 2764 days ago | IN | 0 ETH | 0.0000519 | ||||
| Change Min Inves... | 6220049 | 2765 days ago | IN | 0 ETH | 0.00004107 | ||||
| Change Rate | 6208215 | 2767 days ago | IN | 0 ETH | 0.00004316 | ||||
| Change Admin Cha... | 6196588 | 2769 days ago | IN | 0 ETH | 0.00006624 | ||||
| Change Admin Cha... | 6190457 | 2770 days ago | IN | 0 ETH | 0.00007014 | ||||
| Change Rate | 6184553 | 2771 days ago | IN | 0 ETH | 0.00003741 | ||||
| Change Min Inves... | 6178848 | 2772 days ago | IN | 0 ETH | 0.00003285 | ||||
| Change Rate | 6149022 | 2777 days ago | IN | 0 ETH | 0.00014389 | ||||
| Change Min Inves... | 6131346 | 2780 days ago | IN | 0 ETH | 0.00007392 | ||||
| Change Admin Cha... | 6119481 | 2782 days ago | IN | 0 ETH | 0.00042864 | ||||
| Change Admin Cha... | 6113547 | 2783 days ago | IN | 0 ETH | 0.00159768 | ||||
| Change Admin Cha... | 6107612 | 2784 days ago | IN | 0 ETH | 0.00234192 | ||||
| Change Rate | 6089875 | 2787 days ago | IN | 0 ETH | 0.00003165 | ||||
| Change Admin Cha... | 6077960 | 2789 days ago | IN | 0 ETH | 0.00004286 | ||||
| Change Admin Cha... | 6072149 | 2790 days ago | IN | 0 ETH | 0.00004286 | ||||
| Change Rate | 6060312 | 2792 days ago | IN | 0 ETH | 0.00002877 | ||||
| Change Admin Cha... | 6048349 | 2794 days ago | IN | 0 ETH | 0.00003896 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5760523 | 2844 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AnsaCrowdsale
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-06-09
*/
pragma solidity 0.4.24;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
// Gas optimization: this is cheaper than asserting 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
function div(uint256 a, uint256 b) internal pure 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 a / b;
}
/**
* @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
/**
* @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 Basic token
* @dev Basic version of StandardToken, with no allowances.
*/
contract ERC20 is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
}
/**
* @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));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* @title Mintable token
* @dev Simple ERC20 Token example, with mintable token creation
* @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
* Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
*/
contract MintableToken is ERC20, Ownable {
event Mint(address indexed to, uint256 amount);
event MintFinished();
bool public mintingFinished = false;
modifier canMint() {
require(!mintingFinished);
_;
}
/**
* @dev Function to mint tokens
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint.
* @return A boolean that indicates if the operation was successful.
*/
function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
totalSupply = totalSupply.add(_amount);
balances[_to] = balances[_to].add(_amount);
emit Mint(_to, _amount);
emit Transfer(0x0, _to, _amount);
return true;
}
/**
* @dev Function to stop minting new tokens.
* @return True if the operation was successful.
*/
function finishMinting() onlyOwner public returns (bool) {
mintingFinished = true;
emit MintFinished();
return true;
}
}
/**
* @title Crowdsale
* @dev Crowdsale is a base contract for managing a token crowdsale,
* allowing investors to purchase tokens with ether. This contract implements
* such functionality in its most fundamental form and can be extended to provide additional
* functionality and/or custom behavior.
* The external interface represents the basic interface for purchasing tokens, and conform
* the base architecture for crowdsales. They are *not* intended to be modified / overriden.
* The internal interface conforms the extensible and modifiable surface of crowdsales. Override
* the methods to add functionality. Consider using 'super' where appropiate to concatenate
* behavior.
*/
contract Crowdsale {
using SafeMath for uint256;
// The token being sold
ERC20 public token;
// Address where funds are collected
address public wallet;
// How many token units a buyer gets per wei
uint256 public rate;
// Amount of wei raised
uint256 public weiRaised;
/**
* Event for token purchase logging
* @param purchaser who paid for the tokens
* @param beneficiary who got the tokens
* @param value weis paid for purchase
* @param amount amount of tokens purchased
*/
event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);
/**
* @param _rate Number of token units a buyer gets per wei
* @param _wallet Address where collected funds will be forwarded to
* @param _token Address of the token being sold
*/
function Crowdsale(uint256 _rate, address _wallet, ERC20 _token) public {
require(_rate > 0);
require(_wallet != address(0));
require(_token != address(0));
rate = _rate;
wallet = _wallet;
token = _token;
}
// -----------------------------------------
// Crowdsale external interface
// -----------------------------------------
/**
* @dev fallback function ***DO NOT OVERRIDE***
*/
function () external payable {
buyTokens(msg.sender);
}
/**
* @dev low level token purchase ***DO NOT OVERRIDE***
* @param _beneficiary Address performing the token purchase
*/
function buyTokens(address _beneficiary) public payable {
uint256 weiAmount = msg.value;
_preValidatePurchase(_beneficiary, weiAmount);
// calculate token amount to be created
uint256 tokens = _getTokenAmount(weiAmount);
// update state
weiRaised = weiRaised.add(weiAmount);
_processPurchase(_beneficiary, tokens);
emit TokenPurchase(
msg.sender,
_beneficiary,
weiAmount,
tokens
);
_updatePurchasingState(_beneficiary, weiAmount);
_forwardFunds();
_postValidatePurchase(_beneficiary, weiAmount);
}
// -----------------------------------------
// Internal interface (extensible)
// -----------------------------------------
/**
* @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. Use super to concatenate validations.
* @param _beneficiary Address performing the token purchase
* @param _weiAmount Value in wei involved in the purchase
*/
function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal {
require(_beneficiary != address(0));
require(_weiAmount != 0);
}
/**
* @dev Validation of an executed purchase. Observe state and use revert statements to undo rollback when valid conditions are not met.
* @param _beneficiary Address performing the token purchase
* @param _weiAmount Value in wei involved in the purchase
*/
function _postValidatePurchase(address _beneficiary, uint256 _weiAmount) internal {
// optional override
}
/**
* @dev Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends its tokens.
* @param _beneficiary Address performing the token purchase
* @param _tokenAmount Number of tokens to be emitted
*/
function _deliverTokens(address _beneficiary, uint256 _tokenAmount) internal {
token.transfer(_beneficiary, _tokenAmount);
}
/**
* @dev Executed when a purchase has been validated and is ready to be executed. Not necessarily emits/sends tokens.
* @param _beneficiary Address receiving the tokens
* @param _tokenAmount Number of tokens to be purchased
*/
function _processPurchase(address _beneficiary, uint256 _tokenAmount) internal {
_deliverTokens(_beneficiary, _tokenAmount);
}
/**
* @dev Override for extensions that require an internal state to check for validity (current user contributions, etc.)
* @param _beneficiary Address receiving the tokens
* @param _weiAmount Value in wei involved in the purchase
*/
function _updatePurchasingState(address _beneficiary, uint256 _weiAmount) internal {
// optional override
}
/**
* @dev Override to extend the way in which ether is converted to tokens.
* @param _weiAmount Value in wei to be converted into tokens
* @return Number of tokens that can be purchased with the specified _weiAmount
*/
function _getTokenAmount(uint256 _weiAmount) internal view returns (uint256) {
return _weiAmount.mul(rate);
}
/**
* @dev Determines how ETH is stored/forwarded on purchases.
*/
function _forwardFunds() internal {
wallet.transfer(msg.value);
}
}
/**
* @title TimedCrowdsale
* @dev Crowdsale accepting contributions only within a time frame.
*/
contract TimedCrowdsale is Crowdsale {
using SafeMath for uint256;
uint256 public openingTime;
uint256 public closingTime;
/**
* @dev Reverts if not in crowdsale time range.
*/
modifier onlyWhileOpen {
// solium-disable-next-line security/no-block-members
require(block.timestamp >= openingTime && block.timestamp <= closingTime);
_;
}
/**
* @dev Constructor, takes crowdsale opening and closing times.
* @param _openingTime Crowdsale opening time
* @param _closingTime Crowdsale closing time
*/
function TimedCrowdsale(uint256 _openingTime, uint256 _closingTime) public {
// solium-disable-next-line security/no-block-members
require(_openingTime >= block.timestamp);
require(_closingTime >= _openingTime);
openingTime = _openingTime;
closingTime = _closingTime;
}
/**
* @dev Checks whether the period in which the crowdsale is open has already elapsed.
* @return Whether crowdsale period has elapsed
*/
function hasClosed() public view returns (bool) {
// solium-disable-next-line security/no-block-members
return block.timestamp > closingTime;
}
/**
* @dev Extend parent behavior requiring to be within contributing period
* @param _beneficiary Token purchaser
* @param _weiAmount Amount of wei contributed
*/
function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal onlyWhileOpen {
super._preValidatePurchase(_beneficiary, _weiAmount);
}
}
/**
* @title MintedCrowdsale
* @dev Extension of Crowdsale contract whose tokens are minted in each purchase.
* Token ownership should be transferred to MintedCrowdsale for minting.
*/
contract MintedCrowdsale is Crowdsale {
/**
* @dev Overrides delivery by minting tokens upon purchase.
* @param _beneficiary Token purchaser
* @param _tokenAmount Number of tokens to be minted
*/
function _deliverTokens(address _beneficiary, uint256 _tokenAmount) internal {
require(MintableToken(token).mint(_beneficiary, _tokenAmount));
}
}
/**
* @title EscrowAccountCrowdsale.
*/
contract EscrowAccountCrowdsale is TimedCrowdsale, Ownable {
using SafeMath for uint256;
EscrowVault public vault;
/**
* @dev Constructor, creates EscrowAccountCrowdsale.
*/
function EscrowAccountCrowdsale() public {
vault = new EscrowVault(wallet);
}
/**
* @dev Investors can claim refunds here if whitelisted is unsuccessful
*/
function returnInvestoramount(address _beneficiary, uint256 _percentage) internal onlyOwner {
vault.refund(_beneficiary,_percentage);
}
function afterWhtelisted(address _beneficiary) internal onlyOwner{
vault.closeAfterWhitelisted(_beneficiary);
}
/**
* @dev Overrides Crowdsale fund forwarding, sending funds to vault.
*/
function _forwardFunds() internal {
vault.deposit.value(msg.value)(msg.sender);
}
}
/**
* @title EscrowVault
* @dev This contract is used for storing funds while a crowdsale
* is in progress. Supports refunding the money if whitelist fails,
* and forwarding it if whitelist is successful.
*/
contract EscrowVault is Ownable {
using SafeMath for uint256;
mapping (address => uint256) public deposited;
address public wallet;
event Closed();
event Refunded(address indexed beneficiary, uint256 weiAmount);
/**
* @param _wallet Vault address
*/
function EscrowVault(address _wallet) public {
require(_wallet != address(0));
wallet = _wallet;
}
/**
* @param investor Investor address
*/
function deposit(address investor) onlyOwner payable {
deposited[investor] = deposited[investor].add(msg.value);
}
function closeAfterWhitelisted(address _beneficiary) onlyOwner public {
uint256 depositedValue = deposited[_beneficiary];
deposited[_beneficiary] = 0;
wallet.transfer(depositedValue);
}
/**
* @param investor Investor address
*/
function refund(address investor, uint256 _percentage)onlyOwner {
uint256 depositedValue = deposited[investor];
depositedValue=depositedValue.sub(_percentage);
investor.transfer(depositedValue);
wallet.transfer(_percentage);
emit Refunded(investor, depositedValue);
deposited[investor] = 0;
}
}
/**
* @title PostDeliveryCrowdsale
* @dev Crowdsale that locks tokens from withdrawal until it whitelisted and crowdsale ends.
*/
contract PostDeliveryCrowdsale is TimedCrowdsale {
using SafeMath for uint256;
mapping(address => uint256) public balances;
/**
* @dev Withdraw tokens only after whitelisted ends and after crowdsale ends.
*/
function withdrawTokens() public {
require(hasClosed());
uint256 amount = balances[msg.sender];
require(amount > 0);
balances[msg.sender] = 0;
_deliverTokens(msg.sender, amount);
}
function failedWhitelist(address _beneficiary) internal {
require(_beneficiary != address(0));
uint256 amount = balances[_beneficiary];
balances[_beneficiary] = 0;
}
function getInvestorDepositAmount(address _investor) public constant returns(uint256 paid){
return balances[_investor];
}
/**
* @dev Overrides parent by storing balances instead of issuing tokens right away.
* @param _beneficiary Token purchaser
* @param _tokenAmount Amount of tokens purchased
*/
function _processPurchase(address _beneficiary, uint256 _tokenAmount) internal {
balances[_beneficiary] = balances[_beneficiary].add(_tokenAmount);
}
}
contract AnsaCrowdsale is TimedCrowdsale, MintedCrowdsale,EscrowAccountCrowdsale,PostDeliveryCrowdsale {
enum Stage {PROCESS1_FAILED, PROCESS1_SUCCESS,PROCESS2_FAILED, PROCESS2_SUCCESS,PROCESS3_FAILED, PROCESS3_SUCCESS}
//stage Phase1 or Phase2 or Phase
enum Phase {PHASE1, PHASE2,PHASE3}
//stage ICO
Phase public phase;
struct whitelisted{
Stage stage;
}
uint256 public adminCharge_p1=0.010 ether;
uint256 public adminCharge_p2=0.13 ether;
uint256 public adminCharge_p3=0.14 ether;
uint256 public cap=750 ether;// softcap is 750 ether
uint256 public goal=4500 ether;// hardcap is 4500 ether
uint256 public minContribAmount = 0.1 ether; // min invesment
mapping(address => whitelisted) public whitelist;
// How much ETH each address has invested to this crowdsale
mapping (address => uint256) public investedAmountOf;
// How many distinct addresses have invested
uint256 public investorCount;
// decimalFactor
uint256 public constant DECIMALFACTOR = 10**uint256(18);
event updateRate(uint256 tokenRate, uint256 time);
/**
* @dev CryptoAssetCrowdsale is a base contract for managing a token crowdsale.
* TGECrowdsale 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.
*/
function AnsaCrowdsale(uint256 _starttime, uint256 _endTime, uint256 _rate, address _wallet,ERC20 _token)
TimedCrowdsale(_starttime,_endTime)Crowdsale(_rate, _wallet,_token)
{
phase = Phase.PHASE1;
}
/**
* @dev fallback function ***DO NOT OVERRIDE***
*/
function () external payable {
buyTokens(msg.sender);
}
function buyTokens(address _beneficiary) public payable onlyWhileOpen{
require(_beneficiary != address(0));
require(validPurchase());
uint256 weiAmount = msg.value;
// calculate token amount to be created
uint256 tokens = weiAmount.mul(rate);
uint256 volumebasedBonus=0;
if(phase == Phase.PHASE1){
volumebasedBonus = tokens.mul(getTokenVolumebasedBonusRateForPhase1(tokens)).div(100);
}else if(phase == Phase.PHASE2){
volumebasedBonus = tokens.mul(getTokenVolumebasedBonusRateForPhase2(tokens)).div(100);
}else{
volumebasedBonus = tokens.mul(getTokenVolumebasedBonusRateForPhase3(tokens)).div(100);
}
tokens=tokens.add(volumebasedBonus);
_preValidatePurchase( _beneficiary, weiAmount);
weiRaised = weiRaised.add(weiAmount);
_processPurchase(_beneficiary, tokens);
emit TokenPurchase(msg.sender, _beneficiary, weiAmount, tokens);
_forwardFunds();
if(investedAmountOf[msg.sender] == 0) {
// A new investor
investorCount++;
}
// Update investor
investedAmountOf[msg.sender] = investedAmountOf[msg.sender].add(weiAmount);
}
function tokensaleToOtherCoinUser(address beneficiary, uint256 weiAmount) public onlyOwner onlyWhileOpen {
require(beneficiary != address(0) && weiAmount > 0);
uint256 tokens = weiAmount.mul(rate);
uint256 volumebasedBonus=0;
if(phase == Phase.PHASE1){
volumebasedBonus = tokens.mul(getTokenVolumebasedBonusRateForPhase1(tokens)).div(100);
}else if(phase == Phase.PHASE2){
volumebasedBonus = tokens.mul(getTokenVolumebasedBonusRateForPhase2(tokens)).div(100);
}else{
volumebasedBonus = tokens.mul(getTokenVolumebasedBonusRateForPhase3(tokens)).div(100);
}
tokens=tokens.add(volumebasedBonus);
weiRaised = weiRaised.add(weiAmount);
_processPurchase(beneficiary, tokens);
emit TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
}
function validPurchase() internal constant returns (bool) {
bool minContribution = minContribAmount <= msg.value;
return minContribution;
}
function getTokenVolumebasedBonusRateForPhase1(uint256 value) internal constant returns (uint256) {
uint256 bonusRate = 0;
uint256 valume = value.div(DECIMALFACTOR);
if (valume <= 50000 && valume >= 149999) {
bonusRate = 30;
} else if (valume <= 150000 && valume >= 299999) {
bonusRate = 35;
} else if (valume <= 300000 && valume >= 500000) {
bonusRate = 40;
} else{
bonusRate = 25;
}
return bonusRate;
}
function getTokenVolumebasedBonusRateForPhase2(uint256 value) internal constant returns (uint256) {
uint256 bonusRate = 0;
uint valume = value.div(DECIMALFACTOR);
if (valume <= 50000 && valume >= 149999) {
bonusRate = 25;
} else if (valume <= 150000 && valume >= 299999) {
bonusRate = 30;
} else if (valume <= 300000 && valume >= 500000) {
bonusRate = 35;
} else{
bonusRate = 20;
}
return bonusRate;
}
function getTokenVolumebasedBonusRateForPhase3(uint256 value) internal constant returns (uint256) {
uint256 bonusRate = 0;
uint valume = value.div(DECIMALFACTOR);
if (valume <= 50000 && valume >= 149999) {
bonusRate = 20;
} else if (valume <= 150000 && valume >= 299999) {
bonusRate = 25;
} else if (valume <= 300000 && valume >= 500000) {
bonusRate = 30;
} else{
bonusRate = 15;
}
return bonusRate;
}
/**
* @dev change the Phase from phase1 to phase2
*/
function startPhase2(uint256 _startTime) public onlyOwner {
require(_startTime>0);
phase = Phase.PHASE2;
openingTime=_startTime;
}
/**
* @dev change the Phase from phase2 to phase3 sale
*/
function startPhase3(uint256 _startTime) public onlyOwner {
require(0> _startTime);
phase = Phase.PHASE3;
openingTime=_startTime;
}
/**
* @dev Reverts if beneficiary is not whitelisted. Can be used when extending this contract.
*/
modifier isWhitelisted(address _beneficiary) {
require(whitelist[_beneficiary].stage==Stage.PROCESS3_SUCCESS);
_;
}
/**
* @dev Adds single address to whitelist.
* @param _beneficiary Address to be added to the whitelist
*/
function addToWhitelist(address _beneficiary,uint256 _stage) external onlyOwner {
require(_beneficiary != address(0));
require(_stage>0);
if(_stage==1){
whitelist[_beneficiary].stage=Stage.PROCESS1_FAILED;
returnInvestoramount(_beneficiary,adminCharge_p1);
failedWhitelist(_beneficiary);
investedAmountOf[_beneficiary]=0;
}else if(_stage==2){
whitelist[_beneficiary].stage=Stage.PROCESS1_SUCCESS;
}else if(_stage==3){
whitelist[_beneficiary].stage=Stage.PROCESS2_FAILED;
returnInvestoramount(_beneficiary,adminCharge_p2);
failedWhitelist(_beneficiary);
investedAmountOf[_beneficiary]=0;
}else if(_stage==4){
whitelist[_beneficiary].stage=Stage.PROCESS2_SUCCESS;
}else if(_stage==5){
whitelist[_beneficiary].stage=Stage.PROCESS3_FAILED;
returnInvestoramount(_beneficiary,adminCharge_p3);
failedWhitelist(_beneficiary);
investedAmountOf[_beneficiary]=0;
}else if(_stage==6){
whitelist[_beneficiary].stage=Stage.PROCESS3_SUCCESS;
afterWhtelisted( _beneficiary);
}
}
/**
* @dev Withdraw tokens only after Investors added into whitelist .
*/
function withdrawTokens() public isWhitelisted(msg.sender) {
require(hasClosed());
uint256 amount = balances[msg.sender];
require(amount > 0);
balances[msg.sender] = 0;
_deliverTokens(msg.sender, amount);
}
/**
* @dev Change crowdsale ClosingTime
* @param _endTime is End time in Seconds
*/
function changeEndtime(uint256 _endTime) public onlyOwner {
require(_endTime > 0);
closingTime = _endTime;
}
/**
* @dev Change Token rate per ETH
* @param _rate is set the current rate of AND Token
*/
function changeRate(uint256 _rate) public onlyOwner {
require(_rate > 0);
rate = _rate;
emit updateRate(_rate,block.timestamp);
}
/**
* @dev Change admin chargers
* @param _p1 for first Kyc Failed-$5
* @param _p2 for second AML Failed-$7
* @param _p3 for third AI Failed-$57
*/
function changeAdminCharges(uint256 _p1,uint256 _p2,uint256 _p3) public onlyOwner {
require(_p1 > 0);
require(_p2 > 0);
require(_p3 > 0);
adminCharge_p1=_p1;
adminCharge_p2=_p2;
adminCharge_p3=_p3;
}
/**
* @dev Change minContribution amountAmount.
* @param _minInvestment for minimum contribution ETH amount
*/
function changeMinInvestment(uint256 _minInvestment) public onlyOwner {
require(_minInvestment > 0);
minContribAmount=_minInvestment;
}
/**
* @dev Checks whether the cap has been reached.
* @return Whether the cap was reached
*/
function capReached() public view returns (bool) {
return weiRaised >= cap;
}
/**
* @dev Checks whether the goal has been reached.
* @return Whether the goal was reached
*/
function goalReached() public view returns (bool) {
return weiRaised >= goal;
}
/**
* @param _to is beneficiary address
* @param _value Amount if tokens
* @dev tokens distribution
*/
function tokenDistribution(address _to, uint256 _value)public onlyOwner {
require (
_to != 0x0 && _value > 0);
_processPurchase(_to, _value);
whitelist[_to].stage=Stage.PROCESS3_SUCCESS;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"adminCharge_p2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minInvestment","type":"uint256"}],"name":"changeMinInvestment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hasClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investedAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_stage","type":"uint256"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"}],"name":"startPhase3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"goal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"closingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"capReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCharge_p3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minContribAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCharge_p1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_endTime","type":"uint256"}],"name":"changeEndtime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"changeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"goalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawTokens","outputs":[],"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":"","type":"address"}],"name":"whitelist","outputs":[{"name":"stage","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_p1","type":"uint256"},{"name":"_p2","type":"uint256"},{"name":"_p3","type":"uint256"}],"name":"changeAdminCharges","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_investor","type":"address"}],"name":"getInvestorDepositAmount","outputs":[{"name":"paid","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"phase","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALFACTOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"openingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"}],"name":"startPhase2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"weiAmount","type":"uint256"}],"name":"tokensaleToOtherCoinUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"investorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"tokenDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_starttime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenRate","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"updateRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"}]Contract Creation Code
6080604052662386f26fc10000600a556701cdda4faccd0000600b556701f161421c8e0000600c556828a857425466f80000600d5568f3f20b8dfa69d00000600e5567016345785d8a0000600f553480156200005a57600080fd5b5060405160a080620032c383398101806040528101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508484848484600083111515620000bb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620000f857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200013557600080fd5b8260028190555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050428210151515620001d057600080fd5b818110151515620001e057600080fd5b8160048190555080600581905550505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200025e62000322565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015620002b1573d6000803e3d6000fd5b50600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960006101000a81548160ff021916908360028111156200031257fe5b0217905550505050505062000333565b6040516109ef80620028d483390190565b61259180620003436000396000f3006080604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630fd62f57146101cd57806313f56f73146101f85780631515bc2b146102255780631aae346014610254578063214405fc146102ab57806327e235e3146102f85780632c4e722e1461034f5780632c757eed1461037a578063355274ea146103a757806340193883146103d25780634042b66f146103fd5780634b6753bc146104285780634f93594514610453578063521eb27314610482578063534514ee146104d95780635b55169c146105045780635f497a091461052f57806368a9de131461055a57806374e7493b146105875780637d3d6522146105b45780638d8f2adb146105e35780638da5cb5b146105fa5780639b19251a14610651578063a67ba5d2146106b6578063aed76aa4146106f7578063b1c9fe6e1461074e578063b3d91e4114610787578063b7a8807c146107b2578063ba8fb567146107dd578063d174c3881461080a578063d7e64c0014610857578063de53474414610882578063ec8ac4d8146108cf578063f2fde38b14610905578063fbfa77cf14610948578063fc0c546a1461099f575b6101cb336109f6565b005b3480156101d957600080fd5b506101e2610d2e565b6040518082815260200191505060405180910390f35b34801561020457600080fd5b5061022360048036038101908080359060200190929190505050610d34565b005b34801561023157600080fd5b5061023a610da9565b604051808215151515815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610db5565b6040518082815260200191505060405180910390f35b3480156102b757600080fd5b506102f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcd565b005b34801561030457600080fd5b50610339600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123c565b6040518082815260200191505060405180910390f35b34801561035b57600080fd5b50610364611254565b6040518082815260200191505060405180910390f35b34801561038657600080fd5b506103a56004803603810190808035906020019092919050505061125a565b005b3480156103b357600080fd5b506103bc6112f3565b6040518082815260200191505060405180910390f35b3480156103de57600080fd5b506103e76112f9565b6040518082815260200191505060405180910390f35b34801561040957600080fd5b506104126112ff565b6040518082815260200191505060405180910390f35b34801561043457600080fd5b5061043d611305565b6040518082815260200191505060405180910390f35b34801561045f57600080fd5b5061046861130b565b604051808215151515815260200191505060405180910390f35b34801561048e57600080fd5b5061049761131a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e557600080fd5b506104ee611340565b6040518082815260200191505060405180910390f35b34801561051057600080fd5b50610519611346565b6040518082815260200191505060405180910390f35b34801561053b57600080fd5b5061054461134c565b6040518082815260200191505060405180910390f35b34801561056657600080fd5b5061058560048036038101908080359060200190929190505050611352565b005b34801561059357600080fd5b506105b2600480360381019080803590602001909291905050506113c7565b005b3480156105c057600080fd5b506105c961147b565b604051808215151515815260200191505060405180910390f35b3480156105ef57600080fd5b506105f861148a565b005b34801561060657600080fd5b5061060f6115b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065d57600080fd5b50610692600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115dd565b604051808260058111156106a257fe5b60ff16815260200191505060405180910390f35b3480156106c257600080fd5b506106f5600480360381019080803590602001909291908035906020019092919080359060200190929190505050611608565b005b34801561070357600080fd5b50610738600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ab565b6040518082815260200191505060405180910390f35b34801561075a57600080fd5b506107636116f4565b6040518082600281111561077357fe5b60ff16815260200191505060405180910390f35b34801561079357600080fd5b5061079c611707565b6040518082815260200191505060405180910390f35b3480156107be57600080fd5b506107c761170f565b6040518082815260200191505060405180910390f35b3480156107e957600080fd5b5061080860048036038101908080359060200190929190505050611715565b005b34801561081657600080fd5b50610855600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ae565b005b34801561086357600080fd5b5061086c611a34565b6040518082815260200191505060405180910390f35b34801561088e57600080fd5b506108cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a3a565b005b610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f6565b005b34801561091157600080fd5b50610946600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3a565b005b34801561095457600080fd5b5061095d611c92565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109ab57600080fd5b506109b4611cb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060006004544210158015610a0f57506005544211155b1515610a1a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610a5657600080fd5b610a5e611cdd565b1515610a6957600080fd5b349250610a8160025484611cef90919063ffffffff16565b91506000905060006002811115610a9457fe5b600960009054906101000a900460ff166002811115610aaf57fe5b1415610aea57610ae36064610ad5610ac685611d27565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050610b7f565b60016002811115610af757fe5b600960009054906101000a900460ff166002811115610b1257fe5b1415610b4d57610b466064610b38610b2985611dda565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050610b7e565b610b7b6064610b6d610b5e85611e77565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b90505b5b610b928183611f1490919063ffffffff16565b9150610b9e8484611f30565b610bb383600354611f1490919063ffffffff16565b600381905550610bc38483611f5d565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188585604051808381526020018281526020019250505060405180910390a3610c38611ff6565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610c93576012600081548092919060010191905055505b610ce583601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1490919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b600b5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d9057600080fd5b600081111515610d9f57600080fd5b80600f8190555050565b60006005544211905090565b60116020528060005260406000206000915090505481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e6557600080fd5b600081111515610e7457600080fd5b6001811415610f40576000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836005811115610edc57fe5b0217905550610eed82600a546120ce565b610ef68261220b565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611238565b6002811415610fb2576001601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836005811115610fa857fe5b0217905550611237565b600381141561107e576002601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600581111561101a57fe5b021790555061102b82600b546120ce565b6110348261220b565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611236565b60048114156110f0576003601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908360058111156110e657fe5b0217905550611235565b60058114156111bc576004601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600581111561115857fe5b021790555061116982600c546120ce565b6111728261220b565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611234565b6006811415611233576005601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600581111561122457fe5b0217905550611232826122d3565b5b5b5b5b5b5b5050565b60086020528060005260406000206000915090505481565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b657600080fd5b8060001115156112c557600080fd5b6002600960006101000a81548160ff021916908360028111156112e457fe5b02179055508060048190555050565b600d5481565b600e5481565b60035481565b60055481565b6000600d546003541015905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600f5481565b600a5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ae57600080fd5b6000811115156113bd57600080fd5b8060058190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142357600080fd5b60008111151561143257600080fd5b806002819055507f405abb412de10615259208579eb3fb7019bf2e662ba7be1355cc75f8781f320f8142604051808381526020018281526020019250505060405180910390a150565b6000600e546003541015905090565b60003360058081111561149957fe5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1660058111156114f457fe5b14151561150057600080fd5b611508610da9565b151561151357600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060008211151561156457600080fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115b33383612407565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60106020528060005260406000206000915090508060000160009054906101000a900460ff16905081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561166457600080fd5b60008311151561167357600080fd5b60008211151561168257600080fd5b60008111151561169157600080fd5b82600a8190555081600b8190555080600c81905550505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600960009054906101000a900460ff1681565b6012600a0a81565b60045481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561177157600080fd5b60008111151561178057600080fd5b6001600960006101000a81548160ff0219169083600281111561179f57fe5b02179055508060048190555050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561180d57600080fd5b600454421015801561182157506005544211155b151561182c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118695750600083115b151561187457600080fd5b61188960025484611cef90919063ffffffff16565b9150600090506000600281111561189c57fe5b600960009054906101000a900460ff1660028111156118b757fe5b14156118f2576118eb60646118dd6118ce85611d27565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050611987565b600160028111156118ff57fe5b600960009054906101000a900460ff16600281111561191a57fe5b14156119555761194e606461194061193185611dda565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050611986565b611983606461197561196685611e77565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b90505b5b61199a8183611f1490919063ffffffff16565b91506119b183600354611f1490919063ffffffff16565b6003819055506119c18483611f5d565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188585604051808381526020018281526020019250505060405180910390a350505050565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9657600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611abd5750600081115b1515611ac857600080fd5b611ad28282611f5d565b6005601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836005811115611b3157fe5b02179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bd257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008034600f54111590508091505090565b600080831415611d025760009050611d21565b8183029050818382811515611d1357fe5b04141515611d1d57fe5b8090505b92915050565b6000806000809150611d466012600a0a85611dc490919063ffffffff16565b905061c3508111158015611d5d5750620249ef8110155b15611d6b57601e9150611dba565b620249f08111158015611d815750620493df8110155b15611d8f5760239150611db9565b620493e08111158015611da557506207a1208110155b15611db35760289150611db8565b601991505b5b5b8192505050919050565b60008183811515611dd157fe5b04905092915050565b6000806000809150611df96012600a0a85611dc490919063ffffffff16565b905061c3508111158015611e105750620249ef8110155b15611e1e5760199150611e6d565b620249f08111158015611e345750620493df8110155b15611e4257601e9150611e6c565b620493e08111158015611e5857506207a1208110155b15611e665760239150611e6b565b601491505b5b5b8192505050919050565b6000806000809150611e966012600a0a85611dc490919063ffffffff16565b905061c3508111158015611ead5750620249ef8110155b15611ebb5760149150611f0a565b620249f08111158015611ed15750620493df8110155b15611edf5760199150611f09565b620493e08111158015611ef557506207a1208110155b15611f0357601e9150611f08565b600f91505b5b5b8192505050919050565b60008183019050828110151515611f2757fe5b80905092915050565b6004544210158015611f4457506005544211155b1515611f4f57600080fd5b611f598282612515565b5050565b611faf81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1490919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0134336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b1580156120b357600080fd5b505af11580156120c7573d6000803e3d6000fd5b5050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561212a57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663410085df83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121ef57600080fd5b505af1158015612203573d6000803e3d6000fd5b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561224857600080fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561232f57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8f06b52826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156123ec57600080fd5b505af1158015612400573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124cb57600080fd5b505af11580156124df573d6000803e3d6000fd5b505050506040513d60208110156124f557600080fd5b8101908080519060200190929190505050151561251157600080fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561255157600080fd5b6000811415151561256157600080fd5b50505600a165627a7a7230582013d6326f70919d7535911f3dbf7075031301998b390f94ccde9388988c01a3850029608060405234801561001057600080fd5b506040516020806109ef83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156100af57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506108ef806101006000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063410085df14610088578063521eb273146100d55780638da5cb5b1461012c578063cb13cddb14610183578063d8f06b52146101da578063f2fde38b1461021d578063f340fa0114610260575b600080fd5b34801561009457600080fd5b506100d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610296565b005b3480156100e157600080fd5b506100ea610492565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101416104b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018f57600080fd5b506101c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104dd565b6040518082815260200191505060405180910390f35b3480156101e657600080fd5b5061021b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f5565b005b34801561022957600080fd5b5061025e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610646565b005b610294600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079b565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102f357600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610348828261088e90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610390573d6000803e3d6000fd5b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156103f9573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651826040518082815260200191505060405180910390a26000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561055257600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610641573d6000803e3d6000fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106a157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156106dd57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f657600080fd5b61084834600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108a790919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600082821115151561089c57fe5b818303905092915050565b600081830190508281101515156108ba57fe5b809050929150505600a165627a7a72305820646b6453788c44fbcc0b6c35fc1ad146e3f0a5d2abd36dd191a55b6a0bab19cc0029000000000000000000000000000000000000000000000000000000005b1ca27c000000000000000000000000000000000000000000000000000000005bda7a040000000000000000000000000000000000000000000000000000000000000496000000000000000000000000580e254ca2cb1627d95ae71d3d27c593b952624700000000000000000000000037e5fdcbbfc038d754f84fdc3cb9c0b11535d179
Deployed Bytecode
0x6080604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630fd62f57146101cd57806313f56f73146101f85780631515bc2b146102255780631aae346014610254578063214405fc146102ab57806327e235e3146102f85780632c4e722e1461034f5780632c757eed1461037a578063355274ea146103a757806340193883146103d25780634042b66f146103fd5780634b6753bc146104285780634f93594514610453578063521eb27314610482578063534514ee146104d95780635b55169c146105045780635f497a091461052f57806368a9de131461055a57806374e7493b146105875780637d3d6522146105b45780638d8f2adb146105e35780638da5cb5b146105fa5780639b19251a14610651578063a67ba5d2146106b6578063aed76aa4146106f7578063b1c9fe6e1461074e578063b3d91e4114610787578063b7a8807c146107b2578063ba8fb567146107dd578063d174c3881461080a578063d7e64c0014610857578063de53474414610882578063ec8ac4d8146108cf578063f2fde38b14610905578063fbfa77cf14610948578063fc0c546a1461099f575b6101cb336109f6565b005b3480156101d957600080fd5b506101e2610d2e565b6040518082815260200191505060405180910390f35b34801561020457600080fd5b5061022360048036038101908080359060200190929190505050610d34565b005b34801561023157600080fd5b5061023a610da9565b604051808215151515815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610db5565b6040518082815260200191505060405180910390f35b3480156102b757600080fd5b506102f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcd565b005b34801561030457600080fd5b50610339600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123c565b6040518082815260200191505060405180910390f35b34801561035b57600080fd5b50610364611254565b6040518082815260200191505060405180910390f35b34801561038657600080fd5b506103a56004803603810190808035906020019092919050505061125a565b005b3480156103b357600080fd5b506103bc6112f3565b6040518082815260200191505060405180910390f35b3480156103de57600080fd5b506103e76112f9565b6040518082815260200191505060405180910390f35b34801561040957600080fd5b506104126112ff565b6040518082815260200191505060405180910390f35b34801561043457600080fd5b5061043d611305565b6040518082815260200191505060405180910390f35b34801561045f57600080fd5b5061046861130b565b604051808215151515815260200191505060405180910390f35b34801561048e57600080fd5b5061049761131a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e557600080fd5b506104ee611340565b6040518082815260200191505060405180910390f35b34801561051057600080fd5b50610519611346565b6040518082815260200191505060405180910390f35b34801561053b57600080fd5b5061054461134c565b6040518082815260200191505060405180910390f35b34801561056657600080fd5b5061058560048036038101908080359060200190929190505050611352565b005b34801561059357600080fd5b506105b2600480360381019080803590602001909291905050506113c7565b005b3480156105c057600080fd5b506105c961147b565b604051808215151515815260200191505060405180910390f35b3480156105ef57600080fd5b506105f861148a565b005b34801561060657600080fd5b5061060f6115b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065d57600080fd5b50610692600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115dd565b604051808260058111156106a257fe5b60ff16815260200191505060405180910390f35b3480156106c257600080fd5b506106f5600480360381019080803590602001909291908035906020019092919080359060200190929190505050611608565b005b34801561070357600080fd5b50610738600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ab565b6040518082815260200191505060405180910390f35b34801561075a57600080fd5b506107636116f4565b6040518082600281111561077357fe5b60ff16815260200191505060405180910390f35b34801561079357600080fd5b5061079c611707565b6040518082815260200191505060405180910390f35b3480156107be57600080fd5b506107c761170f565b6040518082815260200191505060405180910390f35b3480156107e957600080fd5b5061080860048036038101908080359060200190929190505050611715565b005b34801561081657600080fd5b50610855600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ae565b005b34801561086357600080fd5b5061086c611a34565b6040518082815260200191505060405180910390f35b34801561088e57600080fd5b506108cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a3a565b005b610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f6565b005b34801561091157600080fd5b50610946600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3a565b005b34801561095457600080fd5b5061095d611c92565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109ab57600080fd5b506109b4611cb8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060006004544210158015610a0f57506005544211155b1515610a1a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610a5657600080fd5b610a5e611cdd565b1515610a6957600080fd5b349250610a8160025484611cef90919063ffffffff16565b91506000905060006002811115610a9457fe5b600960009054906101000a900460ff166002811115610aaf57fe5b1415610aea57610ae36064610ad5610ac685611d27565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050610b7f565b60016002811115610af757fe5b600960009054906101000a900460ff166002811115610b1257fe5b1415610b4d57610b466064610b38610b2985611dda565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050610b7e565b610b7b6064610b6d610b5e85611e77565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b90505b5b610b928183611f1490919063ffffffff16565b9150610b9e8484611f30565b610bb383600354611f1490919063ffffffff16565b600381905550610bc38483611f5d565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188585604051808381526020018281526020019250505060405180910390a3610c38611ff6565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610c93576012600081548092919060010191905055505b610ce583601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1490919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b600b5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d9057600080fd5b600081111515610d9f57600080fd5b80600f8190555050565b60006005544211905090565b60116020528060005260406000206000915090505481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e6557600080fd5b600081111515610e7457600080fd5b6001811415610f40576000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836005811115610edc57fe5b0217905550610eed82600a546120ce565b610ef68261220b565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611238565b6002811415610fb2576001601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836005811115610fa857fe5b0217905550611237565b600381141561107e576002601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600581111561101a57fe5b021790555061102b82600b546120ce565b6110348261220b565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611236565b60048114156110f0576003601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908360058111156110e657fe5b0217905550611235565b60058114156111bc576004601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600581111561115857fe5b021790555061116982600c546120ce565b6111728261220b565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611234565b6006811415611233576005601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600581111561122457fe5b0217905550611232826122d3565b5b5b5b5b5b5b5050565b60086020528060005260406000206000915090505481565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b657600080fd5b8060001115156112c557600080fd5b6002600960006101000a81548160ff021916908360028111156112e457fe5b02179055508060048190555050565b600d5481565b600e5481565b60035481565b60055481565b6000600d546003541015905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600f5481565b600a5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ae57600080fd5b6000811115156113bd57600080fd5b8060058190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142357600080fd5b60008111151561143257600080fd5b806002819055507f405abb412de10615259208579eb3fb7019bf2e662ba7be1355cc75f8781f320f8142604051808381526020018281526020019250505060405180910390a150565b6000600e546003541015905090565b60003360058081111561149957fe5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1660058111156114f457fe5b14151561150057600080fd5b611508610da9565b151561151357600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060008211151561156457600080fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115b33383612407565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60106020528060005260406000206000915090508060000160009054906101000a900460ff16905081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561166457600080fd5b60008311151561167357600080fd5b60008211151561168257600080fd5b60008111151561169157600080fd5b82600a8190555081600b8190555080600c81905550505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600960009054906101000a900460ff1681565b6012600a0a81565b60045481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561177157600080fd5b60008111151561178057600080fd5b6001600960006101000a81548160ff0219169083600281111561179f57fe5b02179055508060048190555050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561180d57600080fd5b600454421015801561182157506005544211155b151561182c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118695750600083115b151561187457600080fd5b61188960025484611cef90919063ffffffff16565b9150600090506000600281111561189c57fe5b600960009054906101000a900460ff1660028111156118b757fe5b14156118f2576118eb60646118dd6118ce85611d27565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050611987565b600160028111156118ff57fe5b600960009054906101000a900460ff16600281111561191a57fe5b14156119555761194e606461194061193185611dda565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b9050611986565b611983606461197561196685611e77565b85611cef90919063ffffffff16565b611dc490919063ffffffff16565b90505b5b61199a8183611f1490919063ffffffff16565b91506119b183600354611f1490919063ffffffff16565b6003819055506119c18483611f5d565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188585604051808381526020018281526020019250505060405180910390a350505050565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9657600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611abd5750600081115b1515611ac857600080fd5b611ad28282611f5d565b6005601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690836005811115611b3157fe5b02179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b9657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611bd257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008034600f54111590508091505090565b600080831415611d025760009050611d21565b8183029050818382811515611d1357fe5b04141515611d1d57fe5b8090505b92915050565b6000806000809150611d466012600a0a85611dc490919063ffffffff16565b905061c3508111158015611d5d5750620249ef8110155b15611d6b57601e9150611dba565b620249f08111158015611d815750620493df8110155b15611d8f5760239150611db9565b620493e08111158015611da557506207a1208110155b15611db35760289150611db8565b601991505b5b5b8192505050919050565b60008183811515611dd157fe5b04905092915050565b6000806000809150611df96012600a0a85611dc490919063ffffffff16565b905061c3508111158015611e105750620249ef8110155b15611e1e5760199150611e6d565b620249f08111158015611e345750620493df8110155b15611e4257601e9150611e6c565b620493e08111158015611e5857506207a1208110155b15611e665760239150611e6b565b601491505b5b5b8192505050919050565b6000806000809150611e966012600a0a85611dc490919063ffffffff16565b905061c3508111158015611ead5750620249ef8110155b15611ebb5760149150611f0a565b620249f08111158015611ed15750620493df8110155b15611edf5760199150611f09565b620493e08111158015611ef557506207a1208110155b15611f0357601e9150611f08565b600f91505b5b5b8192505050919050565b60008183019050828110151515611f2757fe5b80905092915050565b6004544210158015611f4457506005544211155b1515611f4f57600080fd5b611f598282612515565b5050565b611faf81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1490919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0134336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b1580156120b357600080fd5b505af11580156120c7573d6000803e3d6000fd5b5050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561212a57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663410085df83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121ef57600080fd5b505af1158015612203573d6000803e3d6000fd5b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561224857600080fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561232f57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8f06b52826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156123ec57600080fd5b505af1158015612400573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124cb57600080fd5b505af11580156124df573d6000803e3d6000fd5b505050506040513d60208110156124f557600080fd5b8101908080519060200190929190505050151561251157600080fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561255157600080fd5b6000811415151561256157600080fd5b50505600a165627a7a7230582013d6326f70919d7535911f3dbf7075031301998b390f94ccde9388988c01a3850029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005b1ca27c000000000000000000000000000000000000000000000000000000005bda7a040000000000000000000000000000000000000000000000000000000000000496000000000000000000000000580e254ca2cb1627d95ae71d3d27c593b952624700000000000000000000000037e5fdcbbfc038d754f84fdc3cb9c0b11535d179
-----Decoded View---------------
Arg [0] : _starttime (uint256): 1528603260
Arg [1] : _endTime (uint256): 1541044740
Arg [2] : _rate (uint256): 1174
Arg [3] : _wallet (address): 0x580e254ca2Cb1627D95aE71D3d27C593B9526247
Arg [4] : _token (address): 0x37e5fDcBBfc038d754F84FDc3CB9C0b11535D179
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005b1ca27c
Arg [1] : 000000000000000000000000000000000000000000000000000000005bda7a04
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000496
Arg [3] : 000000000000000000000000580e254ca2cb1627d95ae71d3d27c593b9526247
Arg [4] : 00000000000000000000000037e5fdcbbfc038d754f84fdc3cb9c0b11535d179
Swarm Source
bzzr://646b6453788c44fbcc0b6c35fc1ad146e3f0a5d2abd36dd191a55b6a0bab19cc
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.