Token DSYS

 

Overview [ERC-20]

Max Total Supply:
10,000,000,000 DSYS

Holders:
166

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Market

Volume (24H):$0.00
Market Capitalization:$0.00
Circulating Supply:0.00 DSYS
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DSYS

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-04-15
*/

pragma solidity 0.4.18;

// File: contracts/util/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    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;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    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;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

// File: contracts/token/ERC20.sol

/**
 *   @title ERC20
 *   @dev Standart ERC20 token interface
 */
contract ERC20 {
    mapping(address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;
    function balanceOf(address _who) public view returns (uint256);
    function transfer(address _to, uint256 _value) public returns (bool);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
    function approve(address _spender, uint256 _value) public returns (bool);
    function allowance(address _owner, address _spender) public view returns (uint256);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

// File: contracts/token/DSYS.sol

contract DSYS is ERC20 {
    using SafeMath for uint256;
    
    address public admin;
    string public constant name = "DSYS";
    string public constant symbol = "DSYS";
    uint8 public constant decimals = 18;
    uint256 public totalSupply;


    mapping(address => bool) internal blacklist;
    event Burn(address indexed from, uint256 value);

    // Disables/enables token transfers, for migration to platform mainnet
    // true = Can not transfers
    // false = Can transfer
    bool public checkTokenLock = false;

    // Allows execution by the ico only
    modifier adminOnly {
        require(msg.sender == admin);
        _;
    }

    modifier transferable {
        require(msg.sender == admin || !checkTokenLock);
        _;
    }

    function DSYS(uint256 _initialSupply) public {
        balances[msg.sender] = _initialSupply.mul(1e18);
        totalSupply = _initialSupply.mul(1e18);
        admin = msg.sender;
    }

    
    // _block
    // True : Can not Transfer
    // false : Can Transfer
    function blockTransfer(bool _block) external adminOnly {
        checkTokenLock = _block;
    }


    // _inBlackList
    // True : Can not Transfer
    // false : Can Transfer
    function updateBlackList(address _addr, bool _inBlackList) external adminOnly{
        blacklist[_addr] = _inBlackList;
    }
    

    function isInBlackList(address _addr) public view returns(bool){
        return blacklist[_addr];
    }
    
    function balanceOf(address _who) public view returns(uint256) {
        return balances[_who];
    }

    function transfer(address _to, uint256 _amount) public transferable returns(bool) {
        require(_to != address(0));
        require(_to != address(this));
        require(_amount > 0);
        require(_amount <= balances[msg.sender]);
        require(blacklist[msg.sender] == false);
        require(blacklist[_to] == false);

        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) public transferable returns(bool) {
        require(_to != address(0));
        require(_to != address(this));
        require(_amount <= balances[_from]);
        require(_amount <= allowed[_from][msg.sender]);
        require(blacklist[_from] == false);
        require(blacklist[_to] == false);

        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) public returns(bool) {
        // reduce spender's allowance to 0 then set desired value after to avoid race condition
        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) public view returns(uint256) {
        return allowed[_owner][_spender];
    }
    
    function burnTokens(address _investor, uint256 _value) external adminOnly {
        require(_value > 0);
        require(balances[_investor] >= _value);
        totalSupply = totalSupply.sub(_value);
        balances[_investor] = balances[_investor].sub(_value);
        Burn(_investor, _value);
    }

}

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":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnTokens","outputs":[],"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":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"checkTokenLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isInBlackList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","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"},{"constant":false,"inputs":[{"name":"_block","type":"bool"}],"name":"blockTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_inBlackList","type":"bool"}],"name":"updateBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_initialSupply","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"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"}]

