ETH Price: $2,665.35 (+2.12%)

Contract

0xbD8d47598B811d8388d41c538570a7a83ee8E330
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer49988722018-01-30 8:59:252570 days ago1517302765IN
0xbD8d4759...83ee8E330
1.7 ETH0.0027013550
Transfer49988632018-01-30 8:57:412570 days ago1517302661IN
0xbD8d4759...83ee8E330
0.1 ETH0.0034513550
Transfer49945432018-01-29 15:23:272571 days ago1517239407IN
0xbD8d4759...83ee8E330
0.05 ETH0.0034513550
Transfer49902712018-01-28 22:00:352571 days ago1517176835IN
0xbD8d4759...83ee8E330
0.04 ETH0.0034513550
Transfer49858212018-01-28 4:21:112572 days ago1517113271IN
0xbD8d4759...83ee8E330
0.04516 ETH0.0013805420
Transfer49646212018-01-24 14:51:392576 days ago1516805499IN
0xbD8d4759...83ee8E330
0.01 ETH0.003445141
Set Token49645522018-01-24 14:32:292576 days ago1516804349IN
0xbD8d4759...83ee8E330
0 ETH0.0017864541

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
49988722018-01-30 8:59:252570 days ago1517302765
0xbD8d4759...83ee8E330
1.7 ETH
49988632018-01-30 8:57:412570 days ago1517302661
0xbD8d4759...83ee8E330
0.1 ETH
49945432018-01-29 15:23:272571 days ago1517239407
0xbD8d4759...83ee8E330
0.05 ETH
49902712018-01-28 22:00:352571 days ago1517176835
0xbD8d4759...83ee8E330
0.04 ETH
49858212018-01-28 4:21:112572 days ago1517113271
0xbD8d4759...83ee8E330
0.04516 ETH
49646212018-01-24 14:51:392576 days ago1516805499
0xbD8d4759...83ee8E330
0.01 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ClickableTV

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-01-24
*/

pragma solidity ^0.4.18;



