区块链智能合约--一分钟教你学会编写发布erc20智能合约

前期准备:外网连接、以太坊钱包(MetaMask)、ERC20代币智能合约.sol

一、安装环境

1、在chrome浏览器安装MetaMask插件区块链智能合约--一分钟教你学会编写发布erc20智能合约_第1张图片安装好之后在扩展程序上面点击显示,之后会在右上角看到MetaMask区块链智能合约--一分钟教你学会编写发布erc20智能合约_第2张图片

 2.打开meatMask钱包创建一个属于自己的钱包

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第3张图片

二.编写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 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.打开编写和发布合约的网站IDE:

Remix - Ethereum IDE 

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第4张图片

2.创建erc20.sol合约

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第5张图片

 3.编译合约

打开编译页面,选择自己有要编译的合约,最后点击Compile TokenERC20.sol

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第6张图片

 4. 发布合约

在第一步打开发布合约的页面,之后在第二步选择要发布的合约名称,之后在第三步填入发布合约的初始化数据之后 

初始化数据

  • initialSupply:初始化发行量(发行量要注意有没有默认添加了小数点)  
  • tokenName:token名称 
  • tokenSymbol:token简称

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第7张图片

 5.选择发布的网络和地址

当以上的步骤都完成之后就到了最后的发布环节,你需要选择点击 Injected Web3链接你当前metamask的钱包网络还有地址,之后点击transact,即可完成.

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第8张图片

 区块链智能合约--一分钟教你学会编写发布erc20智能合约_第9张图片

 最后当发布完成之后就会出现以下的方法,说明你已经发布完成一个erc20代币.

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第10张图片

 当你需要找到你发布的合约地址具体信息的时候,你可以打开metamask的交易记录

区块链智能合约--一分钟教你学会编写发布erc20智能合约_第11张图片

 区块链智能合约--一分钟教你学会编写发布erc20智能合约_第12张图片

 区块链智能合约--一分钟教你学会编写发布erc20智能合约_第13张图片

 以上的信息就是你刚刚发布完成的合约地址信息


 

如果有遇到不懂得或者有疑问欢迎联系本人进行交流

WC:luo425116243

 

 

 

 

你可能感兴趣的:(区块链,智能合约,区块链,以太坊)