建立自己的标准代币

使用到的工具

  • Atom
  • Truffle
  • Ganache
  • Solidity开发语言

本片文章我会给大家介绍一种简单的发行自己的加密代币的方法。

创建项目

首先在你喜欢的地方创建一个名为MyCoin的目录,用来保存你的项目。


以前我们初始化一个truffle项目都会使用truffle init命令,自从truffle推出Boxes功能之后,我们可以直接使用truffle unbox+box名的方式就可以使用truffle官方为我们整合好的react web样板。

建立自己的标准代币_第1张图片

由于此命令会下载很多依赖包,所以执行时间会稍微长一点。

下面我们使用atom打开创建好的项目看一下项目结构。在项目根目录执行以下命令:


项目的结构如下:

建立自己的标准代币_第2张图片

  • /contracts:存放我们编写的智能合约,都是sol文件
  • /migrations:存放我们不熟智能合约的js文件
  • /test:存放智能合约的测试代码文件,可以是js和sol文件
  • /node_modules:存放项目用到的以下依赖文件
  • /public和/src:存放react web的相关文件
  • /truffle.js:truffle的配置文件

编写合约

为了简化开发过程,我会引用OpenZeppelin函数库。OpenZeppelin是一个编写安全智能合约的函数库。并兼容ERC20的智能合约。安装方法如下:


这是也会添加到项目的package.json文件的dependencies项里面。(在node_modules目录里也能找到)

建立自己的标准代币_第3张图片

此时说明zeppelin-solidity已经下载完成。

下面我们就来编写合约代码。在contracts目录下创建一个JiuWeiCoin.sol的文件。并在里面添加如下代码。

pragma solidity ^0.4.18;

import "../node_modules/zeppelin-solidity/contracts/token/ERC20/StandardToken.sol";

contract JiuWeiCoin is StandardToken {
  string public name = "JiuWeiCoin";
  string public symbol = "JWC";
  uint8 public decimals = 4;
  uint256 public INITIAL_SUPPLY = 666666;
  function JiuWeiCoin() public {
    totalSupply_ = INITIAL_SUPPLY;
    balances[msg.sender]=INITIAL_SUPPLY;
  }
}

为了简化编程我在这里继承了StandardToken合约,具体详细的代币开发会在以后的文章中和大家分享。先带大家简单体验一下。JiWeiCoin通过is来继承StandardToken的所有的状态数据和方法。也就支持了ERC20标准中所规定的函数:

  • totalSupply():代币发行的总量
  • balanceOf(A):查询账户A下的代币数目
  • transfer(A,X):发送X个代币向A账户
  • transferFrom(A,X):从A账户中提取X个代币
  • approve(A,X):同意A账户从我的账户提取X代币
  • allowance(A,B):查询B账户可以从A账户提取多少代币
  • name:代币名称
  • symbol:代币的简称
  • decimals:可以理解为代币精确到小数点后几位

编译、部署、测试

下面我们在终端通过truffle compile命令来完成合约的编译。

建立自己的标准代币_第4张图片

合约成功编译之后会生成一个build目录,来存放合约编译后的json文件。

在部署合约之前首先要把Ganache打开。他会给我们创建10个账户来供我们测试。

下面我们在migrations下创建一个2_deploy_contracts.js文件来部署我们的代币合约。

var JiuWeiCoin = artifacts.require("./JiuWeiCoin.sol");

module.exports = function(deployer) {
  deployer.deploy(JiuWeiCoin);
};

最后通过配置truffle.js来与先前启动的Ganache连接。

module.exports = {

  networks:{
    development:{
      host:"localhost",
      port:8545,
      network_id:"*"
    }
  }
};

好了,现在可以把我们的合约部署到区块链上了。

建立自己的标准代币_第5张图片

到此为止我们的代币合约已经部署完成,就可以在truffle控制台进行进行测试了。

首先将合约在控制台进行实例化。

建立自己的标准代币_第6张图片

我们部署的每个合约都有一个地址,可以通过下面的命令查看我们的合约地址:

建立自己的标准代币_第7张图片

下面我们来查看我们刚才建立的代币的名字、简称。

建立自己的标准代币_第8张图片

现在我们查看coinbase账户和第一个账户的代币数量。

建立自己的标准代币_第9张图片

现在我们从coinbase账户中转6个JWC到账户1.

建立自己的标准代币_第10张图片

现在分别查看两个账户的代币数量,发现coinbase账户的代币减少6个,第一个账户怎加6个。

建立自己的标准代币_第11张图片

至此我们自己的代币建立完成。后面会和大家一起分享手撸代币合约。

你可能感兴趣的:(建立自己的标准代币)