60606040526005805460ff19169055341561001957600080fd5b604051602080610b3a83398101604052808051915061004f905081670de0b6b3a76400006401000000006109f36100ab82021704565b600160a060020a03331660009081526020819052604090205561008781670de0b6b3a76400006401000000006109f36100ab82021704565b6003555060028054600160a060020a03191633600160a060020a03161790556100e1565b6000808315156100be57600091506100da565b508282028284828115156100ce57fe5b04146100d657fe5b8091505b5092915050565b610a4a806100f06000396000f3006060604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b3146101695780630d1118ce1461019f57806318160ddd146101c357806323b872dd146101e8578063313ce567146102105780636f4b9ae71461023957806370a082311461024c57806370b2973e1461026b57806395d89b41146100df578063a9059cbb1461028a578063dd62ed3e146102ac578063e074d6a9146102d1578063f851a440146102e9578063fc2eb88914610318575b600080fd5b34156100ea57600080fd5b6100f261033c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012e578082015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017457600080fd5b61018b600160a060020a0360043516602435610373565b604051901515815260200160405180910390f35b34156101aa57600080fd5b6101c1600160a060020a0360043516602435610419565b005b34156101ce57600080fd5b6101d66104fc565b60405190815260200160405180910390f35b34156101f357600080fd5b61018b600160a060020a0360043581169060243516604435610502565b341561021b57600080fd5b61022361071a565b60405160ff909116815260200160405180910390f35b341561024457600080fd5b61018b61071f565b341561025757600080fd5b6101d6600160a060020a0360043516610728565b341561027657600080fd5b61018b600160a060020a0360043516610743565b341561029557600080fd5b61018b600160a060020a0360043516602435610761565b34156102b757600080fd5b6101d6600160a060020a0360043581169060243516610919565b34156102dc57600080fd5b6101c16004351515610944565b34156102f457600080fd5b6102fc610972565b604051600160a060020a03909116815260200160405180910390f35b341561032357600080fd5b6101c1600160a060020a03600435166024351515610981565b60408051908101604052600481527f4453595300000000000000000000000000000000000000000000000000000000602082015281565b60008115806103a55750600160a060020a03338116600090815260016020908152604080832093871683529290522054155b15156103b057600080fd5b600160a060020a03338116600081815260016020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025433600160a060020a0390811691161461043457600080fd5b6000811161044157600080fd5b600160a060020a0382166000908152602081905260409020548190101561046757600080fd5b60035461047a908263ffffffff6109c716565b600355600160a060020a0382166000908152602081905260409020546104a6908263ffffffff6109c716565b600160a060020a0383166000818152602081905260409081902092909255907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59083905190815260200160405180910390a25050565b60035481565b60025460009033600160a060020a0390811691161480610525575060055460ff16155b151561053057600080fd5b600160a060020a038316151561054557600080fd5b30600160a060020a031683600160a060020a03161415151561056657600080fd5b600160a060020a03841660009081526020819052604090205482111561058b57600080fd5b600160a060020a03808516600090815260016020908152604080832033909416835292905220548211156105be57600080fd5b600160a060020a03841660009081526004602052604090205460ff16156105e457600080fd5b600160a060020a03831660009081526004602052604090205460ff161561060a57600080fd5b600160a060020a038416600090815260208190526040902054610633908363ffffffff6109c716565b600160a060020a038086166000908152602081815260408083209490945560018152838220339093168252919091522054610674908363ffffffff6109c716565b600160a060020a038086166000908152600160209081526040808320338516845282528083209490945591861681529081905220546106b9908363ffffffff6109d916565b600160a060020a03808516600081815260208190526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b601281565b60055460ff1681565b600160a060020a031660009081526020819052604090205490565b600160a060020a031660009081526004602052604090205460ff1690565b60025460009033600160a060020a0390811691161480610784575060055460ff16155b151561078f57600080fd5b600160a060020a03831615156107a457600080fd5b30600160a060020a031683600160a060020a0316141515156107c557600080fd5b600082116107d257600080fd5b600160a060020a0333166000908152602081905260409020548211156107f757600080fd5b600160a060020a03331660009081526004602052604090205460ff161561081d57600080fd5b600160a060020a03831660009081526004602052604090205460ff161561084357600080fd5b600160a060020a03331660009081526020819052604090205461086c908363ffffffff6109c716565b600160a060020a0333811660009081526020819052604080822093909355908516815220546108a1908363ffffffff6109d916565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60025433600160a060020a0390811691161461095f57600080fd5b6005805460ff1916911515919091179055565b600254600160a060020a031681565b60025433600160a060020a0390811691161461099c57600080fd5b600160a060020a03919091166000908152600460205260409020805460ff1916911515919091179055565b6000828211156109d357fe5b50900390565b6000828201838110156109e857fe5b8091505b5092915050565b600080831515610a0657600091506109ec565b50828202828482811515610a1657fe5b04146109e857fe00a165627a7a7230582097fd60aad1173c64bfe4a425076c65ea600ddc7823754264f0ad551b09f5135d002900000000000000000000000000000000000000000000000000000002540be400

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

00000000000000000000000000000000000000000000000000000002540be400

-----Decoded View---------------
Arg [0] : _initialSupply (uint256): 10000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000002540be400


Swarm Source

bzzr://97fd60aad1173c64bfe4a425076c65ea600ddc7823754264f0ad551b09f5135d

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.