ETH Price: $2,609.18 (-4.76%)

Contract

0x46D0aB889c5D205EbcE12431fb54A565A48097c5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
46021952017-11-22 18:19:472634 days ago1511374787
0x46D0aB88...5A48097c5
 Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xa759794d...9f10d8a1c
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
CryptoTicketsICO

Compiler Version
v0.4.15-nightly.2017.7.31+commit.93f90eb2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-11-26
*/

pragma solidity ^0.4.13;

library SafeMath {
    function mul(uint a, uint b) internal returns (uint) {
        uint c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }
    function div(uint a, uint b) internal returns (uint) {
        assert(b > 0);
        uint c = a / b;
        assert(a == b * c + a % b);
        return c;
    }
    function sub(uint a, uint b) internal returns (uint) {
        assert(b <= a);
        return a - b;
     }
    function add(uint a, uint b) internal returns (uint) {
         uint c = a + b;
         assert(c >= a);
         return c;
     }
    function max64(uint64 a, uint64 b) internal constant returns (uint64) {
        return a >= b ? a : b;
     }

    function min64(uint64 a, uint64 b) internal constant returns (uint64) {
        return a < b ? a : b;
    }

    function max256(uint256 a, uint256 b) internal constant returns (uint256) {
        return a >= b ? a : b;
    }

    function min256(uint256 a, uint256 b) internal constant returns (uint256) {
        return a < b ? a : b;
    }
}

contract ERC20 {
    uint public totalSupply = 0;

    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;

    function balanceOf(address _owner) constant returns (uint);
    function transfer(address _to, uint _value) returns (bool);
    function transferFrom(address _from, address _to, uint _value) returns (bool);
    function approve(address _spender, uint _value) returns (bool);
    function allowance(address _owner, address _spender) constant returns (uint);

    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);

} // Functions of ERC20 standard

contract TKT  is ERC20 {
    using SafeMath for uint;

    string public name = "CryptoTickets COIN";
    string public symbol = "TKT";
    uint public decimals = 18;

    address public ico;

    event Burn(address indexed from, uint256 value);

    bool public tokensAreFrozen = true;

    modifier icoOnly { require(msg.sender == ico); _; }

    function TKT(address _ico) {
       ico = _ico;
    }


    function mint(address _holder, uint _value) external icoOnly {
       require(_value != 0);
       balances[_holder] = balances[_holder].add(_value);
       totalSupply = totalSupply.add(_value);
       Transfer(0x0, _holder, _value);
    }


    function defrost() external icoOnly {
       tokensAreFrozen = false;
    }

    function burn(uint256 _value) {
       require(!tokensAreFrozen);
       balances[msg.sender] = balances[msg.sender].sub(_value);
       totalSupply = totalSupply.sub(_value);
       Burn(msg.sender, _value);
    }


    function balanceOf(address _owner) constant returns (uint256) {
         return balances[_owner];
    }


    function transfer(address _to, uint256 _amount) returns (bool) {
        require(!tokensAreFrozen);
        balances[msg.sender] = balances[msg.sender].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        Transfer(msg.sender, _to, _amount);
        return true;
    }


    function transferFrom(address _from, address _to, uint256 _amount) returns (bool) {
        require(!tokensAreFrozen);
        balances[_from] = balances[_from].sub(_amount);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        Transfer(_from, _to, _amount);
        return true;
     }


    function approve(address _spender, uint256 _amount) returns (bool) {
        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_amount == 0) || (allowed[msg.sender][_spender] == 0));

        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }


    function allowance(address _owner, address _spender) constant returns (uint256) {
        return allowed[_owner][_spender];
    }
}

