编写智能合约(Smart Contract)

编写智能合约(Smart Contract)

创建项目
有别于之前使用truffle init指令来初始化项目,在Truffle推出Boxes功能之后,我们可以直接套用称作react-box的样板,此样板已经整合create-react-app,可以直接用它来开发react web,省下项目设置的时间。
命令:truffle.cmd unbox react-box
或 truffle unbox webpack

开发前的准备

  1. 打开终端,启动testrpc,继续通过testrpc模拟以太坊区块链测试环境。
  2. 创建的代币如果想要能够通过以太币钱包来进行转账和收帐,必须兼容于以太坊的ERC20标准,ERC20定义了支持钱包所必需的合约界面。
  3. 在本篇文章中,我们将安装OpenZeppelin来简化加密钱包开发的过程。OpenZeppelin是一套能够给我们方便提供编写加密合约的函数库,同时里面也提供了兼容ERC20的智能合约。
    npm install zeppelin-solidity

Atom打开项目查看zeppelin-solidity安装结果
通过Atom打开项目,在node_modules中的最后一个文件夹就是zeppelin-solidity的内容。

BloggerCoin.sol代码如下:

pragma solidity ^0.4.4;
//通过import来导入我们需要使用到的StandardToken合约。
import “zeppelin-solidity/contracts/token/StandardToken.sol”;
/*
建立BloggerCoin合约时,让BloggerCoin合约直接继承自StandardToken。is既是继承。
因此BloggerCoin继承了StandardToken所有的状态数据和方法。
当我们继承了StandardToken合约,也就支持了以下ERC20标准中规定的函数。
函数 方法
totalSupply() 代币发行的总量
balanceOf(A) 查询A帐户下的代币数目
transfer(A,x) 发送x个代币到A帐户
transferFrom(A,x) 从A帐户提取x个代币
approve(A,x) 同意A帐户从我的帐户中提取代币
allowance(A,B) 查询B帐户可以从A帐户提取多少代币
/
contract BloggerCoin is StandardToken {
/

这边设定参数的目的是指定这个代币的一些特性。
以人民币为例,人民币的名称(name)是RMB,美元的代号为¥,
拿100元去找零最小可以拿到零钱是一分,也就是0.0001元。
因为1元最小可分割到小数点后4位(0.0001),
因此最小交易单位(decimals)为4。

这里将这个加密代币取名(name)为BloggerCoin(部落币),
代币的代号(symbol)为BLC,
最小分割单位是4(最小可以找0.0001个部落币)。

以下为人民币,比特币,以太币,部落币的对照表供参考:
name symbol decimals
RMB ¥ 4
Bitcoin BTC 8
Ethereum ETH 18
BloggerCoin BLC 4
/
/

另外,当我们把全局变量设为public(公开),
编译时就会自动新增一个读取公开变量的ABI接口,
我们在truffle console中也可以读取这些变量。
/
string public name = “BloggerCoin”;
string public symbol = “BLC”;
uint8 public decimals = 4;
//最后也定义了初始代币数目INITIAL_SUPPLY
uint256 public INITIAL_SUPPLY = 666666;
/

和合约同名的BloggerCoin方法,就是BloggerCoin合约的构造函函数(constructor)。
在构造函数里指定了totalSupply数目,
并将所有的初始代币INITIAL_SUPPLY都指定给msg.sender帐号,
也就是用来部署这个合约的帐号。
totalSupply定义于ERC20Basic.sol中,
balances定义于BasicToken.sol中。
*/
function BloggerCoin() {
// 代币发行的总量
totalSupply = INITIAL_SUPPLY;
balances[msg.sender] = INITIAL_SUPPLY;
}
}

编译、部署、验证
在migrations/目录下建立一个3_deploy_bloggerchain.js文件,内容如下:
现在执行compile与migrate命令
备注:确保testrpc处于运行状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云上凯歌

好活,当赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值