library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    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 c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

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() public {
        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) public onlyOwner {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract ClickableTVToken {
    function balanceOf(address _owner) public view returns (uint256 balance);

    function transfer(address _to, uint256 _value) public returns (bool);
}

contract ClickableTV is Ownable {
    using SafeMath for uint256;

    // The token being sold
    ClickableTVToken public token;

    // start and end timestamps where investments are allowed (both inclusive)
    //  uint256 public startTime = block.timestamp; // for test. Time of deploy smart-contract
    //    uint256 public startTime = 1522540800; // for production. Timestamp 01 Apr 2018 00:00:00 UTC
    uint256 public presaleStart = 1516492800; // Sunday, 21-Jan-18 00:00:00 UTC
    uint256 public presaleEnd = 1519862399; // Wednesday, 28-Feb-18 23:59:59 UTC
    uint256 public saleStart = 1519862400; // Thursday, 01-Mar-18 00:00:00 UTC
    uint256 public saleEnd = 1527811199; // Thursday, 31-May-18 23:59:59 UTC

    // address where funds are collected
    address public wallet;

    // ICO Token Price – 1 CKTV = .001 ETH
    uint256 public rate = 1000;

    // amount of raised money in wei
    uint256 public weiRaised;

    function ClickableTV() public {
        wallet = msg.sender;
    }

    function setToken(ClickableTVToken _token) public onlyOwner {
        token = _token;
    }

    // By default wallet == owner
    function setWallet(address _wallet) public onlyOwner {
        wallet = _wallet;
    }

    function tokenWeiToSale() public view returns (uint256) {
        return token.balanceOf(this);
    }

    function transfer(address _to, uint256 _value) public onlyOwner returns (bool){
        assert(tokenWeiToSale() >= _value);
        token.transfer(_to, _value);
    }


    // fallback function can be used to buy tokens
    function() external payable {
        buyTokens(msg.sender);
    }

    /**
  * 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);

    // low level token purchase function
    function buyTokens(address beneficiary) public payable {
        require(beneficiary != address(0));
        require(validPurchase());

        uint256 weiAmount = msg.value;

        // calculate token amount to be created
        uint256 tokens = weiAmount.mul(rate);
        // 25% discount of token price for the first six weeks during pre-sale
        if (block.timestamp < presaleEnd) tokens = tokens.mul(100).div(75);

        // update state
        weiRaised = weiRaised.add(weiAmount);

        token.transfer(beneficiary, tokens);
        TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);

        forwardFunds();
    }

    // send ether to the fund collection wallet
    // override to create custom fund forwarding mechanisms
    function forwardFunds() internal {
        wallet.transfer(msg.value);
    }

    // @return true if the transaction can buy tokens
    function validPurchase() internal view returns (bool) {
        bool presalePeriod = now >= presaleStart && now <= presaleEnd;
        bool salePeriod = now >= saleStart && now <= saleEnd;
        bool nonZeroPurchase = msg.value != 0;
        return (presalePeriod || salePeriod) && nonZeroPurchase;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"setToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"presaleEnd","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":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenWeiToSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saleEnd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"setWallet","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":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052635a63d800600255635a97427f600355635a974280600455635b108c7f6005556103e8600755341561003557600080fd5b60008054600160a060020a033316600160a060020a031991821681179092556006805490911690911790556107748061006f6000396000f3006060604052600436106100c15763ffffffff60e060020a600035041663144fa6d781146100cc578063229f3e29146100eb5780632c4e722e146101105780634042b66f14610123578063521eb273146101365780638da5cb5b146101655780638ed20fa014610178578063a9059cbb1461018b578063ab0bcc41146101c1578063c10b9358146101d4578063de8801e5146101e7578063deaa59df146101fa578063ec8ac4d814610219578063f2fde38b1461022d578063fc0c546a1461024c575b6100ca3361025f565b005b34156100d757600080fd5b6100ca600160a060020a03600435166103be565b34156100f657600080fd5b6100fe610408565b60405190815260200160405180910390f35b341561011b57600080fd5b6100fe61040e565b341561012e57600080fd5b6100fe610414565b341561014157600080fd5b61014961041a565b604051600160a060020a03909116815260200160405180910390f35b341561017057600080fd5b610149610429565b341561018357600080fd5b6100fe610438565b341561019657600080fd5b6101ad600160a060020a03600435166024356104b2565b604051901515815260200160405180910390f35b34156101cc57600080fd5b6100fe610560565b34156101df57600080fd5b6100fe610566565b34156101f257600080fd5b6100fe61056c565b341561020557600080fd5b6100ca600160a060020a0360043516610572565b6100ca600160a060020a036004351661025f565b341561023857600080fd5b6100ca600160a060020a03600435166105bc565b341561025757600080fd5b610149610657565b600080600160a060020a038316151561027757600080fd5b61027f610666565b151561028a57600080fd5b6007543492506102a190839063ffffffff6106b616565b90506003544210156102d2576102cf604b6102c383606463ffffffff6106b616565b9063ffffffff6106ec16565b90505b6008546102e5908363ffffffff61070316565b600855600154600160a060020a031663a9059cbb848360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561034757600080fd5b6102c65a03f1151561035857600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a36103b9610712565b505050565b60005433600160a060020a039081169116146103d957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035481565b60075481565b60085481565b600654600160a060020a031681565b600054600160a060020a031681565b600154600090600160a060020a03166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561049357600080fd5b6102c65a03f115156104a457600080fd5b505050604051805191505090565b6000805433600160a060020a039081169116146104ce57600080fd5b816104d7610438565b10156104df57fe5b600154600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053e57600080fd5b6102c65a03f1151561054f57600080fd5b505050604051805190505092915050565b60045481565b60055481565b60025481565b60005433600160a060020a0390811691161461058d57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a039081169116146105d757600080fd5b600160a060020a03811615156105ec57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b600080600080600254421015801561068057506003544211155b9250600454421015801561069657506005544211155b91505034151582806106a55750815b80156106ae5750805b935050505090565b6000808315156106c957600091506106e5565b508282028284828115156106d957fe5b04146106e157fe5b8091505b5092915050565b60008082848115156106fa57fe5b04949350505050565b6000828201838110156106e157fe5b600654600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561074657600080fd5b5600a165627a7a7230582023df32360b765c93c5364c1676be1a1671cf6b2f1b22c4e3e170ec36faa31b210029

Deployed Bytecode

0x6060604052600436106100c15763ffffffff60e060020a600035041663144fa6d781146100cc578063229f3e29146100eb5780632c4e722e146101105780634042b66f14610123578063521eb273146101365780638da5cb5b146101655780638ed20fa014610178578063a9059cbb1461018b578063ab0bcc41146101c1578063c10b9358146101d4578063de8801e5146101e7578063deaa59df146101fa578063ec8ac4d814610219578063f2fde38b1461022d578063fc0c546a1461024c575b6100ca3361025f565b005b34156100d757600080fd5b6100ca600160a060020a03600435166103be565b34156100f657600080fd5b6100fe610408565b60405190815260200160405180910390f35b341561011b57600080fd5b6100fe61040e565b341561012e57600080fd5b6100fe610414565b341561014157600080fd5b61014961041a565b604051600160a060020a03909116815260200160405180910390f35b341561017057600080fd5b610149610429565b341561018357600080fd5b6100fe610438565b341561019657600080fd5b6101ad600160a060020a03600435166024356104b2565b604051901515815260200160405180910390f35b34156101cc57600080fd5b6100fe610560565b34156101df57600080fd5b6100fe610566565b34156101f257600080fd5b6100fe61056c565b341561020557600080fd5b6100ca600160a060020a0360043516610572565b6100ca600160a060020a036004351661025f565b341561023857600080fd5b6100ca600160a060020a03600435166105bc565b341561025757600080fd5b610149610657565b600080600160a060020a038316151561027757600080fd5b61027f610666565b151561028a57600080fd5b6007543492506102a190839063ffffffff6106b616565b90506003544210156102d2576102cf604b6102c383606463ffffffff6106b616565b9063ffffffff6106ec16565b90505b6008546102e5908363ffffffff61070316565b600855600154600160a060020a031663a9059cbb848360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561034757600080fd5b6102c65a03f1151561035857600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a36103b9610712565b505050565b60005433600160a060020a039081169116146103d957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035481565b60075481565b60085481565b600654600160a060020a031681565b600054600160a060020a031681565b600154600090600160a060020a03166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561049357600080fd5b6102c65a03f115156104a457600080fd5b505050604051805191505090565b6000805433600160a060020a039081169116146104ce57600080fd5b816104d7610438565b10156104df57fe5b600154600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053e57600080fd5b6102c65a03f1151561054f57600080fd5b505050604051805190505092915050565b60045481565b60055481565b60025481565b60005433600160a060020a0390811691161461058d57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a039081169116146105d757600080fd5b600160a060020a03811615156105ec57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b600080600080600254421015801561068057506003544211155b9250600454421015801561069657506005544211155b91505034151582806106a55750815b80156106ae5750805b935050505090565b6000808315156106c957600091506106e5565b508282028284828115156106d957fe5b04146106e157fe5b8091505b5092915050565b60008082848115156106fa57fe5b04949350505050565b6000828201838110156106e157fe5b600654600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561074657600080fd5b5600a165627a7a7230582023df32360b765c93c5364c1676be1a1671cf6b2f1b22c4e3e170ec36faa31b210029

Swarm Source

bzzr://23df32360b765c93c5364c1676be1a1671cf6b2f1b22c4e3e170ec36faa31b21

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  ]
[ 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.