美文网首页
【生成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代码】

    说明:生成tocken的代码 地址:0xcC042A4c8A047b6381Ce9a341F38A33B36FD3...

  • Java生成tocken

    转自博客 Tocken是什么 tocken作为一种身份认证的标识 被广泛应用到各个方面,所以其要求一种非常高的唯一...

  • 比较Date相差时间的方法

    转自博客 前因 由于工作中需要制作tocken的相关功能 势必将要对于tocken的时效性进行验证。 其中获取当前...

  • [Swift]语法树

    生成语法书 生成最简洁的SIL代码 生成LLVM IR代码 生成汇编代码

  • 代码生成器,目标语言,目标代码中的地址

    代码生成器,目标语言,目标代码中的地址 代码生成器 代码生成器的是生成正确的代码,代码生成器的设计依赖于中间表示形...

  • MybatisPlus学习笔记(九)------MybatisP

    代码生成器 MybatisPlus与Mybatis的代码生成器对比 Mybatis是基于xml生成代码; Myba...

  • Android 打造编译时注解解析框架,了解一下

    (一)了解(二)分析,实战(三)结合项目源码(四)类、代码生成(五)代码生成的几种方式(代码生成路径)

  • 编译器前端和后端

    编译器粗略分为词法分析,语法分析,类型检查,中间代码生成,代码优化,目标代码生成,目标代码优化。把中间代码生成及之...

  • 代码生成

    这次的小课堂主要是讲公司的代码生成框架。 内容很多,主要内容都在视频了,所以慢慢看吧。 大部分内容都涉及配置文件什...

  • 代码生成

    语法解析流程简述 lua之类的脚本语言先把源代码翻译成字节码,而后再使用虚拟机执行字节码。而从源代码到字节码要经过...

网友评论

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

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