ETH Price: $2,715.64 (+2.91%)

Contract

0x9697C90f963486409Ae57c13DB9c74C5CaE3fb29
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer51305752018-02-21 14:03:452546 days ago1519221825IN
0x9697C90f...5CaE3fb29
0 ETH0.0004468821
Transfer51272212018-02-21 0:05:392547 days ago1519171539IN
0x9697C90f...5CaE3fb29
0 ETH0.0004468821
Transfer51272162018-02-21 0:03:242547 days ago1519171404IN
0x9697C90f...5CaE3fb29
0 ETH0.00044121
Transfer45530862017-11-14 20:26:432645 days ago1510691203IN
0x9697C90f...5CaE3fb29
0.030566 ETH0.000319215
Transfer44477262017-10-28 21:09:342662 days ago1509224974IN
0x9697C90f...5CaE3fb29
1.91254011 ETH0.000425620
Transfer44449562017-10-28 10:34:392662 days ago1509186879IN
0x9697C90f...5CaE3fb29
0.01534812 ETH0.0004468821
Transfer44449222017-10-28 10:28:102662 days ago1509186490IN
0x9697C90f...5CaE3fb29
0.055099 ETH0.0004468821
Withdraw42911832017-09-19 13:08:272701 days ago1505826507IN
0x9697C90f...5CaE3fb29
0 ETH0.00003331
Transfer42311632017-09-02 17:45:012718 days ago1504374301IN
0x9697C90f...5CaE3fb29
0.006139 ETH0.0010521
Update Value42268082017-09-01 11:51:132719 days ago1504266673IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42266522017-09-01 10:51:062719 days ago1504263066IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42264942017-09-01 9:50:082719 days ago1504259408IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42263072017-09-01 8:39:422719 days ago1504255182IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Transfer42262312017-09-01 7:59:362719 days ago1504252776IN
0x9697C90f...5CaE3fb29
0.5 ETH0.002550
Update Value42261882017-09-01 7:44:372719 days ago1504251877IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42260422017-09-01 6:42:302719 days ago1504248150IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42258632017-09-01 5:29:012720 days ago1504243741IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42257032017-09-01 4:29:022720 days ago1504240142IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42255582017-09-01 3:28:562720 days ago1504236536IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42253622017-09-01 2:18:122720 days ago1504232292IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42252282017-09-01 1:20:482720 days ago1504228848IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42250802017-09-01 0:20:112720 days ago1504225211IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Transfer42250132017-08-31 23:51:592720 days ago1504223519IN
0x9697C90f...5CaE3fb29
0.36555251 ETH0.0009678933
Update Value42249042017-08-31 23:08:022720 days ago1504220882IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
Update Value42247562017-08-31 22:08:362720 days ago1504217316IN
0x9697C90f...5CaE3fb29
0 ETH0.000028481
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
42911832017-09-19 13:08:272701 days ago1505826507
0x9697C90f...5CaE3fb29
142.68515811 ETH
41410742017-08-10 17:10:472741 days ago1502385047
0x9697C90f...5CaE3fb29
1 wei
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PreIco

Compiler Version
v0.4.13+commit.fb4cb1a

Optimization Enabled:
Yes with 0 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-08-28
*/

pragma solidity ^0.4.13;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    owner = msg.sender;
  }


  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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

