本片文章我会给大家介绍一种简单的发行自己的加密代币的方法。
首先在你喜欢的地方创建一个名为MyCoin的目录,用来保存你的项目。
以前我们初始化一个truffle项目都会使用truffle init命令,自从truffle推出Boxes功能之后,我们可以直接使用truffle unbox+box名的方式就可以使用truffle官方为我们整合好的react web样板。
由于此命令会下载很多依赖包,所以执行时间会稍微长一点。
下面我们使用atom打开创建好的项目看一下项目结构。在项目根目录执行以下命令:
项目的结构如下:
为了简化开发过程,我会引用OpenZeppelin函数库。OpenZeppelin是一个编写安全智能合约的函数库。并兼容ERC20的智能合约。安装方法如下:
这是也会添加到项目的package.json文件的dependencies项里面。(在node_modules目录里也能找到)
此时说明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标准中所规定的函数:
下面我们在终端通过truffle compile命令来完成合约的编译。
合约成功编译之后会生成一个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:"*"
}
}
};
好了,现在可以把我们的合约部署到区块链上了。
到此为止我们的代币合约已经部署完成,就可以在truffle控制台进行进行测试了。
首先将合约在控制台进行实例化。
我们部署的每个合约都有一个地址,可以通过下面的命令查看我们的合约地址:
下面我们来查看我们刚才建立的代币的名字、简称。
现在我们查看coinbase账户和第一个账户的代币数量。
现在我们从coinbase账户中转6个JWC到账户1.
现在分别查看两个账户的代币数量,发现coinbase账户的代币减少6个,第一个账户怎加6个。
至此我们自己的代币建立完成。后面会和大家一起分享手撸代币合约。