发行自己的以太坊ERC20代币---超级详细
Posted goog_man
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发行自己的以太坊ERC20代币---超级详细相关的知识,希望对你有一定的参考价值。
文章目录
1、安装MetaMask插件+新建钱包
注意:电脑是需要ke学上网的,并且需要使用谷歌浏览
注意:电脑是需要ke学上网的,并且需要使用谷歌浏览
注意:电脑是需要ke学上网的,并且需要使用谷歌浏览
- 在谷歌浏览器中打开这个地址安装MetaMask钱包插件:https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?authuser=2
- 打开页面点击点击到浏览器即可完安装操作。安装成功后会自动打开MetaMask的页面,点击【创建钱包】进行创建钱包操作。(发行代币是需要旷工费的,并且以eth形式支付)
- 输入钱包名后即可创建,创建后会自动生成助记词,助记词一定要保留好。后续会让你输入助记词验证成功后钱包才会创建成功。
2、进行合约的创建+发布
- 打开网站:https://www.myetherwallet.com/点击【Access My Wallet】接着在新页面点击【MEW CX】
- 勾选我接受后点击【Access My Wallet】此时会自动打开之前安装好的MetaMask钱包插件,在MetaMask钱包插件页面点击【下一步】接着点击【连接】即可。
- 上一步点击【连接】后会自动回到这个页面,点击【Contract】—【Deploy Contract】即可。保留此页面不要关闭。
- 接着在新的标签页打开Remix网页,这是一个在线的Solidity编译器。网站地址:Remix网页
- 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;
- 点击编译按钮,选择版本号要和代码中的一致(此处是0.4.16),选择好后点击【compile】即可完成编译。此时最下面会有【ABI】、【Bytecode】两个按钮,点击对应的即可复制相关内容。打开上述的网站粘贴复制的内容即可。
- 复制完成后继续填写相关信息,最后点击【Sing Transaction】按钮,此时会打开MetaMask钱包插件,可以看到完成发布需要支付181$的手续费给矿工,手续费以eth形式支付(到此我先暂时停止后续操作了,毕竟手续费略贵)
- 如果你给钱包里充值了eth并且足够支付手续费的话即可点击上述页面的【确定】按钮完成后续的发布和验证
3、提交合约+发布合约+验证
以下内容来自网络,并非自己实际操作。
以下内容来自网络,并非自己实际操作。
以下内容来自网络,并非自己实际操作。
-
点击“确定”后,就可以看到MetaMask弹出的“CONFIRM TRANSACTION”的页面,这个页面是用来确认发送的,点击“CONFIRM”确认提交。
-
点击刚刚发布的智能合约地址,就会调转到Etherscan(以太坊的区块浏览器),耐性等待智能合约的创建。
-
点击确认,支付成功后,然后他会自动部署合约,等一会,去区块浏览器查你的ETH主账号的事物:地址为:https://etherscan.io/address/(加上你自己的支付矿工费用的ETH账号地址);点击进入
-
下图则为你的代币地址,然后查看代币的具体信息:地址为:
https://etherscan.io/token/(你自己的代币地址)
-
验证是否正常:打开MetaMask钱包插件,点击【add token】,在【token address】中输入token地址
-
此时在MetaMask钱包插件即可看到刚刚添加的token。
以上是关于发行自己的以太坊ERC20代币---超级详细的主要内容,如果未能解决你的问题,请参考以下文章