美文网首页
【生成tocken代码】

【生成tocken代码】

作者: michaelYH | 来源:发表于2018-07-25 21:37 被阅读0次

    说明:生成tocken的代码

    地址:0xcC042A4c8A047b6381Ce9a341F38A33B36FD372m

    参数:100,"testTocken","xxx"

    pragma solidity ^0.4.16;

    interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }

    contract TokenERC20 {

        string public name;

        string public symbol;

        uint8 public decimals = 18;

        uint256 public totalSupply;

        mapping (address => uint256) public balanceOf;

        mapping (address => mapping (address => uint256)) public allowance;

        event Transfer(address indexed from, address indexed to, uint256 value);

        event Burn(address indexed from, uint256 value);

        function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) 

        public   {

            totalSupply = initialSupply * 10 ** uint256(decimals);

            balanceOf[msg.sender] = totalSupply;

            name = tokenName;

            symbol = tokenSymbol;

        }

        function _transfer(address _from, address _to, uint _value) internal {

            require(_to != 0x0);

            require(balanceOf[_from] >= _value);

            require(balanceOf[_to] + _value > balanceOf[_to]);

            uint previousBalances = balanceOf[_from] + balanceOf[_to];

            balanceOf[_from] -= _value;

            balanceOf[_to] += _value;

            Transfer(_from, _to, _value);

            assert(balanceOf[_from] + balanceOf[_to] == previousBalances);

        }

        function transfer(address _to, uint256 _value) public {

            _transfer(msg.sender, _to, _value);

        }

        function transferFrom(address _from, address _to, uint256 _value) public returns (

        bool success) {

            require(_value <= allowance[_from][msg.sender]);    // Check allowance

            allowance[_from][msg.sender] -= _value;

            _transfer(_from, _to, _value);

            return true;

        }

        function approve(address _spender, uint256 _value) public

            returns (bool success) {

            allowance[msg.sender][_spender] = _value;

            return true;

        }

        function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {

            tokenRecipient spender = tokenRecipient(_spender);

            if (approve(_spender, _value)) {

                spender.receiveApproval(msg.sender, _value, this, _extraData);

                return true;

            }

        }

        function burn(uint256 _value) public returns (bool success) {

            require(balanceOf[msg.sender] >= _value);

            balanceOf[msg.sender] -= _value;

            totalSupply -= _value;

            Burn(msg.sender, _value);

            return true;

        }

        function burnFrom(address _from, uint256 _value) public returns (bool success) {

            require(balanceOf[_from] >= _value);

            require(_value <= allowance[_from][msg.sender]);

            balanceOf[_from] -= _value;

            allowance[_from][msg.sender] -= _value;

            totalSupply -= _value;

            Burn(_from, _value);

            return true;

        }

    }

    相关文章

      网友评论

          本文标题:【生成tocken代码】

          本文链接:https://www.haomeiwen.com/subject/pgbmmftx.html