contract PreIco is Ownable {
    using SafeMath for uint;

    uint public decimals = 18;

    uint256 public initialSupply = 4000000 * 10 ** decimals;  // 4 milions XCC

    uint256 public remainingSupply = initialSupply;

    uint256 public tokenValue;  // value in wei

    address public updater;  // account in charge of updating the token value

    uint256 public startBlock;  // block number of contract deploy

    uint256 public endTime;  // seconds from 1970-01-01T00:00:00Z

    function PreIco(uint256 initialValue, address initialUpdater, uint256 end) {
        tokenValue = initialValue;
        updater = initialUpdater;
        startBlock = block.number;
        endTime = end;
    }

    event UpdateValue(uint256 newValue);

    function updateValue(uint256 newValue) {
        require(msg.sender == updater || msg.sender == owner);
        tokenValue = newValue;
        UpdateValue(newValue);
    }

    function updateUpdater(address newUpdater) onlyOwner {
        updater = newUpdater;
    }

    function updateEndTime(uint256 newEnd) onlyOwner {
        endTime = newEnd;
    }

    event Withdraw(address indexed to, uint value);

    function withdraw(address to, uint256 value) onlyOwner {
        to.transfer(value);
        Withdraw(to, value);
    }

    modifier beforeEndTime() {
        require(now < endTime);
        _;
    }

    event AssignToken(address indexed to, uint value);

    function () payable beforeEndTime {
        require(remainingSupply > 0);
        address sender = msg.sender;
        uint256 value = msg.value.mul(10 ** decimals).div(tokenValue);
        if (remainingSupply >= value) {
            AssignToken(sender, value);
            remainingSupply = remainingSupply.sub(value);
        } else {
            AssignToken(sender, remainingSupply);
            remainingSupply = 0;
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"tokenValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newValue","type":"uint256"}],"name":"updateValue","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newUpdater","type":"address"}],"name":"updateUpdater","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newEnd","type":"uint256"}],"name":"updateEndTime","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"remainingSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"updater","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"initialValue","type":"uint256"},{"name":"initialUpdater","type":"address"},{"name":"end","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newValue","type":"uint256"}],"name":"UpdateValue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"AssignToken","type":"event"}]

606060405260126001556a034f086f3b33b6840000006002819055600355341561002857600080fd5b6040516060806106a08339810160405280805191906020018051919060200180519150505b5b60008054600160a060020a03191633600160a060020a03161790555b600483905560058054600160a060020a031916600160a060020a0384161790554360065560078190555b5050505b6105f9806100a76000396000f300606060405236156100a95763ffffffff60e060020a6000350416631ec7e345811461018b578063313ce567146101b05780633197cbb6146101d5578063378dc3dc146101fa57806348cd4cb11461021f578063573c0bd314610244578063637af51c1461025c5780636ab3846b1461027d5780638da5cb5b14610295578063da0239a6146102c4578063df034cd0146102e9578063f2fde38b14610318578063f3fef3a314610339575b6101895b600080600754421015156100c057600080fd5b600354600090116100d057600080fd5b3391506100fd6004546100f1600154600a0a3461035d90919063ffffffff16565b9063ffffffff61038c16565b9050806003541015156101505781600160a060020a03166000805160206105ae8339815191528260405190815260200160405180910390a2600354610148908263ffffffff6103a816565b600355610183565b81600160a060020a03166000805160206105ae83398151915260035460405190815260200160405180910390a260006003555b5b5b5050565b005b341561019657600080fd5b61019e6103bf565b60405190815260200160405180910390f35b34156101bb57600080fd5b61019e6103c5565b60405190815260200160405180910390f35b34156101e057600080fd5b61019e6103cb565b60405190815260200160405180910390f35b341561020557600080fd5b61019e6103d1565b60405190815260200160405180910390f35b341561022a57600080fd5b61019e6103d7565b60405190815260200160405180910390f35b341561024f57600080fd5b6101896004356103dd565b005b341561026757600080fd5b610189600160a060020a036004351661044f565b005b341561028857600080fd5b61018960043561048a565b005b34156102a057600080fd5b6102a86104af565b604051600160a060020a03909116815260200160405180910390f35b34156102cf57600080fd5b61019e6104be565b60405190815260200160405180910390f35b34156102f457600080fd5b6102a86104c4565b604051600160a060020a03909116815260200160405180910390f35b341561032357600080fd5b610189600160a060020a03600435166104d3565b005b341561034457600080fd5b610189600160a060020a036004351660243561051e565b005b6000828202831580610379575082848281151561037657fe5b04145b151561038157fe5b8091505b5092915050565b600080828481151561039a57fe5b0490508091505b5092915050565b6000828211156103b457fe5b508082035b92915050565b60045481565b60015481565b60075481565b60025481565b60065481565b60055433600160a060020a0390811691161480610408575060005433600160a060020a039081169116145b151561041357600080fd5b60048190557f95b271809b8eaef8cde269cc1a8f9f19a80f05db399160fcf41bdf1b8bd8cad68160405190815260200160405180910390a15b50565b60005433600160a060020a0390811691161461046a57600080fd5b60058054600160a060020a031916600160a060020a0383161790555b5b50565b60005433600160a060020a039081169116146104a557600080fd5b60078190555b5b50565b600054600160a060020a031681565b60035481565b600554600160a060020a031681565b60005433600160a060020a039081169116146104ee57600080fd5b600160a060020a0381161561044c5760008054600160a060020a031916600160a060020a0383161790555b5b5b50565b60005433600160a060020a0390811691161461053957600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f19350505050151561056a57600080fd5b81600160a060020a03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405190815260200160405180910390a25b5b50505600e8a22ddb494a4ea14c661d82044cbb8c11bce0b25d86afc283e7866f220622c0a165627a7a723058204203f036d36f47e243b8cf9ff0cd35b6e5a6bf3f271924c4c4ac0000f0c772200029000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059a8a300

