以太坊的出现使得你们能够很方便的以太坊上发行本身的代币,这些代币都遵循ERC20协议(现已有ERC23协议)。智能合约编程支持合约的继承(相似面向对象语言中类的继承和接口的实现),所以ERC20协议能够定义为一个接口。npm
下面即是符合ERC20协议的智能合约:编程
contract ERC20 { //获取总的发行量 function totalSupply() constant returns (uint totalSupply); //查询帐户余额 function balanceOf(address _owner) constant returns (uint balance); // 发送Token到某个地址(转帐) function transfer(address _to, uint _value)returns(bool success); //从地址from 发送token到to地址 function transferFrom(address _from, address _to, uint _value) returns (bool success); //容许_spender从你的帐户转出token function approve(address _spender, uint _value)returns(bool success); //查询容许spender转移的Token数量 function allowance(address _owner, address _spender) constant returns (uint remaining); //transfer方法调用时的通知事件 event Transfer(address indexed _from, address indexed _to, uint _value); //approve方法调用时的通知事件 event Approval(address indexed _owner, address indexed _spender, uint _value); }
接下将在咱们本身的网络上发行咱们本身的代币。网络
智能合约Solidity 的开发使用Webstorm做为编辑器使用NodeJs进行开发。使用Truffle和geth做为部署工具,所以须要提早安装NodeJs和Truffle,直接去官网下载便可。app
因为智能合约支持继承的方式,咱们只要让咱们本身的智能合约继承开源的遵循ERC20协议的合约即可以很方便的实现咱们本身的代币合约。cors
在本地的文件中运行:dom
truffle unbox tutorialtoken
从Truffle官网下载tutorialtoken项目,接下来把zeppelin-solidity项目做为依赖工程导入到咱们的项目。编辑器
npm install zeppelin-solidity
定义本身的智能合约TutorialToken,注意:咱们让TutorialToken继承自合约StandardToken工具
contract TutorialToken is StandardToken{}
StandardToken已经继承了ERC20协议并实现了相关的方法。测试
咱们的合约名称是TutorialToken,代币名称是LYBToken,总量是12000个。ui
使用Truffle compile命令进行合约编译:
//Truffle migrate 将合约部署到以太坊网络上, //注意:部署时eth网络必须运行且处在挖矿模式,须要消耗gas,而且解锁帐户。 geth.exe --rpccorsdomain "*" --rpc console 2>> 1.log
合约部署成功,使用npm dev run进行测试:
能够看到帐户里已经有了初始的12000个LYBToken,能够进行转帐等一系列操做。
至此咱们本身的ERC20代币LYBToken发行成功。