发行自己的以太坊ERC20代币---超级详细

Posted goog_man

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发行自己的以太坊ERC20代币---超级详细相关的知识,希望对你有一定的参考价值。

1、安装MetaMask插件+新建钱包

注意:电脑是需要ke学上网的,并且需要使用谷歌浏览
注意:电脑是需要ke学上网的,并且需要使用谷歌浏览
注意:电脑是需要ke学上网的,并且需要使用谷歌浏览

  1. 在谷歌浏览器中打开这个地址安装MetaMask钱包插件:https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?authuser=2
  2. 打开页面点击点击到浏览器即可完安装操作。安装成功后会自动打开MetaMask的页面,点击【创建钱包】进行创建钱包操作。(发行代币是需要旷工费的,并且以eth形式支付)
  3. 输入钱包名后即可创建,创建后会自动生成助记词,助记词一定要保留好。后续会让你输入助记词验证成功后钱包才会创建成功。

2、进行合约的创建+发布

  1. 打开网站:https://www.myetherwallet.com/点击【Access My Wallet】接着在新页面点击【MEW CX】
  2. 勾选我接受后点击【Access My Wallet】此时会自动打开之前安装好的MetaMask钱包插件,在MetaMask钱包插件页面点击【下一步】接着点击【连接】即可。
  3. 上一步点击【连接】后会自动回到这个页面,点击【Contract】—【Deploy Contract】即可。保留此页面不要关闭

  1. 接着在新的标签页打开Remix网页,这是一个在线的Solidity编译器。网站地址:Remix网页
  2. Solidity编译器页面点击【contracts】可以看到自带的3个文件,此时我们新建一个文件并将如下代码复制进去即可。
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 Approval(address indexed owner, address indexed spender, 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 returns (bool) 
        _transfer(msg.sender, _to, _value);
        return true;
    
    
    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;
        Approval(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;
    

  1. 点击编译按钮,选择版本号要和代码中的一致(此处是0.4.16),选择好后点击【compile】即可完成编译。此时最下面会有【ABI】、【Bytecode】两个按钮,点击对应的即可复制相关内容。打开上述的网站粘贴复制的内容即可。
  2. 复制完成后继续填写相关信息,最后点击【Sing Transaction】按钮,此时会打开MetaMask钱包插件,可以看到完成发布需要支付181$的手续费给矿工,手续费以eth形式支付(到此我先暂时停止后续操作了,毕竟手续费略贵)
  3. 如果你给钱包里充值了eth并且足够支付手续费的话即可点击上述页面的【确定】按钮完成后续的发布和验证

3、提交合约+发布合约+验证

以下内容来自网络,并非自己实际操作。
以下内容来自网络,并非自己实际操作。
以下内容来自网络,并非自己实际操作。

  1. 点击“确定”后,就可以看到MetaMask弹出的“CONFIRM TRANSACTION”的页面,这个页面是用来确认发送的,点击“CONFIRM”确认提交。

  2. 点击刚刚发布的智能合约地址,就会调转到Etherscan(以太坊的区块浏览器),耐性等待智能合约的创建。

  3. 点击确认,支付成功后,然后他会自动部署合约,等一会,去区块浏览器查你的ETH主账号的事物:地址为:https://etherscan.io/address/(加上你自己的支付矿工费用的ETH账号地址);点击进入

  4. 下图则为你的代币地址,然后查看代币的具体信息:地址为:
    https://etherscan.io/token/(你自己的代币地址)

  5. 验证是否正常:打开MetaMask钱包插件,点击【add token】,在【token address】中输入token地址

  6. 此时在MetaMask钱包插件即可看到刚刚添加的token。

以上是关于发行自己的以太坊ERC20代币---超级详细的主要内容,如果未能解决你的问题,请参考以下文章

发行自己的以太坊ERC20代币---超级详细

以太坊ERC20代币开发

手把手教你发行代币

以太坊上发行ERC20代币

如何从以太坊地址获取 ERC20、ERC721 和 ERC827 代币列表

ERC20代币标准初识