以太坊的出現使得你們能夠很方便的以太坊上發行本身的代幣,這些代幣都遵循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發行成功。