Deployed Bytecode

0x606060405236156100a95763ffffffff60e060020a6000350416631ec7e345811461018b578063313ce567146101b05780633197cbb6146101d5578063378dc3dc146101fa57806348cd4cb11461021f578063573c0bd314610244578063637af51c1461025c5780636ab3846b1461027d5780638da5cb5b14610295578063da0239a6146102c4578063df034cd0146102e9578063f2fde38b14610318578063f3fef3a314610339575b6101895b600080600754421015156100c057600080fd5b600354600090116100d057600080fd5b3391506100fd6004546100f1600154600a0a3461035d90919063ffffffff16565b9063ffffffff61038c16565b9050806003541015156101505781600160a060020a03166000805160206105ae8339815191528260405190815260200160405180910390a2600354610148908263ffffffff6103a816565b600355610183565b81600160a060020a03166000805160206105ae83398151915260035460405190815260200160405180910390a260006003555b5b5b5050565b005b341561019657600080fd5b61019e6103bf565b60405190815260200160405180910390f35b34156101bb57600080fd5b61019e6103c5565b60405190815260200160405180910390f35b34156101e057600080fd5b61019e6103cb565b60405190815260200160405180910390f35b341561020557600080fd5b61019e6103d1565b60405190815260200160405180910390f35b341561022a57600080fd5b61019e6103d7565b60405190815260200160405180910390f35b341561024f57600080fd5b6101896004356103dd565b005b341561026757600080fd5b610189600160a060020a036004351661044f565b005b341561028857600080fd5b61018960043561048a565b005b34156102a057600080fd5b6102a86104af565b604051600160a060020a03909116815260200160405180910390f35b34156102cf57600080fd5b61019e6104be565b60405190815260200160405180910390f35b34156102f457600080fd5b6102a86104c4565b604051600160a060020a03909116815260200160405180910390f35b341561032357600080fd5b610189600160a060020a03600435166104d3565b005b341561034457600080fd5b610189600160a060020a036004351660243561051e565b005b6000828202831580610379575082848281151561037657fe5b04145b151561038157fe5b8091505b5092915050565b600080828481151561039a57fe5b0490508091505b5092915050565b6000828211156103b457fe5b508082035b92915050565b60045481565b60015481565b60075481565b60025481565b60065481565b60055433600160a060020a0390811691161480610408575060005433600160a060020a039081169116145b151561041357600080fd5b60048190557f95b271809b8eaef8cde269cc1a8f9f19a80f05db399160fcf41bdf1b8bd8cad68160405190815260200160405180910390a15b50565b60005433600160a060020a0390811691161461046a57600080fd5b60058054600160a060020a031916600160a060020a0383161790555b5b50565b60005433600160a060020a039081169116146104a557600080fd5b60078190555b5b50565b600054600160a060020a031681565b60035481565b600554600160a060020a031681565b60005433600160a060020a039081169116146104ee57600080fd5b600160a060020a0381161561044c5760008054600160a060020a031916600160a060020a0383161790555b5b5b50565b60005433600160a060020a0390811691161461053957600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f19350505050151561056a57600080fd5b81600160a060020a03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405190815260200160405180910390a25b5b50505600e8a22ddb494a4ea14c661d82044cbb8c11bce0b25d86afc283e7866f220622c0a165627a7a723058204203f036d36f47e243b8cf9ff0cd35b6e5a6bf3f271924c4c4ac0000f0c772200029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059a8a300

-----Decoded View---------------
Arg [0] : initialValue (uint256): 0
Arg [1] : initialUpdater (address): 0x0000000000000000000000000000000000000000
Arg [2] : end (uint256): 1504224000

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000059a8a300


Swarm Source

bzzr://4203f036d36f47e243b8cf9ff0cd35b6e5a6bf3f271924c4c4ac0000f0c77220

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.