ETH Price: $2,731.01 (+5.46%)

Contract

0x5C679a0a79D495aFFe049c02483519D51e37F32b
 

Overview

ETH Balance

0.15 ETH

Eth Value

$409.65 (@ $2,731.01/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Tokens118399672021-02-12 5:43:391461 days ago1613108619IN
0x5C679a0a...51e37F32b
0.0011 ETH0.01135957471
Finalize118399672021-02-12 5:43:391461 days ago1613108619IN
0x5C679a0a...51e37F32b
0 ETH0.0098893427.35000153
Approve115870652021-01-04 9:03:451500 days ago1609751025IN
0x5C679a0a...51e37F32b
0 ETH0.00773696352
Finalize115869432021-01-04 8:33:111500 days ago1609749191IN
0x5C679a0a...51e37F32b
0 ETH0.00718156290
Transfer86028362019-09-23 2:54:421970 days ago1569207282IN
0x5C679a0a...51e37F32b
0 ETH0.0003725910
Transfer86028332019-09-23 2:54:241970 days ago1569207264IN
0x5C679a0a...51e37F32b
0 ETH0.0003732310
Transfer86028242019-09-23 2:52:141970 days ago1569207134IN
0x5C679a0a...51e37F32b
0 ETH0.0005232310
Transfer86028192019-09-23 2:50:581970 days ago1569207058IN
0x5C679a0a...51e37F32b
0 ETH0.0005421810.375
Transfer84070872019-08-23 14:41:022000 days ago1566571262IN
0x5C679a0a...51e37F32b
0 ETH0.0007207219.27734375
Transfer81850002019-07-20 3:03:442035 days ago1563591824IN
0x5C679a0a...51e37F32b
0 ETH0.0003738710
Transfer81349102019-07-12 7:15:322042 days ago1562915732IN
0x5C679a0a...51e37F32b
0 ETH0.000024621.1
Transfer81346902019-07-12 6:25:522042 days ago1562912752IN
0x5C679a0a...51e37F32b
0 ETH0.000024621.1
Transfer81291752019-07-11 9:44:422043 days ago1562838282IN
0x5C679a0a...51e37F32b
0 ETH0.000024411.1
Transfer81290732019-07-11 9:18:072043 days ago1562836687IN
0x5C679a0a...51e37F32b
0 ETH0.00002421.1
Transfer81290402019-07-11 9:09:552043 days ago1562836195IN
0x5C679a0a...51e37F32b
0 ETH0.000041051.1
Approve81118162019-07-08 17:01:022046 days ago1562605262IN
0x5C679a0a...51e37F32b
0 ETH0.0004721110
Transfer81117812019-07-08 16:54:442046 days ago1562604884IN
0x5C679a0a...51e37F32b
0 ETH0.000052251
Approve80397242019-06-27 11:30:362057 days ago1561635036IN
0x5C679a0a...51e37F32b
0 ETH0.000377688
Transfer80395842019-06-27 11:02:282057 days ago1561633348IN
0x5C679a0a...51e37F32b
0 ETH0.000366267
Transfer80395622019-06-27 10:57:282057 days ago1561633048IN
0x5C679a0a...51e37F32b
0 ETH0.0001967
Approve80363192019-06-26 22:44:352058 days ago1561589075IN
0x5C679a0a...51e37F32b
0 ETH0.000094422
Transfer80340832019-06-26 14:18:152058 days ago1561558695IN
0x5C679a0a...51e37F32b
0 ETH0.000392427.5
Transfer80336572019-06-26 12:43:552058 days ago1561553035IN
0x5C679a0a...51e37F32b
0 ETH0.000041051.1
Approve80244772019-06-25 2:24:482060 days ago1561429488IN
0x5C679a0a...51e37F32b
0 ETH0.000188844
Transfer79324812019-06-10 17:20:162074 days ago1560187216IN
0x5C679a0a...51e37F32b
0 ETH0.0010451820
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Contract Name:
customIcoToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

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

pragma solidity 0.4.24;

library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    return a / b;
  }

  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 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

