以太坊--在metamask中部署自己的token

版权声明:转载请注明出处 https://blog.csdn.net/Booboochen/article/details/82182124

github首页:区块链学习有用链接和25本区块链书籍可免费阅读

  • 地址:https://github.com/cancerts/study-blockchain-referrence 点击这

 前一章 讲了在remix浏览器的IDE中使用的是一个模拟环境去部署我们的token,今天我们将我们的token部署到真的以太坊网络中去

首先介绍一下什么是erc接口,ERC接口是以太坊网络中的标准接口,举个简单的例子,就像腾讯给外部提供的支付接口,其他应用在选择支付时,选择微信支付,就是调用微信的支付接口,从而可以跳转到你的支付页面,是不是很直观,不要表扬我

第一步:获取接口

以太坊的ERC接口很多的,我选择的只是CER20,其他的可以查看在这里

这是我整理的一个ERC20接口:和以太坊现在给出的github上面的可能有点偏差,但是有时一样的

contract ERC20Interface {

    string public  name ;//代币名称

    string public symbol;//代币的符号,就像比特币的BTC,以太坊的ETH

    uint8 public  decimals;  //代币的最小转账位数,1就表示最小为0.1
   
    uint public  totalSupply;//代币总的发行量

    function allowance(address _owner, address _spender) view returns (uint256 remaining);

    function approve(address _spender, uint256 _value) returns (bool success);

   function transfer(address _to, uint256 _value) returns (bool success);

   function transferFrom(address _from, address _to, uint256 _value) returns (bool success);

   event Transfer(address indexed _from, address indexed _to, uint256 _value);

   event Approval(address indexed _owner, address indexed _spender, uint256 _value);

}

 这个接口,增加的一个功能就是可以讲自己代币的所有权授权给其他人

第二步:实现接口

实现接口的时候,还是要创建账本,然后实现转账,这里需要添加一个授权函数的功能


pragma solidity ^0.4.20;

import './erc20interface.sol';//这里要注意一下啊,我的是在remix中将接口和接口实现分开了,如果,你写在一个文件里,将接口完全替换着一行就可以

contract erc20 is ERC20Interface {
    
     mapping (address => uint256 ) public balanceOf;
     mapping (address => mapping(address=>uint256)) public allowed;

    constructor(string _name) public{
        //构造函数,初始化代币名称,符号,最小位数,发行总量
        name=_name;//"mytoken"
        symbol="CAN";
        decimals=1;
        totalSupply=10000;
        balanceOf[msg.sender]=totalSupply;
    }
    //正常的转账函数
    function transfer(address _to, uint256 _value) returns (bool success){
        require(_to !=address(0));
        require(balanceOf[msg.sender]>=_value);
        require(balanceOf[_to]+_value>=balanceOf[_to]);
        
        balanceOf[msg.sender]-=_value;
        balanceOf[_to]+=_value;
        
        emit Transfer(msg.sender,_to,_value);
        return true;
        
    }

     //授权后的一个转账函数 

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success){
        require(_to!=address(0));
        require(allowed[_from][msg.sender]>=_value);
        require(balanceOf[msg.sender]>=_value);
        require(balanceOf[_to]+_value>=balanceOf[_to]);
        
        allowed[msg.sender][_from]-=_value;
        balanceOf[msg.sender]-=_value;
        balanceOf[_to]+=_value;
        return true;
    }
    
    function allowance(address _owner, address _spender) view returns (uint256 remaining){
        
        return allowed[_owner][_spender];
        
    }

    function approve(address _spender, uint256 _value) returns (bool success){
        allowed[msg.sender][_spender]=_value;
        
        emit Approval(msg.sender,_spender,_value);
        return true;
    }

}

 第三部:创建自己的以太坊账号

这里需要使用一个Google浏览器插件metamask插件,需要翻墙才可以使用,需要代劳的评论区留言,(自搭服务器)

可以使用的人直接在Google商量搜索metamask将其添加进去,第一次会为你创建一个账号,仔细看都看得明白,然后进去,选择网络,在test网络中,不要在主网络中,要是你有足够的以太币也没有关系,虽然是部署在测试网络,可是,也是真正的部署在以太坊网络中中。你可以在token里面看到,你部署的合约,安装好插件后,下面就一步一步的教大家部署合约

在remix的run一栏的environment一栏选择injected web3,会自动和你的metamask关联,查看自己的账号,

  1. 在部署一栏输入token名称
     
  2. 在弹出一个界面的选择comfirm //注意:如果出现点击不了的,是因为你账号没有足够的以太币,部署合约要花费一定的gas
     
  3. 然后在你的metamask界面就可以看见一个部署合约的事件了

好了,现在你就真正就自己的合约部署到以太坊网络中了,你也可以讲自己的合约代码放在以太坊上,进行验证 

猜你喜欢

转载自blog.csdn.net/Booboochen/article/details/82182124