Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 577 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update Whitelist | 7108653 | 2227 days ago | IN | 0 ETH | 0.00016933 | ||||
Update Whitelist | 7108640 | 2227 days ago | IN | 0 ETH | 0.00016933 | ||||
Transfer | 6558202 | 2320 days ago | IN | 0 ETH | 0.00017503 | ||||
Set Ops Address | 6555180 | 2320 days ago | IN | 0 ETH | 0.00007679 | ||||
Transfer | 6542317 | 2323 days ago | IN | 887.88982867 ETH | 0.00244872 | ||||
Transfer | 6541836 | 2323 days ago | IN | 62 ETH | 0.00271202 | ||||
Transfer | 6541758 | 2323 days ago | IN | 0.5470756 ETH | 0.00330735 | ||||
Transfer | 6541686 | 2323 days ago | IN | 0.21 ETH | 0.0011891 | ||||
Transfer | 6541681 | 2323 days ago | IN | 0.21 ETH | 0.0011891 | ||||
Transfer | 6541631 | 2323 days ago | IN | 0.21 ETH | 0.0011891 | ||||
Transfer | 6541484 | 2323 days ago | IN | 1.1 ETH | 0.00324588 | ||||
Transfer | 6541479 | 2323 days ago | IN | 0.56841668 ETH | 0.00405735 | ||||
Update Whitelist | 6541404 | 2323 days ago | IN | 0 ETH | 0.00023521 | ||||
Update Whitelist | 6541402 | 2323 days ago | IN | 0 ETH | 0.00023521 | ||||
Transfer | 6541207 | 2323 days ago | IN | 11.2 ETH | 0.00332702 | ||||
Transfer | 6540701 | 2323 days ago | IN | 2.81 ETH | 0.00324588 | ||||
Transfer | 6540461 | 2323 days ago | IN | 349.9 ETH | 0.00271202 | ||||
Transfer | 6540158 | 2323 days ago | IN | 289.15 ETH | 0.00271202 | ||||
Transfer | 6540062 | 2323 days ago | IN | 0.5 ETH | 0.00198441 | ||||
Transfer | 6539946 | 2323 days ago | IN | 0.49 ETH | 0.000399 | ||||
Transfer | 6539938 | 2323 days ago | IN | 19.54 ETH | 0.00332702 | ||||
Update Whitelist | 6539869 | 2323 days ago | IN | 0 ETH | 0.00023521 | ||||
Update Whitelist | 6539865 | 2323 days ago | IN | 0 ETH | 0.00023521 | ||||
Transfer | 6539766 | 2323 days ago | IN | 1.3 ETH | 0.00109395 | ||||
Transfer | 6539543 | 2323 days ago | IN | 0.5 ETH | 0.00109395 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
6542317 | 2323 days ago | 475.34941512 ETH | ||||
6542317 | 2323 days ago | 412.54041354 ETH | ||||
6541836 | 2323 days ago | 62 ETH | ||||
6541758 | 2323 days ago | 0.5470756 ETH | ||||
6541484 | 2323 days ago | 1.1 ETH | ||||
6541479 | 2323 days ago | 0.56841668 ETH | ||||
6541207 | 2323 days ago | 11.2 ETH | ||||
6540701 | 2323 days ago | 2.81 ETH | ||||
6540461 | 2323 days ago | 349.9 ETH | ||||
6540158 | 2323 days ago | 289.15 ETH | ||||
6540062 | 2323 days ago | 0.5 ETH | ||||
6539938 | 2323 days ago | 19.54 ETH | ||||
6539446 | 2323 days ago | 26 ETH | ||||
6539337 | 2323 days ago | 20 ETH | ||||
6539244 | 2323 days ago | 0.651 ETH | ||||
6539144 | 2323 days ago | 286.31 ETH | ||||
6539093 | 2323 days ago | 207.7 ETH | ||||
6538913 | 2323 days ago | 1,098 ETH | ||||
6538873 | 2323 days ago | 1 ETH | ||||
6538818 | 2323 days ago | 2.91589539 ETH | ||||
6538619 | 2323 days ago | 10 ETH | ||||
6538502 | 2323 days ago | 10 ETH | ||||
6537768 | 2323 days ago | 1.3 ETH | ||||
6537726 | 2323 days ago | 1.9 ETH | ||||
6537458 | 2323 days ago | 30 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CaspianTokenSale
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-10-03 */ pragma solidity ^0.4.23; // ---------------------------------------------------------------------------- // ERC20Interface - Standard ERC20 Interface Definition // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // Based on the final ERC20 specification at: // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // ---------------------------------------------------------------------------- contract ERC20Interface { event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); function name() public view returns (string); function symbol() public view returns (string); function decimals() public view returns (uint8); function totalSupply() public view returns (uint256); function balanceOf(address _owner) public view returns (uint256 balance); function allowance(address _owner, address _spender) public view returns (uint256 remaining); function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); } // ---------------------------------------------------------------------------- // Math - General Math Utility Library // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- library Math { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 r = a + b; require(r >= a); return r; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(a >= b); return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 r = a * b; require(r / a == b); return r; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } } // ---------------------------------------------------------------------------- // Owned - Ownership model with 2 phase transfers // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- // Implements a simple ownership model with 2-phase transfer. contract Owned { address public owner; address public proposedOwner; event OwnershipTransferInitiated(address indexed _proposedOwner); event OwnershipTransferCompleted(address indexed _newOwner); constructor() public { owner = msg.sender; } modifier onlyOwner() { require(isOwner(msg.sender) == true); _; } function isOwner(address _address) public view returns (bool) { return (_address == owner); } function initiateOwnershipTransfer(address _proposedOwner) public onlyOwner returns (bool) { require(_proposedOwner != address(0)); require(_proposedOwner != address(this)); require(_proposedOwner != owner); proposedOwner = _proposedOwner; emit OwnershipTransferInitiated(proposedOwner); return true; } function completeOwnershipTransfer() public returns (bool) { require(msg.sender == proposedOwner); owner = msg.sender; proposedOwner = address(0); emit OwnershipTransferCompleted(owner); return true; } } // ---------------------------------------------------------------------------- // Finalizable - Basic implementation of the finalization pattern // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- contract Finalizable is Owned() { bool public finalized; event Finalized(); constructor() public { finalized = false; } function finalize() public onlyOwner returns (bool) { require(!finalized); finalized = true; emit Finalized(); return true; } } // ---------------------------------------------------------------------------- // OpsManaged - Implements an Owner and Ops Permission Model // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- // // Implements a security model with owner and ops. // contract OpsManaged is Owned() { address public opsAddress; event OpsAddressUpdated(address indexed _newAddress); constructor() public { } modifier onlyOwnerOrOps() { require(isOwnerOrOps(msg.sender)); _; } function isOps(address _address) public view returns (bool) { return (opsAddress != address(0) && _address == opsAddress); } function isOwnerOrOps(address _address) public view returns (bool) { return (isOwner(_address) || isOps(_address)); } function setOpsAddress(address _newOpsAddress) public onlyOwner returns (bool) { require(_newOpsAddress != owner); require(_newOpsAddress != address(this)); opsAddress = _newOpsAddress; emit OpsAddressUpdated(opsAddress); return true; } } // ---------------------------------------------------------------------------- // ERC20Token - Standard ERC20 Implementation // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- contract ERC20Token is ERC20Interface { using Math for uint256; string private tokenName; string private tokenSymbol; uint8 private tokenDecimals; uint256 internal tokenTotalSupply; mapping(address => uint256) internal balances; mapping(address => mapping (address => uint256)) allowed; constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply, address _initialTokenHolder) public { tokenName = _name; tokenSymbol = _symbol; tokenDecimals = _decimals; tokenTotalSupply = _totalSupply; // The initial balance of tokens is assigned to the given token holder address. balances[_initialTokenHolder] = _totalSupply; // Per EIP20, the constructor should fire a Transfer event if tokens are assigned to an account. emit Transfer(0x0, _initialTokenHolder, _totalSupply); } function name() public view returns (string) { return tokenName; } function symbol() public view returns (string) { return tokenSymbol; } function decimals() public view returns (uint8) { return tokenDecimals; } function totalSupply() public view returns (uint256) { return tokenTotalSupply; } function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } function allowance(address _owner, address _spender) public view returns (uint256 remaining) { return allowed[_owner][_spender]; } function transfer(address _to, uint256 _value) public returns (bool success) { balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { balances[_from] = balances[_from].sub(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(_from, _to, _value); return true; } function approve(address _spender, uint256 _value) public returns (bool success) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } } // ---------------------------------------------------------------------------- // FinalizableToken - Extension to ERC20Token with ops and finalization // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- // // ERC20 token with the following additions: // 1. Owner/Ops Ownership // 2. Finalization // contract FinalizableToken is ERC20Token, OpsManaged, Finalizable { using Math for uint256; // The constructor will assign the initial token supply to the owner (msg.sender). constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply) public ERC20Token(_name, _symbol, _decimals, _totalSupply, msg.sender) OpsManaged() Finalizable() { } function transfer(address _to, uint256 _value) public returns (bool success) { validateTransfer(msg.sender, _to); return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { validateTransfer(msg.sender, _to); return super.transferFrom(_from, _to, _value); } function validateTransfer(address _sender, address _to) private view { // Once the token is finalized, everybody can transfer tokens. if (finalized) { return; } if (isOwner(_to)) { return; } // Before the token is finalized, only owner and ops are allowed to initiate transfers. // This allows them to move tokens while the sale is still ongoing for example. require(isOwnerOrOps(_sender)); } } // ---------------------------------------------------------------------------- // FlexibleTokenSale - Token Sale Contract // Enuma Blockchain Platform // // Copyright (c) 2017 Enuma Technologies Limited. // https://www.enuma.io/ // ---------------------------------------------------------------------------- contract FlexibleTokenSale is Finalizable, OpsManaged { using Math for uint256; // // Lifecycle // uint256 public startTime; uint256 public endTime; bool public suspended; // // Pricing // uint256 public tokensPerKEther; uint256 public bonus; uint256 public maxTokensPerAccount; uint256 public contributionMin; uint256 public tokenConversionFactor; // // Wallets // address public walletAddress; // // Token // FinalizableToken public token; // // Counters // uint256 public totalTokensSold; uint256 public totalEtherCollected; // // Events // event Initialized(); event TokensPerKEtherUpdated(uint256 _newValue); event MaxTokensPerAccountUpdated(uint256 _newMax); event BonusUpdated(uint256 _newValue); event SaleWindowUpdated(uint256 _startTime, uint256 _endTime); event WalletAddressUpdated(address _newAddress); event SaleSuspended(); event SaleResumed(); event TokensPurchased(address _beneficiary, uint256 _cost, uint256 _tokens); event TokensReclaimed(uint256 _amount); constructor(uint256 _startTime, uint256 _endTime, address _walletAddress) public OpsManaged() { require(_endTime > _startTime); require(_walletAddress != address(0)); require(_walletAddress != address(this)); walletAddress = _walletAddress; finalized = false; suspended = false; startTime = _startTime; endTime = _endTime; // Use some defaults config values. Classes deriving from FlexibleTokenSale // should set their own defaults tokensPerKEther = 100000; bonus = 0; maxTokensPerAccount = 0; contributionMin = 0.1 ether; totalTokensSold = 0; totalEtherCollected = 0; } function currentTime() public constant returns (uint256) { return now; } // Initialize should be called by the owner as part of the deployment + setup phase. // It will associate the sale contract with the token contract and perform basic checks. function initialize(FinalizableToken _token) external onlyOwner returns(bool) { require(address(token) == address(0)); require(address(_token) != address(0)); require(address(_token) != address(this)); require(address(_token) != address(walletAddress)); require(isOwnerOrOps(address(_token)) == false); token = _token; // This factor is used when converting cost <-> tokens. // 18 is because of the ETH -> Wei conversion. // 3 because prices are in K ETH instead of just ETH. // 4 because bonuses are expressed as 0 - 10000 for 0.00% - 100.00% (with 2 decimals). tokenConversionFactor = 10**(uint256(18).sub(_token.decimals()).add(3).add(4)); require(tokenConversionFactor > 0); emit Initialized(); return true; } // // Owner Configuation // // Allows the owner to change the wallet address which is used for collecting // ether received during the token sale. function setWalletAddress(address _walletAddress) external onlyOwner returns(bool) { require(_walletAddress != address(0)); require(_walletAddress != address(this)); require(_walletAddress != address(token)); require(isOwnerOrOps(_walletAddress) == false); walletAddress = _walletAddress; emit WalletAddressUpdated(_walletAddress); return true; } // Allows the owner to set an optional limit on the amount of tokens that can be purchased // by a contributor. It can also be set to 0 to remove limit. function setMaxTokensPerAccount(uint256 _maxTokens) external onlyOwner returns(bool) { maxTokensPerAccount = _maxTokens; emit MaxTokensPerAccountUpdated(_maxTokens); return true; } // Allows the owner to specify the conversion rate for ETH -> tokens. // For example, passing 1,000,000 would mean that 1 ETH would purchase 1000 tokens. function setTokensPerKEther(uint256 _tokensPerKEther) external onlyOwner returns(bool) { require(_tokensPerKEther > 0); tokensPerKEther = _tokensPerKEther; emit TokensPerKEtherUpdated(_tokensPerKEther); return true; } // Allows the owner to set a bonus to apply to all purchases. // For example, setting it to 2000 means that instead of receiving 200 tokens, // for a given price, contributors would receive 240 tokens (20.00% bonus). function setBonus(uint256 _bonus) external onlyOwner returns(bool) { require(_bonus <= 10000); bonus = _bonus; emit BonusUpdated(_bonus); return true; } // Allows the owner to set a sale window which will allow the sale (aka buyTokens) to // receive contributions between _startTime and _endTime. Once _endTime is reached, // the sale contract will automatically stop accepting incoming contributions. function setSaleWindow(uint256 _startTime, uint256 _endTime) external onlyOwner returns(bool) { require(_startTime > 0); require(_endTime > _startTime); startTime = _startTime; endTime = _endTime; emit SaleWindowUpdated(_startTime, _endTime); return true; } // Allows the owner to suspend the sale until it is manually resumed at a later time. function suspend() external onlyOwner returns(bool) { if (suspended == true) { return false; } suspended = true; emit SaleSuspended(); return true; } // Allows the owner to resume the sale. function resume() external onlyOwner returns(bool) { if (suspended == false) { return false; } suspended = false; emit SaleResumed(); return true; } // // Contributions // // Default payable function which can be used to purchase tokens. function () payable public { buyTokens(msg.sender); } // Allows the caller to purchase tokens for a specific beneficiary (proxy purchase). function buyTokens(address _beneficiary) public payable returns (uint256) { return buyTokensInternal(_beneficiary, bonus); } function buyTokensInternal(address _beneficiary, uint256 _bonus) internal returns (uint256) { require(!finalized); require(!suspended); require(currentTime() >= startTime); require(currentTime() <= endTime); require(msg.value >= contributionMin); require(_beneficiary != address(0)); require(_beneficiary != address(this)); require(_beneficiary != address(token)); // We don't want to allow the wallet collecting ETH to // directly be used to purchase tokens. require(msg.sender != address(walletAddress)); // Check how many tokens are still available for sale. uint256 saleBalance = token.balanceOf(address(this)); require(saleBalance > 0); // Calculate how many tokens the contributor could purchase based on ETH received. uint256 tokens = msg.value.mul(tokensPerKEther).mul(_bonus.add(10000)).div(tokenConversionFactor); require(tokens > 0); uint256 cost = msg.value; uint256 refund = 0; // Calculate what is the maximum amount of tokens that the contributor // should be allowed to purchase uint256 maxTokens = saleBalance; if (maxTokensPerAccount > 0) { // There is a maximum amount of tokens per account in place. // Check if the user already hit that limit. uint256 userBalance = getUserTokenBalance(_beneficiary); require(userBalance < maxTokensPerAccount); uint256 quotaBalance = maxTokensPerAccount.sub(userBalance); if (quotaBalance < saleBalance) { maxTokens = quotaBalance; } } require(maxTokens > 0); if (tokens > maxTokens) { // The contributor sent more ETH than allowed to purchase. // Limit the amount of tokens that they can purchase in this transaction. tokens = maxTokens; // Calculate the actual cost for that new amount of tokens. cost = tokens.mul(tokenConversionFactor).div(tokensPerKEther.mul(_bonus.add(10000))); if (msg.value > cost) { // If the contributor sent more ETH than needed to buy the tokens, // the balance should be refunded. refund = msg.value.sub(cost); } } // This is the actual amount of ETH that can be sent to the wallet. uint256 contribution = msg.value.sub(refund); walletAddress.transfer(contribution); // Update our stats counters. totalTokensSold = totalTokensSold.add(tokens); totalEtherCollected = totalEtherCollected.add(contribution); // Transfer tokens to the beneficiary. require(token.transfer(_beneficiary, tokens)); // Issue a refund for the excess ETH, as needed. if (refund > 0) { msg.sender.transfer(refund); } emit TokensPurchased(_beneficiary, cost, tokens); return tokens; } // Returns the number of tokens that the user has purchased. Will be checked against the // maximum allowed. Can be overriden in a sub class to change the calculations. function getUserTokenBalance(address _beneficiary) internal view returns (uint256) { return token.balanceOf(_beneficiary); } // Allows the owner to take back the tokens that are assigned to the sale contract. function reclaimTokens() external onlyOwner returns (bool) { uint256 tokens = token.balanceOf(address(this)); if (tokens == 0) { return false; } address tokenOwner = token.owner(); require(tokenOwner != address(0)); require(token.transfer(tokenOwner, tokens)); emit TokensReclaimed(tokens); return true; } } // ---------------------------------------------------------------------------- // CaspianTokenConfig - Token Contract Configuration // // Copyright (c) 2018 Caspian, Limited (TM). // http://www.caspian.tech/ // ---------------------------------------------------------------------------- contract CaspianTokenConfig { string public constant TOKEN_SYMBOL = "CSP"; string public constant TOKEN_NAME = "Caspian Token"; uint8 public constant TOKEN_DECIMALS = 18; uint256 public constant DECIMALSFACTOR = 10**uint256(TOKEN_DECIMALS); uint256 public constant TOKEN_TOTALSUPPLY = 1000000000 * DECIMALSFACTOR; } // ---------------------------------------------------------------------------- // CaspianTokenSaleConfig - Token Sale Configuration // // Copyright (c) 2018 Caspian, Limited (TM). // http://www.caspian.tech/ // ---------------------------------------------------------------------------- contract CaspianTokenSaleConfig is CaspianTokenConfig { // // Time // uint256 public constant INITIAL_STARTTIME = 1538553600; // 2018-10-03, 08:00:00 UTC uint256 public constant INITIAL_ENDTIME = 1538726400; // 2018-10-05, 08:00:00 UTC // // Purchases // // Minimum amount of ETH that can be used for purchase. uint256 public constant CONTRIBUTION_MIN = 0.5 ether; // Price of tokens, based on the 1 ETH = 4000 CSP conversion ratio. uint256 public constant TOKENS_PER_KETHER = 4000000; // Amount of bonus applied to the sale. 2000 = 20.00% bonus, 750 = 7.50% bonus, 0 = no bonus. uint256 public constant BONUS = 0; // Maximum amount of tokens that can be purchased for each account. 0 for no maximum. uint256 public constant TOKENS_ACCOUNT_MAX = 400000 * DECIMALSFACTOR; // 100 ETH Max } // ---------------------------------------------------------------------------- // CaspianTokenSale - Token Sale Contract // // Copyright (c) 2018 Caspian, Limited (TM). // http://www.caspian.tech/ // // Based on code from Enuma Technologies. // Copyright (c) 2017 Enuma Technologies Limited. // ---------------------------------------------------------------------------- contract CaspianTokenSale is FlexibleTokenSale, CaspianTokenSaleConfig { // // Whitelist // uint8 public currentPhase; mapping(address => uint8) public whitelist; // // Events // event WhitelistUpdated(address indexed _account, uint8 _phase); constructor(address wallet) public FlexibleTokenSale(INITIAL_STARTTIME, INITIAL_ENDTIME, wallet) { tokensPerKEther = TOKENS_PER_KETHER; bonus = BONUS; maxTokensPerAccount = TOKENS_ACCOUNT_MAX; contributionMin = CONTRIBUTION_MIN; currentPhase = 1; } // Allows the owner or ops to add/remove people from the whitelist. function updateWhitelist(address _address, uint8 _phase) external onlyOwnerOrOps returns (bool) { return updateWhitelistInternal(_address, _phase); } function updateWhitelistInternal(address _address, uint8 _phase) internal returns (bool) { require(_address != address(0)); require(_address != address(this)); require(_address != walletAddress); require(_phase <= 1); whitelist[_address] = _phase; emit WhitelistUpdated(_address, _phase); return true; } // Allows the owner or ops to add/remove people from the whitelist, in batches. function updateWhitelistBatch(address[] _addresses, uint8 _phase) external onlyOwnerOrOps returns (bool) { require(_addresses.length > 0); for (uint256 i = 0; i < _addresses.length; i++) { require(updateWhitelistInternal(_addresses[i], _phase)); } return true; } // This is an extension to the buyToken function in FlexibleTokenSale which also takes // care of checking contributors against the whitelist. Since buyTokens supports proxy payments // we check that both the sender and the beneficiary have been whitelisted. function buyTokensInternal(address _beneficiary, uint256 _bonus) internal returns (uint256) { require(whitelist[msg.sender] >= currentPhase); require(whitelist[_beneficiary] >= currentPhase); return super.buyTokensInternal(_beneficiary, _bonus); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"resume","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPhase","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bonus","type":"uint256"}],"name":"setBonus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokensPerKEther","type":"uint256"}],"name":"setTokensPerKEther","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_ENDTIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_phase","type":"uint8"}],"name":"updateWhitelistBatch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BONUS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_phase","type":"uint8"}],"name":"updateWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenConversionFactor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_ACCOUNT_MAX","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_DECIMALS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_STARTTIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"setSaleWindow","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"walletAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"suspended","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOpsAddress","type":"address"}],"name":"setOpsAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_TOTALSUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALSFACTOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"opsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxTokensPerAccount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerKEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_walletAddress","type":"address"}],"name":"setWalletAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwnerOrOps","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONTRIBUTION_MIN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contributionMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"initiateOwnershipTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"initialize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalEtherCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"suspend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"completeOwnershipTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOps","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxTokens","type":"uint256"}],"name":"setMaxTokensPerAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_PER_KETHER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_account","type":"address"},{"indexed":false,"name":"_phase","type":"uint8"}],"name":"WhitelistUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newValue","type":"uint256"}],"name":"TokensPerKEtherUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newMax","type":"uint256"}],"name":"MaxTokensPerAccountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newValue","type":"uint256"}],"name":"BonusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_startTime","type":"uint256"},{"indexed":false,"name":"_endTime","type":"uint256"}],"name":"SaleWindowUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newAddress","type":"address"}],"name":"WalletAddressUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleSuspended","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_cost","type":"uint256"},{"indexed":false,"name":"_tokens","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_amount","type":"uint256"}],"name":"TokensReclaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newAddress","type":"address"}],"name":"OpsAddressUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_proposedOwner","type":"address"}],"name":"OwnershipTransferInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnershipTransferCompleted","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051602080611c02833981016040525160008054600160a060020a03191633600160a060020a03161790556001805460a060020a60ff0219169055635bb47700635bb71a0082600160a060020a038116151561006d57600080fd5b30600160a060020a031681600160a060020a03161415151561008e57600080fd5b600b8054600160a060020a03909216600160a060020a03199092169190911790556001805460a060020a60ff02191681556005805460ff1990811690915560039390935560049190915560006007819055600d819055600e55623d09006006556954b40b1f852bda0000006008556706f05b59d3b20000600955600f805490921617905550611ae0806101226000396000f3006080604052600436106102375763ffffffff60e060020a600035041663046f7da28114610243578063055ad42e1461026c5780630b98f975146102975780630e9d02cc146102af57806318821400146102c75780632a905318146103515780632f54bf6e14610366578063312defb4146103875780633197cbb6146103ae5780633c54caa5146103c357806340267e53146103d85780634b8624c4146104005780634bb278f3146104155780634d399cb31461042a57806353105fbc146104515780635b2b345c146104665780635b7f415c1461047b57806363b2011714610490578063677ab667146104a5578063680e354a146104ba5780636ad5b3ea146104d5578063702efdf314610506578063707789c51461051b57806374c950fb1461053c57806375b4d78c1461055157806378e97925146105665780638bc04eb71461057b5780638da5cb5b146105905780638ea64376146105a55780639a02edfe146105ba5780639b19251a146105cf578063a5bc770c146105f0578063ac1a386a14610605578063adcf59ee14610626578063b3f05b9714610647578063ba9bb8271461065c578063bcc13d1d14610671578063c0b6f56114610686578063c4d66de8146106a7578063c7a02061146106c8578063d153b60c146106dd578063d18e81b3146106f2578063e6400bbe14610707578063e71a78111461071c578063ec8ac4d814610731578063ef326c6d14610745578063f18e120b14610766578063f527c8561461077e578063fc0c546a14610793575b610240336107a8565b50005b34801561024f57600080fd5b506102586107bc565b604080519115158252519081900360200190f35b34801561027857600080fd5b50610281610823565b6040805160ff9092168252519081900360200190f35b3480156102a357600080fd5b5061025860043561082c565b3480156102bb57600080fd5b50610258600435610894565b3480156102d357600080fd5b506102dc6108fa565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103165781810151838201526020016102fe565b50505050905090810190601f1680156103435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035d57600080fd5b506102dc610931565b34801561037257600080fd5b50610258600160a060020a0360043516610968565b34801561039357600080fd5b5061039c61097c565b60408051918252519081900360200190f35b3480156103ba57600080fd5b5061039c610984565b3480156103cf57600080fd5b5061025861098a565b3480156103e457600080fd5b50610258602460048035828101929101359060ff903516610bc5565b34801561040c57600080fd5b5061039c610c38565b34801561042157600080fd5b50610258610c3d565b34801561043657600080fd5b50610258600160a060020a036004351660ff60243516610ce2565b34801561045d57600080fd5b5061039c610d09565b34801561047257600080fd5b5061039c610d0f565b34801561048757600080fd5b50610281610d1d565b34801561049c57600080fd5b5061039c610d22565b3480156104b157600080fd5b5061039c610d28565b3480156104c657600080fd5b50610258600435602435610d30565b3480156104e157600080fd5b506104ea610db0565b60408051600160a060020a039092168252519081900360200190f35b34801561051257600080fd5b50610258610dbf565b34801561052757600080fd5b50610258600160a060020a0360043516610dc8565b34801561054857600080fd5b5061039c610e7f565b34801561055d57600080fd5b5061039c610e8f565b34801561057257600080fd5b5061039c610e95565b34801561058757600080fd5b5061039c610e9b565b34801561059c57600080fd5b506104ea610ea7565b3480156105b157600080fd5b506104ea610eb6565b3480156105c657600080fd5b5061039c610ec5565b3480156105db57600080fd5b50610281600160a060020a0360043516610ecb565b3480156105fc57600080fd5b5061039c610ee0565b34801561061157600080fd5b50610258600160a060020a0360043516610ee6565b34801561063257600080fd5b50610258600160a060020a0360043516610fc9565b34801561065357600080fd5b50610258610fe3565b34801561066857600080fd5b5061039c611004565b34801561067d57600080fd5b5061039c611010565b34801561069257600080fd5b50610258600160a060020a0360043516611016565b3480156106b357600080fd5b50610258600160a060020a03600435166110e2565b3480156106d457600080fd5b5061039c611276565b3480156106e957600080fd5b506104ea61127c565b3480156106fe57600080fd5b5061039c61128b565b34801561071357600080fd5b5061025861128f565b34801561072857600080fd5b506102586112fc565b61039c600160a060020a03600435166107a8565b34801561075157600080fd5b50610258600160a060020a036004351661137f565b34801561077257600080fd5b506102586004356113ac565b34801561078a57600080fd5b5061039c611405565b34801561079f57600080fd5b506104ea61140c565b60006107b68260075461141b565b92915050565b60006107c733610968565b15156001146107d557600080fd5b60055460ff1615156107e957506000610820565b6005805460ff191690556040517fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb90600090a15060015b90565b600f5460ff1681565b600061083733610968565b151560011461084557600080fd5b61271082111561085457600080fd5b60078290556040805183815290517f04a7ca0e55f887a637b560614f621b92b79423e20152fea70bc4be66edaee3d69181900360200190a1506001919050565b600061089f33610968565b15156001146108ad57600080fd5b600082116108ba57600080fd5b60068290556040805183815290517fee386bebbe46d39825c2b93313aa1ab1dc57d4774cac81c6debb8c611c9227ab9181900360200190a1506001919050565b60408051808201909152600d81527f4361737069616e20546f6b656e00000000000000000000000000000000000000602082015281565b60408051808201909152600381527f4353500000000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a0390811691161490565b635bb71a0081565b60045481565b600080600061099833610968565b15156001146109a657600080fd5b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152915191909216916370a082319160248083019260209291908290030181600087803b158015610a0e57600080fd5b505af1158015610a22573d6000803e3d6000fd5b505050506040513d6020811015610a3857600080fd5b50519150811515610a4c5760009250610bc0565b600c60009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a9f57600080fd5b505af1158015610ab3573d6000803e3d6000fd5b505050506040513d6020811015610ac957600080fd5b50519050600160a060020a0381161515610ae257600080fd5b600c54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610b5157600080fd5b505af1158015610b65573d6000803e3d6000fd5b505050506040513d6020811015610b7b57600080fd5b50511515610b8857600080fd5b6040805183815290517fbce3cc672456937708767d1642a17cacb1962753bd5cff46c8dbd377906a6b4b9181900360200190a1600192505b505090565b600080610bd133610fc9565b1515610bdc57600080fd5b60008411610be957600080fd5b5060005b83811015610c2d57610c1a858583818110610c0457fe5b90506020020135600160a060020a031684611483565b1515610c2557600080fd5b600101610bed565b506001949350505050565b600081565b6000610c4833610968565b1515600114610c5657600080fd5b60015474010000000000000000000000000000000000000000900460ff1615610c7e57600080fd5b6001805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a150600190565b6000610ced33610fc9565b1515610cf857600080fd5b610d028383611483565b9392505050565b600a5481565b6954b40b1f852bda00000081565b601281565b600d5481565b635bb4770081565b6000610d3b33610968565b1515600114610d4957600080fd5b60008311610d5657600080fd5b828211610d6257600080fd5b60038390556004829055604080518481526020810184905281517f7291acdf619347e3dd338a8b65d1788570a0f1bc413e94e9e7333d0561c6ed58929181900390910190a150600192915050565b600b54600160a060020a031681565b60055460ff1681565b6000610dd333610968565b1515600114610de157600080fd5b600054600160a060020a0383811691161415610dfc57600080fd5b30600160a060020a031682600160a060020a031614151515610e1d57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384811691909117918290556040519116907f06171a5d6c06d67b0cfa679c07db377a27d1170797663fd98d395229d8c3650890600090a2506001919050565b6b033b2e3c9fd0803ce800000081565b60075481565b60035481565b670de0b6b3a764000081565b600054600160a060020a031681565b600254600160a060020a031681565b60085481565b60106020526000908152604090205460ff1681565b60065481565b6000610ef133610968565b1515600114610eff57600080fd5b600160a060020a0382161515610f1457600080fd5b30600160a060020a031682600160a060020a031614151515610f3557600080fd5b600c54600160a060020a0383811691161415610f5057600080fd5b610f5982610fc9565b15610f6357600080fd5b600b8054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f0428ca271a7bee83fddcf583de5ba0a5a69f42cbe32587b07bb38925ed96de8d9181900360200190a1506001919050565b6000610fd482610968565b806107b657506107b68261137f565b60015474010000000000000000000000000000000000000000900460ff1681565b6706f05b59d3b2000081565b60095481565b600061102133610968565b151560011461102f57600080fd5b600160a060020a038216151561104457600080fd5b30600160a060020a031682600160a060020a03161415151561106557600080fd5b600054600160a060020a038381169116141561108057600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384811691909117918290556040519116907f20f5afdf40bf7b43c89031a5d4369a30b159e512d164aa46124bcb706b4a1caf90600090a2506001919050565b60006110ed33610968565b15156001146110fb57600080fd5b600c54600160a060020a03161561111157600080fd5b600160a060020a038216151561112657600080fd5b30600160a060020a031682600160a060020a03161415151561114757600080fd5b600b54600160a060020a038381169116141561116257600080fd5b61116b82610fc9565b1561117557600080fd5b81600c60006101000a815481600160a060020a030219169083600160a060020a031602179055506112306004611224600361122486600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156111e757600080fd5b505af11580156111fb573d6000803e3d6000fd5b505050506040513d602081101561121157600080fd5b505160129060ff1663ffffffff61154d16565b9063ffffffff61156216565b600a90810a9081905560001061124557600080fd5b6040517f5daa87a0e9463431830481fd4b6e3403442dfb9a12b9c07597e9f61d50b633c890600090a1506001919050565b600e5481565b600154600160a060020a031681565b4290565b600061129a33610968565b15156001146112a857600080fd5b60055460ff161515600114156112c057506000610820565b6005805460ff191660011790556040517fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb90600090a150600190565b60015460009033600160a060020a0390811691161461131a57600080fd5b60008054600160a060020a0333811673ffffffffffffffffffffffffffffffffffffffff1992831617808455600180549093169092556040519116917f624adc4c72536289dd9d5439ccdeccd8923cb9af95fb626b21935447c77b840791a250600190565b600254600090600160a060020a0316158015906107b6575050600254600160a060020a0390811691161490565b60006113b733610968565b15156001146113c557600080fd5b60088290556040805183815290517f2de896f66f29831ace4b07f5658ac41de20910c13ce8b8db17bc102a80beff269181900360200190a1506001919050565b623d090081565b600c54600160a060020a031681565b600f54600160a060020a033316600090815260106020526040812054909160ff9081169116101561144b57600080fd5b600f54600160a060020a03841660009081526010602052604090205460ff9182169116101561147957600080fd5b610d02838361157f565b6000600160a060020a038316151561149a57600080fd5b30600160a060020a031683600160a060020a0316141515156114bb57600080fd5b600b54600160a060020a03848116911614156114d657600080fd5b600160ff831611156114e757600080fd5b600160a060020a038316600081815260106020908152604091829020805460ff191660ff8716908117909155825190815291517f7ed18aa59a2962897d3e7ed3da887dfb6a03cca6c3cfe8d74e55130f631791c89281900390910190a250600192915050565b60008183101561155c57600080fd5b50900390565b60008282018381101561157457600080fd5b8091505b5092915050565b6000806000806000806000806000600160149054906101000a900460ff161515156115a957600080fd5b60055460ff16156115b957600080fd5b6003546115c461128b565b10156115cf57600080fd5b6004546115da61128b565b11156115e557600080fd5b6009543410156115f457600080fd5b600160a060020a038b16151561160957600080fd5b30600160a060020a03168b600160a060020a03161415151561162a57600080fd5b600c54600160a060020a038c81169116141561164557600080fd5b600b5433600160a060020a039081169116141561166157600080fd5b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152915191909216916370a082319160248083019260209291908290030181600087803b1580156116c957600080fd5b505af11580156116dd573d6000803e3d6000fd5b505050506040513d60208110156116f357600080fd5b505197506000881161170457600080fd5b600a5461174c906117406117208d61271063ffffffff61156216565b60065461173490349063ffffffff6119d416565b9063ffffffff6119d416565b9063ffffffff611a0216565b96506000871161175b57600080fd5b34955060009450879350600060085411156117ab576117798b611a17565b600854909350831061178a57600080fd5b60085461179d908463ffffffff61154d16565b9150878210156117ab578193505b600084116117b857600080fd5b8387111561181d5792955085926118006117ec6117dd8c61271063ffffffff61156216565b6006549063ffffffff6119d416565b600a54611740908a9063ffffffff6119d416565b95508534111561181d5761181a348763ffffffff61154d16565b94505b61182d348663ffffffff61154d16565b600b54604051919250600160a060020a03169082156108fc029083906000818181858888f19350505050158015611868573d6000803e3d6000fd5b50600d5461187c908863ffffffff61156216565b600d55600e54611892908263ffffffff61156216565b600e55600c54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038e81166004830152602482018b90529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561190457600080fd5b505af1158015611918573d6000803e3d6000fd5b505050506040513d602081101561192e57600080fd5b5051151561193b57600080fd5b600085111561197c57604051600160a060020a0333169086156108fc029087906000818181858888f1935050505015801561197a573d6000803e3d6000fd5b505b60408051600160a060020a038d1681526020810188905280820189905290517f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f339181900360600190a150949998505050505050505050565b6000808315156119e75760009150611578565b508282028284828115156119f757fe5b041461157457600080fd5b60008183811515611a0f57fe5b049392505050565b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915160009392909216916370a082319160248082019260209290919082900301818787803b158015611a8257600080fd5b505af1158015611a96573d6000803e3d6000fd5b505050506040513d6020811015611aac57600080fd5b5051929150505600a165627a7a7230582052e03b652d73656d9e6a3ddb89bcf2c522ae5ef54dc8a30f622dd91dd2d04fb200290000000000000000000000009ca9e0139f5558ba9b4a5e71990cd62a4457196b
Deployed Bytecode
0x6080604052600436106102375763ffffffff60e060020a600035041663046f7da28114610243578063055ad42e1461026c5780630b98f975146102975780630e9d02cc146102af57806318821400146102c75780632a905318146103515780632f54bf6e14610366578063312defb4146103875780633197cbb6146103ae5780633c54caa5146103c357806340267e53146103d85780634b8624c4146104005780634bb278f3146104155780634d399cb31461042a57806353105fbc146104515780635b2b345c146104665780635b7f415c1461047b57806363b2011714610490578063677ab667146104a5578063680e354a146104ba5780636ad5b3ea146104d5578063702efdf314610506578063707789c51461051b57806374c950fb1461053c57806375b4d78c1461055157806378e97925146105665780638bc04eb71461057b5780638da5cb5b146105905780638ea64376146105a55780639a02edfe146105ba5780639b19251a146105cf578063a5bc770c146105f0578063ac1a386a14610605578063adcf59ee14610626578063b3f05b9714610647578063ba9bb8271461065c578063bcc13d1d14610671578063c0b6f56114610686578063c4d66de8146106a7578063c7a02061146106c8578063d153b60c146106dd578063d18e81b3146106f2578063e6400bbe14610707578063e71a78111461071c578063ec8ac4d814610731578063ef326c6d14610745578063f18e120b14610766578063f527c8561461077e578063fc0c546a14610793575b610240336107a8565b50005b34801561024f57600080fd5b506102586107bc565b604080519115158252519081900360200190f35b34801561027857600080fd5b50610281610823565b6040805160ff9092168252519081900360200190f35b3480156102a357600080fd5b5061025860043561082c565b3480156102bb57600080fd5b50610258600435610894565b3480156102d357600080fd5b506102dc6108fa565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103165781810151838201526020016102fe565b50505050905090810190601f1680156103435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035d57600080fd5b506102dc610931565b34801561037257600080fd5b50610258600160a060020a0360043516610968565b34801561039357600080fd5b5061039c61097c565b60408051918252519081900360200190f35b3480156103ba57600080fd5b5061039c610984565b3480156103cf57600080fd5b5061025861098a565b3480156103e457600080fd5b50610258602460048035828101929101359060ff903516610bc5565b34801561040c57600080fd5b5061039c610c38565b34801561042157600080fd5b50610258610c3d565b34801561043657600080fd5b50610258600160a060020a036004351660ff60243516610ce2565b34801561045d57600080fd5b5061039c610d09565b34801561047257600080fd5b5061039c610d0f565b34801561048757600080fd5b50610281610d1d565b34801561049c57600080fd5b5061039c610d22565b3480156104b157600080fd5b5061039c610d28565b3480156104c657600080fd5b50610258600435602435610d30565b3480156104e157600080fd5b506104ea610db0565b60408051600160a060020a039092168252519081900360200190f35b34801561051257600080fd5b50610258610dbf565b34801561052757600080fd5b50610258600160a060020a0360043516610dc8565b34801561054857600080fd5b5061039c610e7f565b34801561055d57600080fd5b5061039c610e8f565b34801561057257600080fd5b5061039c610e95565b34801561058757600080fd5b5061039c610e9b565b34801561059c57600080fd5b506104ea610ea7565b3480156105b157600080fd5b506104ea610eb6565b3480156105c657600080fd5b5061039c610ec5565b3480156105db57600080fd5b50610281600160a060020a0360043516610ecb565b3480156105fc57600080fd5b5061039c610ee0565b34801561061157600080fd5b50610258600160a060020a0360043516610ee6565b34801561063257600080fd5b50610258600160a060020a0360043516610fc9565b34801561065357600080fd5b50610258610fe3565b34801561066857600080fd5b5061039c611004565b34801561067d57600080fd5b5061039c611010565b34801561069257600080fd5b50610258600160a060020a0360043516611016565b3480156106b357600080fd5b50610258600160a060020a03600435166110e2565b3480156106d457600080fd5b5061039c611276565b3480156106e957600080fd5b506104ea61127c565b3480156106fe57600080fd5b5061039c61128b565b34801561071357600080fd5b5061025861128f565b34801561072857600080fd5b506102586112fc565b61039c600160a060020a03600435166107a8565b34801561075157600080fd5b50610258600160a060020a036004351661137f565b34801561077257600080fd5b506102586004356113ac565b34801561078a57600080fd5b5061039c611405565b34801561079f57600080fd5b506104ea61140c565b60006107b68260075461141b565b92915050565b60006107c733610968565b15156001146107d557600080fd5b60055460ff1615156107e957506000610820565b6005805460ff191690556040517fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb90600090a15060015b90565b600f5460ff1681565b600061083733610968565b151560011461084557600080fd5b61271082111561085457600080fd5b60078290556040805183815290517f04a7ca0e55f887a637b560614f621b92b79423e20152fea70bc4be66edaee3d69181900360200190a1506001919050565b600061089f33610968565b15156001146108ad57600080fd5b600082116108ba57600080fd5b60068290556040805183815290517fee386bebbe46d39825c2b93313aa1ab1dc57d4774cac81c6debb8c611c9227ab9181900360200190a1506001919050565b60408051808201909152600d81527f4361737069616e20546f6b656e00000000000000000000000000000000000000602082015281565b60408051808201909152600381527f4353500000000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a0390811691161490565b635bb71a0081565b60045481565b600080600061099833610968565b15156001146109a657600080fd5b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152915191909216916370a082319160248083019260209291908290030181600087803b158015610a0e57600080fd5b505af1158015610a22573d6000803e3d6000fd5b505050506040513d6020811015610a3857600080fd5b50519150811515610a4c5760009250610bc0565b600c60009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a9f57600080fd5b505af1158015610ab3573d6000803e3d6000fd5b505050506040513d6020811015610ac957600080fd5b50519050600160a060020a0381161515610ae257600080fd5b600c54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610b5157600080fd5b505af1158015610b65573d6000803e3d6000fd5b505050506040513d6020811015610b7b57600080fd5b50511515610b8857600080fd5b6040805183815290517fbce3cc672456937708767d1642a17cacb1962753bd5cff46c8dbd377906a6b4b9181900360200190a1600192505b505090565b600080610bd133610fc9565b1515610bdc57600080fd5b60008411610be957600080fd5b5060005b83811015610c2d57610c1a858583818110610c0457fe5b90506020020135600160a060020a031684611483565b1515610c2557600080fd5b600101610bed565b506001949350505050565b600081565b6000610c4833610968565b1515600114610c5657600080fd5b60015474010000000000000000000000000000000000000000900460ff1615610c7e57600080fd5b6001805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a150600190565b6000610ced33610fc9565b1515610cf857600080fd5b610d028383611483565b9392505050565b600a5481565b6954b40b1f852bda00000081565b601281565b600d5481565b635bb4770081565b6000610d3b33610968565b1515600114610d4957600080fd5b60008311610d5657600080fd5b828211610d6257600080fd5b60038390556004829055604080518481526020810184905281517f7291acdf619347e3dd338a8b65d1788570a0f1bc413e94e9e7333d0561c6ed58929181900390910190a150600192915050565b600b54600160a060020a031681565b60055460ff1681565b6000610dd333610968565b1515600114610de157600080fd5b600054600160a060020a0383811691161415610dfc57600080fd5b30600160a060020a031682600160a060020a031614151515610e1d57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384811691909117918290556040519116907f06171a5d6c06d67b0cfa679c07db377a27d1170797663fd98d395229d8c3650890600090a2506001919050565b6b033b2e3c9fd0803ce800000081565b60075481565b60035481565b670de0b6b3a764000081565b600054600160a060020a031681565b600254600160a060020a031681565b60085481565b60106020526000908152604090205460ff1681565b60065481565b6000610ef133610968565b1515600114610eff57600080fd5b600160a060020a0382161515610f1457600080fd5b30600160a060020a031682600160a060020a031614151515610f3557600080fd5b600c54600160a060020a0383811691161415610f5057600080fd5b610f5982610fc9565b15610f6357600080fd5b600b8054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f0428ca271a7bee83fddcf583de5ba0a5a69f42cbe32587b07bb38925ed96de8d9181900360200190a1506001919050565b6000610fd482610968565b806107b657506107b68261137f565b60015474010000000000000000000000000000000000000000900460ff1681565b6706f05b59d3b2000081565b60095481565b600061102133610968565b151560011461102f57600080fd5b600160a060020a038216151561104457600080fd5b30600160a060020a031682600160a060020a03161415151561106557600080fd5b600054600160a060020a038381169116141561108057600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384811691909117918290556040519116907f20f5afdf40bf7b43c89031a5d4369a30b159e512d164aa46124bcb706b4a1caf90600090a2506001919050565b60006110ed33610968565b15156001146110fb57600080fd5b600c54600160a060020a03161561111157600080fd5b600160a060020a038216151561112657600080fd5b30600160a060020a031682600160a060020a03161415151561114757600080fd5b600b54600160a060020a038381169116141561116257600080fd5b61116b82610fc9565b1561117557600080fd5b81600c60006101000a815481600160a060020a030219169083600160a060020a031602179055506112306004611224600361122486600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156111e757600080fd5b505af11580156111fb573d6000803e3d6000fd5b505050506040513d602081101561121157600080fd5b505160129060ff1663ffffffff61154d16565b9063ffffffff61156216565b600a90810a9081905560001061124557600080fd5b6040517f5daa87a0e9463431830481fd4b6e3403442dfb9a12b9c07597e9f61d50b633c890600090a1506001919050565b600e5481565b600154600160a060020a031681565b4290565b600061129a33610968565b15156001146112a857600080fd5b60055460ff161515600114156112c057506000610820565b6005805460ff191660011790556040517fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb90600090a150600190565b60015460009033600160a060020a0390811691161461131a57600080fd5b60008054600160a060020a0333811673ffffffffffffffffffffffffffffffffffffffff1992831617808455600180549093169092556040519116917f624adc4c72536289dd9d5439ccdeccd8923cb9af95fb626b21935447c77b840791a250600190565b600254600090600160a060020a0316158015906107b6575050600254600160a060020a0390811691161490565b60006113b733610968565b15156001146113c557600080fd5b60088290556040805183815290517f2de896f66f29831ace4b07f5658ac41de20910c13ce8b8db17bc102a80beff269181900360200190a1506001919050565b623d090081565b600c54600160a060020a031681565b600f54600160a060020a033316600090815260106020526040812054909160ff9081169116101561144b57600080fd5b600f54600160a060020a03841660009081526010602052604090205460ff9182169116101561147957600080fd5b610d02838361157f565b6000600160a060020a038316151561149a57600080fd5b30600160a060020a031683600160a060020a0316141515156114bb57600080fd5b600b54600160a060020a03848116911614156114d657600080fd5b600160ff831611156114e757600080fd5b600160a060020a038316600081815260106020908152604091829020805460ff191660ff8716908117909155825190815291517f7ed18aa59a2962897d3e7ed3da887dfb6a03cca6c3cfe8d74e55130f631791c89281900390910190a250600192915050565b60008183101561155c57600080fd5b50900390565b60008282018381101561157457600080fd5b8091505b5092915050565b6000806000806000806000806000600160149054906101000a900460ff161515156115a957600080fd5b60055460ff16156115b957600080fd5b6003546115c461128b565b10156115cf57600080fd5b6004546115da61128b565b11156115e557600080fd5b6009543410156115f457600080fd5b600160a060020a038b16151561160957600080fd5b30600160a060020a03168b600160a060020a03161415151561162a57600080fd5b600c54600160a060020a038c81169116141561164557600080fd5b600b5433600160a060020a039081169116141561166157600080fd5b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152915191909216916370a082319160248083019260209291908290030181600087803b1580156116c957600080fd5b505af11580156116dd573d6000803e3d6000fd5b505050506040513d60208110156116f357600080fd5b505197506000881161170457600080fd5b600a5461174c906117406117208d61271063ffffffff61156216565b60065461173490349063ffffffff6119d416565b9063ffffffff6119d416565b9063ffffffff611a0216565b96506000871161175b57600080fd5b34955060009450879350600060085411156117ab576117798b611a17565b600854909350831061178a57600080fd5b60085461179d908463ffffffff61154d16565b9150878210156117ab578193505b600084116117b857600080fd5b8387111561181d5792955085926118006117ec6117dd8c61271063ffffffff61156216565b6006549063ffffffff6119d416565b600a54611740908a9063ffffffff6119d416565b95508534111561181d5761181a348763ffffffff61154d16565b94505b61182d348663ffffffff61154d16565b600b54604051919250600160a060020a03169082156108fc029083906000818181858888f19350505050158015611868573d6000803e3d6000fd5b50600d5461187c908863ffffffff61156216565b600d55600e54611892908263ffffffff61156216565b600e55600c54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038e81166004830152602482018b90529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561190457600080fd5b505af1158015611918573d6000803e3d6000fd5b505050506040513d602081101561192e57600080fd5b5051151561193b57600080fd5b600085111561197c57604051600160a060020a0333169086156108fc029087906000818181858888f1935050505015801561197a573d6000803e3d6000fd5b505b60408051600160a060020a038d1681526020810188905280820189905290517f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f339181900360600190a150949998505050505050505050565b6000808315156119e75760009150611578565b508282028284828115156119f757fe5b041461157457600080fd5b60008183811515611a0f57fe5b049392505050565b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915160009392909216916370a082319160248082019260209290919082900301818787803b158015611a8257600080fd5b505af1158015611a96573d6000803e3d6000fd5b505050506040513d6020811015611aac57600080fd5b5051929150505600a165627a7a7230582052e03b652d73656d9e6a3ddb89bcf2c522ae5ef54dc8a30f622dd91dd2d04fb20029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009ca9e0139f5558ba9b4a5e71990cd62a4457196b
-----Decoded View---------------
Arg [0] : wallet (address): 0x9cA9e0139f5558ba9B4a5E71990cd62A4457196B
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009ca9e0139f5558ba9b4a5e71990cd62a4457196b
Swarm Source
bzzr://52e03b652d73656d9e6a3ddb89bcf2c522ae5ef54dc8a30f622dd91dd2d04fb2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.