首先,给出我的GitHub主页,区块链学习有用链接和25本区块链书籍可免费阅读
地址:https://github.com/cancerts/study-blockchain-referrence 点击这
今天讲的是在remix上编写一个合约实现代币发行
网址:remix :http://remix.ethereum.org/ ,这是一个基于网页版的solidity IDE,非常好用,也是官方推荐使用的
要实现一个简单的代币发行,要实现最基本的三个步骤:
- 创建一个账本,使用mapping
- 确定发行总量
- 实现转账功能
第一步:新建文件
打开连接,找到有个+号的地方,创建一个新的文件,我们取名为,simpleToken.sol(solidity 统一以SOL结尾)
第二步:编写合约
pragma solidity ^0.4.20; //这是合约的头部信息,主要为版本号信息
contract simpletoken{ // 第一一个名为simpletoken的合约
//创建一个账本,包含纸质和钱的数量,并给账本余额取名balanceOf
mapping(address => uint256) public balanceOf;
//这是一个构造函数,在创建合约的时候调用,并且给定一个参数initialSupply,指定发行总量
constructor (uint256 initialSupply) {
//余额根据参数的不同,代表不同地址下的余额,我们在部署的时候指定发行总量,也就是我们的initialSupply的值
balanceOf[msg.sender] = initialSupply;
}//这是一个转账函数,规定了,发起一个转账交易需要输入的参数,一个是转给谁的地址,一个是转账的金额
function transfer(address _to, uint256 _value) public{
//这是一个判断,在正式改变账本状态之前判断账户余额是不是大于账户拥有的钱
require(balanceOf[msg.sender] >=_value);
require(balanceOf[_to] +_value >=balanceOf[_to]); //还要判断一下,是不是转账后余额是不是增加了,别转账了自己的余额反而减少了,那么这些情况出现,都不会导致转账成功
balanceOf[msg.sender] -= _value;//转账方钱减少
balanceOf[_to] += _value;//接受方钱增加
}
}
这个合约很好理解,而且我也写的非常详细的
第三部:部署合约
- 在右边的窗口选择 run
- 在environment :选择JavaScript VM
account :0xca35b7d915458ef540ade6068dfe2f44e8fa733c 你创建合约的账户,相当于中央银行,你的发行总量是多少, 这个账户的余额就是多少
- 在deploy上面选择部署那和合约,我们就部署simpletoken,然后选择你这次发币的总量 如:20000
- 最后,在deploy contract 一栏,点开小三角形,然后,将我们的transfer函数上面的账户地址copy下来,给他转账1,注意,中间用逗号隔开,
transfer :0xec5bee2dbb67da8757091ad3d9526ba3ed2e2137,1 //进行转账操作
balanceOf :0xec5bee2dbb67da8757091ad3d9526ba3ed2e2137 //查询账户余额
unit256:1
关于转账的结果你可以在中间的控制台看到输出的结果信息,好了,到这里你就实现了一个简单的发行token的功能了