contract CryptoTicketsICO {
    using SafeMath for uint;

    uint public constant Tokens_For_Sale = 525000000*1e18; // Tokens for Sale without bonuses(HardCap)

    // Style: Caps should not be used for vars, only for consts!
    uint public Rate_Eth = 298; // Rate USD per ETH
    uint public Token_Price = 25 * Rate_Eth; // tkt per ETH
    uint public SoldNoBonuses = 0; //Sold tokens without bonuses

    mapping(address => bool) swapped;

    event LogStartICO();
    event LogPauseICO();
    event LogFinishICO(address bountyFund, address advisorsFund, address itdFund, address storageFund);
    event LogBuyForInvestor(address investor, uint tokenValue, string txHash);
    event LogSwapToken(address investor, uint tokenValue);

    TKT public token = new TKT(this);
    TKT public tkt;

    address public Company;
    address public BountyFund;
    address public AdvisorsFund;
    address public ItdFund;
    address public StorageFund;

    address public Manager; // Manager controls contract
    address public SwapManager;
    address public Controller_Address1; // First address that is used to buy tokens for other cryptos
    address public Controller_Address2; // Second address that is used to buy tokens for other cryptos
    address public Controller_Address3; // Third address that is used to buy tokens for other cryptos
    modifier managerOnly { require(msg.sender == Manager); _; }
    modifier controllersOnly { require((msg.sender == Controller_Address1) || (msg.sender == Controller_Address2) || (msg.sender == Controller_Address3)); _; }
    modifier swapManagerOnly { require(msg.sender == SwapManager); _; }

    uint bountyPart = 2; // 2% of TotalSupply for BountyFund
    uint advisorsPart = 35; //3,5% of TotalSupply for AdvisorsFund
    uint itdPart = 15; //15% of TotalSupply for ItdFund
    uint storagePart = 3; //3% of TotalSupply for StorageFund
    uint icoAndPOfPart = 765; // 76,5% of TotalSupply for PublicICO and PrivateOffer
    enum StatusICO { Created, Started, Paused, Finished }
    StatusICO statusICO = StatusICO.Created;


    function CryptoTicketsICO(address _tkt, address _Company, address _BountyFund, address _AdvisorsFund, address _ItdFund, address _StorageFund, address _Manager, address _Controller_Address1, address _Controller_Address2, address _Controller_Address3, address _SwapManager){
       tkt = TKT(_tkt);
       Company = _Company;
       BountyFund = _BountyFund;
       AdvisorsFund = _AdvisorsFund;
       ItdFund = _ItdFund;
       StorageFund = _StorageFund;
       Manager = _Manager;
       Controller_Address1 = _Controller_Address1;
       Controller_Address2 = _Controller_Address2;
       Controller_Address3 = _Controller_Address3;
       SwapManager = _SwapManager;
    }

// function for changing rate of ETH and price of token


    function setRate(uint _RateEth) external managerOnly {
       Rate_Eth = _RateEth;
       Token_Price = 25*Rate_Eth;
    }


//ICO status functions

    function startIco() external managerOnly {
       require(statusICO == StatusICO.Created || statusICO == StatusICO.Paused);
       LogStartICO();
       statusICO = StatusICO.Started;
    }

    function pauseIco() external managerOnly {
       require(statusICO == StatusICO.Started);
       statusICO = StatusICO.Paused;
       LogPauseICO();
    }


    function finishIco() external managerOnly { // Funds for minting of tokens

       require(statusICO == StatusICO.Started);

       uint alreadyMinted = token.totalSupply(); //=PublicICO+PrivateOffer
       uint totalAmount = alreadyMinted * 1000 / icoAndPOfPart;


       token.mint(BountyFund, bountyPart * totalAmount / 100); // 2% for Bounty
       token.mint(AdvisorsFund, advisorsPart * totalAmount / 1000); // 3.5% for Advisors
       token.mint(ItdFund, itdPart * totalAmount / 100); // 15% for Ticketscloud ltd
       token.mint(StorageFund, storagePart * totalAmount / 100); // 3% for Storage

       token.defrost();

       statusICO = StatusICO.Finished;
       LogFinishICO(BountyFund, AdvisorsFund, ItdFund, StorageFund);
    }

// function that buys tokens when investor sends ETH to address of ICO
    function() external payable {

       buy(msg.sender, msg.value * Token_Price);
    }

// function for buying tokens to investors who paid in other cryptos

    function buyForInvestor(address _investor, uint _tokenValue, string _txHash) external controllersOnly {
       buy(_investor, _tokenValue);
       LogBuyForInvestor(_investor, _tokenValue, _txHash);
    }

//function for buying tokens for investors

    function swapToken(address _investor) swapManagerOnly{
         require(statusICO != StatusICO.Finished);
         require(swapped[_investor] == false);
         uint tktTokens = tkt.balanceOf(_investor);
         require(tktTokens > 0);
         swapped[_investor] = true;
         token.mint(_investor, tktTokens);

         LogSwapToken(_investor, tktTokens);
    }
// internal function for buying tokens

    function buy(address _investor, uint _tokenValue) internal {
       require(statusICO == StatusICO.Started);
       require(_tokenValue > 0);
       require(SoldNoBonuses + _tokenValue <= Tokens_For_Sale);
       token.mint(_investor, _tokenValue);

       SoldNoBonuses = SoldNoBonuses.add(_tokenValue);
    }




//function to withdraw ETH from smart contract

    function withdrawEther(uint256 _value) external managerOnly {
       require(statusICO == StatusICO.Finished);
       Company.transfer(_value);
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_investor","type":"address"},{"name":"_tokenValue","type":"uint256"},{"name":"_txHash","type":"string"}],"name":"buyForInvestor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"StorageFund","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Tokens_For_Sale","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Controller_Address1","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_RateEth","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Controller_Address3","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"SwapManager","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"BountyFund","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Company","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tkt","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Token_Price","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"}],"name":"swapToken","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Manager","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"startIco","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ItdFund","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Controller_Address2","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pauseIco","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Rate_Eth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finishIco","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"SoldNoBonuses","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"AdvisorsFund","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_tkt","type":"address"},{"name":"_Company","type":"address"},{"name":"_BountyFund","type":"address"},{"name":"_AdvisorsFund","type":"address"},{"name":"_ItdFund","type":"address"},{"name":"_StorageFund","type":"address"},{"name":"_Manager","type":"address"},{"name":"_Controller_Address1","type":"address"},{"name":"_Controller_Address2","type":"address"},{"name":"_Controller_Address3","type":"address"},{"name":"_SwapManager","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[],"name":"LogStartICO","type":"event"},{"anonymous":false,"inputs":[],"name":"LogPauseICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bountyFund","type":"address"},{"indexed":false,"name":"advisorsFund","type":"address"},{"indexed":false,"name":"itdFund","type":"address"},{"indexed":false,"name":"storageFund","type":"address"}],"name":"LogFinishICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"tokenValue","type":"uint256"},{"indexed":false,"name":"txHash","type":"string"}],"name":"LogBuyForInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"tokenValue","type":"uint256"}],"name":"LogSwapToken","type":"event"}]