contract customIcoToken{
    using SafeMath for uint256;

    /* Events */
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event LogRefund(address indexed _to, uint256 _value);
    event CreateToken(address indexed _to, uint256 _value);

    // metadata
    string public name;
    string public symbol;
    uint256 public decimals;

    // contracts
    address public ethFundDeposit;      // deposit address for ETH
    address public tokenFundDeposit;

    // crowdsale parameters
    bool public isFinalized;              // switched to true in operational state
    uint256 public fundingStartBlock;
    uint256 public fundingEndBlock;
    uint256 public tokenFund;
    uint256 public tokenExchangeRate;
    uint256 public tokenCreationCap;
    uint256 public tokenCreationMin;

    /* Storage */
    mapping(address => uint256) balances;
    mapping (address => mapping (address => uint256)) internal allowed;

    uint256 public totalSupply;

    /* Getters */
    function totalSupply() public view returns (uint256) {
        return totalSupply;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }

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

    /* Methods */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    emit Transfer(_from, _to, _value);
    return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
  }

    function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
    }

    /* Crowdsale methods */

    /// @dev Accepts ether and creates new tokens.
    function createTokens() payable external {
      require (isFinalized == false);
      require(block.number > fundingStartBlock);
      require(block.number < fundingEndBlock);
      require(msg.value > 0);

      uint256 tokens = msg.value.mul(tokenExchangeRate);
      uint256 checkedSupply = totalSupply.add(tokens);

      // return money if something goes wrong
      require(tokenCreationCap >= checkedSupply); // odd fractions won't be found

      totalSupply = checkedSupply;
      balances[msg.sender] += tokens;  // safeAdd not needed; bad semantics to use here
      emit CreateToken(msg.sender, tokens);  // logs token creation
    }

    /// @dev Ends the funding period and sends the ETH home
    function finalize() external {
      require(isFinalized == false);
      require(msg.sender == ethFundDeposit);
      require(totalSupply > tokenCreationMin); // have to sell minimum to move to operational
      require(block.number > fundingEndBlock || totalSupply == tokenCreationCap);
      // move to operational
      isFinalized = true;
      assert(ethFundDeposit.send(address(this).balance)); // send the eth
    }

    /// @dev Allows contributors to recover their ether in the case of a failed funding campaign.
    function refund() external {
      require(isFinalized == false);                       // prevents refund if operational
      require(block.number > fundingEndBlock); // prevents refund until sale period is over
      require(totalSupply < tokenCreationMin); // no refunds if we sold enough
      require(msg.sender != tokenFundDeposit);    // team not entitled to a refund
      uint256 tokenVal = balances[msg.sender];
      require(tokenVal > 0);
      balances[msg.sender] = 0;
      totalSupply = totalSupply.sub(tokenVal); // extra safe
      uint256 ethVal = tokenVal / tokenExchangeRate; // should be safe; previous throws covers edges
      emit LogRefund(msg.sender, ethVal); // log it
      assert(msg.sender.send(ethVal)); // if you're using a contract; make sure it works with .send gas limits
    }

    constructor(
        string _name,
        string _symbol,
        uint8 _decimals,
        address _ethFundDeposit,
        address _tokenFundDeposit,
        uint256 _tokenFund,
        uint256 _tokenExchangeRate,
        uint256 _tokenCreationCap,
        uint256 _tokenCreationMin,
        uint256 _fundingStartBlock,
        uint256 _fundingEndBlock) public
    {
      name = _name;
      symbol = _symbol;
      decimals = _decimals;
      isFinalized = false;                   //controls pre through crowdsale state
      ethFundDeposit = _ethFundDeposit;
      tokenFundDeposit = _tokenFundDeposit;
      tokenFund = _tokenFund*10**decimals;
      tokenExchangeRate = _tokenExchangeRate;
      tokenCreationCap = _tokenCreationCap*10**decimals;
      tokenCreationMin = _tokenCreationMin*10**decimals;
      fundingStartBlock = _fundingStartBlock;
      fundingEndBlock = _fundingEndBlock;
      totalSupply = tokenFund;
      balances[tokenFundDeposit] = tokenFund;
      emit CreateToken(tokenFundDeposit, tokenFund);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenCreationCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingEndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenFundDeposit","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethFundDeposit","outputs":[{"name":"","type":"address"}],"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":false,"inputs":[],"name":"createTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tokenCreationMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_ethFundDeposit","type":"address"},{"name":"_tokenFundDeposit","type":"address"},{"name":"_tokenFund","type":"uint256"},{"name":"_tokenExchangeRate","type":"uint256"},{"name":"_tokenCreationCap","type":"uint256"},{"name":"_tokenCreationMin","type":"uint256"},{"name":"_fundingStartBlock","type":"uint256"},{"name":"_fundingEndBlock","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"LogRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"CreateToken","type":"event"}]

Deployed Bytecode

0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd14610220578063313ce5671461024a5780633d2d82631461025f5780634172d080146102745780634bb278f314610289578063590e1ae3146102a057806366188463146102b55780636f7920fd146102d957806370a08231146102ee5780638d4e40831461030f57806391b43d131461032457806395d89b41146103395780639a0750d51461034e578063a81c3bdf1461037f578063a9059cbb14610394578063b4427263146103b8578063c039daf6146103c0578063d648a647146103d5578063d73dd623146103ea578063dd62ed3e1461040e575b600080fd5b34801561014357600080fd5b5061014c610435565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a03600435166024356104c3565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e61052a565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a0360043581169060243516604435610530565b34801561025657600080fd5b5061020e6106a9565b34801561026b57600080fd5b5061020e6106af565b34801561028057600080fd5b5061020e6106b5565b34801561029557600080fd5b5061029e6106bb565b005b3480156102ac57600080fd5b5061029e61076e565b3480156102c157600080fd5b506101e5600160a060020a036004351660243561087c565b3480156102e557600080fd5b5061020e61096c565b3480156102fa57600080fd5b5061020e600160a060020a0360043516610972565b34801561031b57600080fd5b506101e561098d565b34801561033057600080fd5b5061020e61099d565b34801561034557600080fd5b5061014c6109a3565b34801561035a57600080fd5b506103636109fd565b60408051600160a060020a039092168252519081900360200190f35b34801561038b57600080fd5b50610363610a0c565b3480156103a057600080fd5b506101e5600160a060020a0360043516602435610a1b565b61029e610afe565b3480156103cc57600080fd5b5061020e610bd3565b3480156103e157600080fd5b5061020e610bd9565b3480156103f657600080fd5b506101e5600160a060020a0360043516602435610bdf565b34801561041a57600080fd5b5061020e600160a060020a0360043581169060243516610c78565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104bb5780601f10610490576101008083540402835291602001916104bb565b820191906000526020600020905b81548152906001019060200180831161049e57829003601f168201915b505050505081565b336000818152600c60209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600d5490565b6000600160a060020a038316151561054757600080fd5b600160a060020a0384166000908152600b602052604090205482111561056c57600080fd5b600160a060020a0384166000908152600c6020908152604080832033845290915290205482111561059c57600080fd5b600160a060020a0384166000908152600b60205260409020546105c5908363ffffffff610ca316565b600160a060020a038086166000908152600b602052604080822093909355908516815220546105fa908363ffffffff610cb516565b600160a060020a038085166000908152600b60209081526040808320949094559187168152600c8252828120338252909152205461063e908363ffffffff610ca316565b600160a060020a038086166000818152600c6020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b60025481565b60075481565b60085481565b60045460a060020a900460ff16156106d257600080fd5b600354600160a060020a031633146106e957600080fd5b600a54600d54116106f957600080fd5b60065443118061070c5750600954600d54145b151561071757600080fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055600354604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050151561076c57fe5b565b600454600090819060a060020a900460ff161561078a57600080fd5b600654431161079857600080fd5b600a54600d54106107a857600080fd5b600454600160a060020a03163314156107c057600080fd5b336000908152600b6020526040812054925082116107dd57600080fd5b336000908152600b6020526040812055600d54610800908363ffffffff610ca316565b600d556008548281151561081057fe5b04905033600160a060020a03167fb6c0eca8138e097d71e2dd31e19a1266487f0553f170b7260ffe68bcbe9ff8a7826040518082815260200191505060405180910390a2604051339082156108fc029083906000818181858888f19350505050151561087857fe5b5050565b336000908152600c60209081526040808320600160a060020a0386168452909152812054808311156108d157336000908152600c60209081526040808320600160a060020a0388168452909152812055610906565b6108e1818463ffffffff610ca316565b336000908152600c60209081526040808320600160a060020a03891684529091529020555b336000818152600c60209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60095481565b600160a060020a03166000908152600b602052604090205490565b60045460a060020a900460ff1681565b60065481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104bb5780601f10610490576101008083540402835291602001916104bb565b600454600160a060020a031681565b600354600160a060020a031681565b6000600160a060020a0383161515610a3257600080fd5b336000908152600b6020526040902054821115610a4e57600080fd5b336000908152600b6020526040902054610a6e908363ffffffff610ca316565b336000908152600b602052604080822092909255600160a060020a03851681522054610aa0908363ffffffff610cb516565b600160a060020a0384166000818152600b60209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600454600090819060a060020a900460ff1615610b1a57600080fd5b6005544311610b2857600080fd5b6006544310610b3657600080fd5b60003411610b4357600080fd5b600854610b5790349063ffffffff610cc216565b600d54909250610b6d908363ffffffff610cb516565b90508060095410151515610b8057600080fd5b600d819055336000818152600b6020908152604091829020805486019055815185815291517fb378e89b40ac5bbe0e2241b596fbe1adc3cf1fb7c982aa1b4560165cf264ee939281900390910190a25050565b600a5481565b60055481565b336000908152600c60209081526040808320600160a060020a0386168452909152812054610c13908363ffffffff610cb516565b336000818152600c60209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a039182166000908152600c6020908152604080832093909416825291909152205490565b600082821115610caf57fe5b50900390565b8181018281101561052457fe5b6000821515610cd357506000610524565b50818102818382811515610ce357fe5b041461052457fe00a165627a7a723058203539fcd7906779bebfa61dec4b6fa5bdfe2ec2b47d0e75d571daaa5b895f04320029

Swarm Source

bzzr://3539fcd7906779bebfa61dec4b6fa5bdfe2ec2b47d0e75d571daaa5b895f0432

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.