Token BMChain Token

 

Overview [ERC-20]

Max Total Supply:
91,907,666.568987036084933201 BMT

Holders:
2,016

Transfers:
-

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

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BMToken

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.16;

contract BMToken {
    string  public  name = "BMChain Token";
    string  public  symbol = "BMT";
    uint256  public  decimals = 18;

    uint256 _supply = 0;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _approvals;

    event Transfer( address indexed from, address indexed to, uint value);
    event Approval( address indexed owner, address indexed spender, uint value);

    address ico_contract;
    address public owner;

    function BMToken(){
        ico_contract = address(0x0);
        owner = msg.sender;
    }

    modifier isOwner()
    {
        assert(msg.sender == owner);
        _;
    }

    function changeOwner(address new_owner) isOwner
    {
        assert(new_owner!=address(0x0));
        assert(new_owner!=address(this));
        owner = new_owner;
    }

    function setICOContract(address new_address) isOwner
    {
        assert(ico_contract==address(0x0));
        assert(new_address!=address(0x0));
        assert(new_address!=address(this));
        ico_contract = new_address;
    }

    function add(uint256 x, uint256 y) constant internal returns (uint256 z) {
        assert((z = x + y) >= x);
    }

    function sub(uint256 x, uint256 y) constant internal returns (uint256 z) {
        assert((z = x - y) <= x);
    }

    function totalSupply() constant external returns (uint256) {
        return _supply;
    }

    function balanceOf(address src) constant external returns (uint256) {
        return _balances[src];
    }

    function allowance(address src, address where) constant external returns (uint256) {
        return _approvals[src][where];
    }

    function transfer(address where, uint amount) external returns (bool) {
        assert(where != address(this));
        assert(where != address(0));
        assert(_balances[msg.sender] >= amount);

        _balances[msg.sender] = sub(_balances[msg.sender], amount);
        _balances[where] = add(_balances[where], amount);

        Transfer(msg.sender, where, amount);

        return true;
    }

    function transferFrom(address src, address where, uint amount) external returns (bool) {
        assert(where != address(this));
        assert(where != address(0));
        assert(_balances[src] >= amount);
        assert(_approvals[src][msg.sender] >= amount);

        _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], amount);
        _balances[src] = sub(_balances[src], amount);
        _balances[where] = add(_balances[where], amount);

        Transfer(src, where, amount);

        return true;
    }

    function approve(address where, uint256 amount) external returns (bool) {
        assert(where != address(this));
        assert(where != address(0));
        _approvals[msg.sender][where] = amount;

        Approval(msg.sender, where, amount);

        return true;
    }

    function mintTokens(address holder, uint256 amount) external
    {
        assert(msg.sender == ico_contract);
        _balances[holder] = add(_balances[holder], amount);
        _supply = add(_supply, amount);
        Transfer(address(0x0), holder, amount);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"where","type":"address"},{"name":"amount","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":"src","type":"address"},{"name":"where","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_address","type":"address"}],"name":"setICOContract","outputs":[],"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":"src","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"new_owner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"where","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"where","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"amount","type":"uint256"}],"name":"mintTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

