教你如何创建自己的数字货币

作者: 唠嗑008 | 来源:发表于2018-05-15 17:38 被阅读171次

前言

目前市场上很多token都是基于以太坊的ERC-20代币,ERC20是以太坊定义的一个代币标准。通过以太坊智能合约是可以比较轻松的发行自己的代币的,今天就和大家一起学习一下,如何一步步创建自己的代币。

环境准备

1、Chrome浏览器
2、Chrome浏览器安装MetaMask插件

metamask部署

进入metamask页面,选择Ropsten Test Network网络(为了省手续费,这里选择测试网络)。看看自己的账号中,是否有一定的eth,如果没有,给测试账号申请一点eth。

这时候,可以看到,测试账户里面有eth了(我当时多点了几次,用不了这么多,申请几个就行了)


编写代币合约代码

这部分大家可以参考ERC20 官方标准示范代码

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;  // 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;
    }
}

把上面这段合约代码拷贝到Remix Solidity IDE,这是一个solidity在线编辑器,同时会同步metamask的账户信息。

编译无误的话,可以按照如下配置去设置


主要是Environment和Account和MetaMask保持一致。然后在Deploy后面的输入框后面添加3个参数就行了,依次是代币发行总量,代币名称,代币的符号。填好之后,点击Deploy,就可以创建合约了。

这时MetaMask会弹出一个交易确认框,点SUBMIT。待合约部署交易确认之后,复制合约地址。

提交信息以后,等待交易处理完成后,token就会生成,点击交易信息可以查看token合约地址。

点击这个链接,进入详细页面

打开Metamask界面,点击ADD TOKEN,会进入如下页面,把上面的合约地址拷贝下来,输入代币的符号即可。


填写好了之后,点击ADD,代币就创建好了。


大家可以看到,我已经成功创建了数字货币,代币名称MyToken,代币符号MT,数量2100w个。

可以点击这里查看详细信息,https://ropsten.etherscan.io/token/0x581377276ab8bb60a9ab4fc634296bd1414ae936

细心的朋友可能会看到这个链接与以太坊主网的链接的区别是前面多了ropsten,这代表的是ETH测试网络。

好了,到这里,就完成了代币的创建。后面我会再合约更深层次的一些东西写出来和大家分享。

相关文章

  • 教你如何创建自己的数字货币

    前言 目前市场上很多token都是基于以太坊的ERC-20代币,ERC20是以太坊定义的一个代币标准。通过以太坊智...

  • 实现ERC-20Token的增发、冻结、兑换等功能

    前言 在之前的文章教你如何创建自己的数字货币中讲解了,如何创建自己的ERC-20 代币。而这一节是在上一节的基础上...

  • 133:高成本的货币是数字,没成本的数字是货币。

    133: 高成本的货币是数字,没成本的数字是货币 创建于 2019年02月15日 3 小时前 一、高成本的货币终将...

  • 智慧晶有成为下一个比特币的潜力

    数字货币最大的风险,是短视! 数字货币最赚钱的人,有信仰! 在数字货币市场如何赚钱,要想赚钱靠短期投机,就...

  • 创建自己的数字货币(代币)进行ico

    ERC20 Token ERC20和代币经常一同出现, ERC20是以太坊定义的一个代币标准。要求我们在实现代币的...

  • 2019-07-27

    数字货币招商,合约交易平台,如何找到安全稳定的平台 数字货币平台招商,数字货币平台招商,条件你来说 招商联系人WX...

  • 2019-07-22

    数字货币招商,合约交易平台,如何找到安全稳定的平台 数字货币平台招商,数字货币平台招商,条件你来说 招商联系人WX...

  • 教你分清楚虚拟货币、数字货币、加密数字货币

    货币发展史与世界文明史同步而行。伴随人类社会经历石器时代、青铜时代、农业时代、工业时代及信息时代,在金属冶造、造纸...

  • 2019-03-19

    BCT币侠教你看懂数字货币交易规则和专业术语 字货作者:Bct数币交易平台币侠 随着公众对于数字货币的投资热情逐步...

  • 2018-07-08

    韭菜如何入场数字货币,不被割?

网友评论

  • bf544aca9a15:点击SUBMIT之后报错,错误如下:
    creation of TokenERC20 errored: Error: Error: [ethjs-rpc] rpc error with payload {"id":747934414187,"jsonrpc":"2.0","params":["0xf912e68080831357278080b91............"]"method":"eth_sendRawTransaction"} Error: transaction underpriced
  • 莲君ju:好文,不过我试了试没成功,有很多debug显示。deploy后,没反应
  • 唠嗑008:有不清楚的地方,欢迎大家留言提问。

本文标题:教你如何创建自己的数字货币

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