Deployed Bytecode

0x606060405236156101165763ffffffff60e060020a60003504166252992e81146101285780630a756f0914610159578063168110f3146101885780631ed5da2f146101ad57806334fcf437146101dc578063353559cb146101f4578063381501e6146102235780633bed33ce1461025257806342f0b07e1461026a5780635092f97e146102995780635ac72734146102c85780635bdaa6dd146102f75780636e8d82af1461031c57806378357e531461033d57806389311e6f1461036c578063a46c8fee14610381578063c33818fd146103b0578063c4fdc6b8146103df578063e0d1ba52146103f4578063ec42f82f14610419578063ee75caa91461042e578063f869b3ff14610453578063fc0c546a14610482575b5b6101253360015434026104b1565b5b005b341561013357600080fd5b61012560048035600160a060020a031690602480359160443591820191013561057f565b005b341561016457600080fd5b61016c610648565b604051600160a060020a03909116815260200160405180910390f35b341561019357600080fd5b61019b610657565b60405190815260200160405180910390f35b34156101b857600080fd5b61016c610667565b604051600160a060020a03909116815260200160405180910390f35b34156101e757600080fd5b610125600435610676565b005b34156101ff57600080fd5b61016c6106a2565b604051600160a060020a03909116815260200160405180910390f35b341561022e57600080fd5b61016c6106b1565b604051600160a060020a03909116815260200160405180910390f35b341561025d57600080fd5b6101256004356106c0565b005b341561027557600080fd5b61016c610731565b604051600160a060020a03909116815260200160405180910390f35b34156102a457600080fd5b61016c610740565b604051600160a060020a03909116815260200160405180910390f35b34156102d357600080fd5b61016c61074f565b604051600160a060020a03909116815260200160405180910390f35b341561030257600080fd5b61019b61075e565b60405190815260200160405180910390f35b341561032757600080fd5b610125600160a060020a0360043516610764565b005b341561034857600080fd5b61016c61091f565b604051600160a060020a03909116815260200160405180910390f35b341561037757600080fd5b61012561092e565b005b341561038c57600080fd5b61016c6109c9565b604051600160a060020a03909116815260200160405180910390f35b34156103bb57600080fd5b61016c6109d8565b604051600160a060020a03909116815260200160405180910390f35b34156103ea57600080fd5b6101256109e7565b005b34156103ff57600080fd5b61019b610a65565b60405190815260200160405180910390f35b341561042457600080fd5b610125610a6b565b005b341561043957600080fd5b61019b610dfe565b60405190815260200160405180910390f35b341561045e57600080fd5b61016c610e04565b604051600160a060020a03909116815260200160405180910390f35b341561048d57600080fd5b61016c610e13565b604051600160a060020a03909116815260200160405180910390f35b60015b60155460ff1660038111156104c557fe5b146104cf57600080fd5b600081116104dc57600080fd5b6002546b01b24513071a43532d00000090820111156104fa57600080fd5b600454600160a060020a03166340c10f19838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505060025461057791508263ffffffff610e2216565b6002555b5050565b600d5433600160a060020a03908116911614806105aa5750600e5433600160a060020a039081169116145b806105c35750600f5433600160a060020a039081169116145b15156105ce57600080fd5b6105d884846104b1565b7fa8f899a090efad1c1d17d3e3c18b0fc5b732d226b7ce367ab7f00fd824029acc84848484604051600160a060020a0385168152602081018490526060604082018181529082018390526080820184848082843782019150509550505050505060405180910390a15b5b50505050565b600a54600160a060020a031681565b6b01b24513071a43532d00000081565b600d54600160a060020a031681565b600b5433600160a060020a0390811691161461069157600080fd5b6000819055601981026001555b5b50565b600f54600160a060020a031681565b600c54600160a060020a031681565b600b5433600160a060020a039081169116146106db57600080fd5b60035b60155460ff1660038111156106ef57fe5b146106f957600080fd5b600654600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561069e57600080fd5b5b5b50565b600754600160a060020a031681565b600654600160a060020a031681565b600554600160a060020a031681565b60015481565b600c5460009033600160a060020a0390811691161461078257600080fd5b60035b60155460ff16600381111561079657fe5b14156107a157600080fd5b600160a060020a03821660009081526003602052604090205460ff16156107c757600080fd5b600554600160a060020a03166370a082318360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561082057600080fd5b6102c65a03f1151561083157600080fd5b50505060405180519150506000811161084957600080fd5b600160a060020a0380831660009081526003602052604090819020805460ff19166001179055600454909116906340c10f1990849084905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156108c157600080fd5b6102c65a03f115156108d257600080fd5b5050507f5fd23730f323ae522610c56ac5f861d6bc82895511f4512134a445daa699bf998282604051600160a060020a03909216825260208201526040908101905180910390a15b5b5050565b600b54600160a060020a031681565b600b5433600160a060020a0390811691161461094957600080fd5b60005b60155460ff16600381111561095d57fe5b148061097a575060025b60155460ff16600381111561097857fe5b145b151561098557600080fd5b7f0ed6b1715382ee8c647ec35e086f9713aa5d53bf7fd91d1e3a474d2f903d6d7e60405160405180910390a1601580546001919060ff191682805b02179055505b5b565b600954600160a060020a031681565b600e54600160a060020a031681565b600b5433600160a060020a03908116911614610a0257600080fd5b60015b60155460ff166003811115610a1657fe5b14610a2057600080fd5b601580546002919060ff19166001835b02179055507feb8cb983e71ec40f0d025e89b530e8a6601d259cf783e557b82334bf4ee7f1dc60405160405180910390a15b5b565b60005481565b600b54600090819033600160a060020a03908116911614610a8b57600080fd5b60015b60155460ff166003811115610a9f57fe5b14610aa957600080fd5b600454600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610af157600080fd5b6102c65a03f11515610b0257600080fd5b505050604051805190509150601454826103e802811515610b1f57fe5b600454600754601054939092049350600160a060020a03908116926340c10f19929091169060649085025b0460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b8e57600080fd5b6102c65a03f11515610b9f57600080fd5b5050600454600854601154600160a060020a0392831693506340c10f1992909116906103e89085025b0460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610c0c57600080fd5b6102c65a03f11515610c1d57600080fd5b5050600454600954601254600160a060020a0392831693506340c10f19929091169060649085025b0460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610c8957600080fd5b6102c65a03f11515610c9a57600080fd5b5050600454600a54601354600160a060020a0392831693506340c10f19929091169060649085025b0460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610d0657600080fd5b6102c65a03f11515610d1757600080fd5b5050600454600160a060020a0316905063f21cdf6f6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610d5a57600080fd5b6102c65a03f11515610d6b57600080fd5b5050601580546003925060ff19166001835b0217905550600754600854600954600a547fbe83b3c67e3accc4b95c42a0089360ba15f53db672bb11f40061e4300f06e98693600160a060020a039081169381169281169116604051600160a060020a039485168152928416602084015290831660408084019190915292166060820152608001905180910390a15b5b5050565b60025481565b600854600160a060020a031681565b600454600160a060020a031681565b600082820183811015610e3157fe5b8091505b50929150505600a165627a7a723058201bbcf55eb8625aa78747a7afe52641b5dbe1fa7f61d696d4c8454893aea27d080029

Swarm Source

bzzr://8ad1db4a770d3e60e51bb131b64d702c80009278ee087f198cfa18ce2d22446a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.