606060405260408051908101604052600d81527f424d436861696e20546f6b656e000000000000000000000000000000000000006020820152600090805161004b9291602001906100d7565b5060408051908101604052600381527f424d540000000000000000000000000000000000000000000000000000000000602082015260019080516100939291602001906100d7565b506012600255600060035534156100a957600080fd5b5b60068054600160a060020a031990811690915560078054909116600160a060020a0333161790555b610177565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011857805160ff1916838001178555610145565b82800160010185558215610145579182015b8281111561014557825182559160200191906001019061012a565b5b50610152929150610156565b5090565b61017491905b80821115610152576000815560010161015c565b5090565b90565b610a97806101866000396000f300606060405236156100c25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100c7578063095ea7b31461015257806318160ddd1461018857806323b872dd146101ad5780632e0d2a00146101e9578063313ce5671461020a57806370a082311461022f5780638da5cb5b1461026057806395d89b411461028f578063a6f9dae11461031a578063a9059cbb1461033b578063dd62ed3e14610371578063f0dda65c146103a8575b600080fd5b34156100d257600080fd5b6100da6103cc565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101175780820151818401525b6020016100fe565b50505050905090810190601f1680156101445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015d57600080fd5b610174600160a060020a036004351660243561046a565b604051901515815260200160405180910390f35b341561019357600080fd5b61019b610506565b60405190815260200160405180910390f35b34156101b857600080fd5b610174600160a060020a036004358116906024351660443561050d565b604051901515815260200160405180910390f35b34156101f457600080fd5b610208600160a060020a0360043516610696565b005b341561021557600080fd5b61019b61071e565b60405190815260200160405180910390f35b341561023a57600080fd5b61019b600160a060020a0360043516610724565b60405190815260200160405180910390f35b341561026b57600080fd5b610273610743565b604051600160a060020a03909116815260200160405180910390f35b341561029a57600080fd5b6100da610752565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101175780820151818401525b6020016100fe565b50505050905090810190601f1680156101445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561032557600080fd5b610208600160a060020a03600435166107f0565b005b341561034657600080fd5b610174600160a060020a0360043516602435610865565b604051901515815260200160405180910390f35b341561037c57600080fd5b61019b600160a060020a036004358116906024351661096e565b60405190815260200160405180910390f35b34156103b357600080fd5b610208600160a060020a036004351660243561099b565b005b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104625780601f1061043757610100808354040283529160200191610462565b820191906000526020600020905b81548152906001019060200180831161044557829003601f168201915b505050505081565b600030600160a060020a031683600160a060020a03161415151561048a57fe5b600160a060020a038316151561049c57fe5b600160a060020a03338116600081815260056020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6003545b90565b600030600160a060020a031683600160a060020a03161415151561052d57fe5b600160a060020a038316151561053f57fe5b600160a060020a0384166000908152600460205260409020548290101561056257fe5b600160a060020a03808516600090815260056020908152604080832033909416835292905220548290101561059357fe5b600160a060020a03808516600090815260056020908152604080832033909416835292905220546105c49083610a43565b600160a060020a0380861660008181526005602090815260408083203390951683529381528382209490945590815260049092529020546106059083610a43565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106349083610a57565b600160a060020a03808516600081815260046020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b9392505050565b60075433600160a060020a039081169116146106ae57fe5b600654600160a060020a0316156106c157fe5b600160a060020a03811615156106d357fe5b30600160a060020a031681600160a060020a0316141515156106f157fe5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60025481565b600160a060020a0381166000908152600460205260409020545b919050565b600754600160a060020a031681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104625780601f1061043757610100808354040283529160200191610462565b820191906000526020600020905b81548152906001019060200180831161044557829003601f168201915b505050505081565b60075433600160a060020a0390811691161461080857fe5b600160a060020a038116151561081a57fe5b30600160a060020a031681600160a060020a03161415151561083857fe5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600030600160a060020a031683600160a060020a03161415151561088557fe5b600160a060020a038316151561089757fe5b600160a060020a033316600090815260046020526040902054829010156108ba57fe5b600160a060020a0333166000908152600460205260409020546108dd9083610a43565b600160a060020a03338116600090815260046020526040808220939093559085168152205461090c9083610a57565b600160a060020a0380851660008181526004602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600160a060020a038083166000908152600560209081526040808320938516835292905220545b92915050565b60065433600160a060020a039081169116146109b357fe5b600160a060020a0382166000908152600460205260409020546109d69082610a57565b600160a060020a0383166000908152600460205260409020556003546109fc9082610a57565b600355600160a060020a03821660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5050565b8082038281111561050057fe5b5b92915050565b8082018281101561050057fe5b5b929150505600a165627a7a723058203e9b58d4259f6bc6143e50a7f58895d121ef22db284f6286d900c1bc65ec31b40029

Swarm Source

bzzr://3e9b58d4259f6bc6143e50a7f58895d121ef22db284f6286d900c1bc65ec31b4

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.