以太坊智能合約開(kāi)發(fā)指南1(ERC-20代幣標(biāo)準(zhǔn))

在開(kāi)始前應(yīng)該具備以下知識(shí):

  • 對(duì)于區(qū)塊鏈的基本知識(shí),建議看下《精通比特幣》
  • 了解太坊智能合約語(yǔ)言solidity,官方文檔 https://solidity.readthedocs.io/en/develop/ ,也可以搜索相應(yīng)的中文文檔,不過(guò)中文文檔的版本可能不會(huì)即時(shí)更新。

之后會(huì)逐步完成一個(gè)完整的Dapp(distributed application 分布式應(yīng)用),這里選擇代幣合約為例子。代幣(token)是目前區(qū)塊鏈開(kāi)發(fā)比較活躍的一個(gè)領(lǐng)域,ERC-20是以太坊官方的一個(gè)代幣標(biāo)準(zhǔn)。

方法(Methods)

name
  • 返回代幣名稱,例如"MyToken"。
  • 可選的(OPTIONAL)
  • 建議實(shí)現(xiàn)此方法以提高錢包和交易所的使用體驗(yàn),但是接口或者其它合約不應(yīng)依賴于此方法的存在。
function name() constant returns (string name)
symbol
  • 返回代幣名稱的短字符串標(biāo)識(shí),例如"MTK"。
  • 3-8個(gè)字符的大寫英文字母,沒(méi)有空白或換行符。
  • 可選的(OPTIONAL)
  • 建議實(shí)現(xiàn)此方法以提高錢包和交易所的使用體驗(yàn),但是接口或者其它合約不應(yīng)依賴于此方法的存在。
function symbol() constant returns (string symbol)
decimals
  • 返回代幣使用的小數(shù)位數(shù)。例如 8,表示代幣數(shù)量除以100000000得到用戶表示。
  • 可選的(OPTIONAL)
  • 建議實(shí)現(xiàn)此方法以提高錢包和交易所的使用體驗(yàn),但是接口或者其它合約不應(yīng)依賴于此方法的存在。
function decimals() constant returns (uint8 decimals)
totalSupply
  • 返回代幣當(dāng)前總量。
  • 本方法必須實(shí)現(xiàn)。
function totalSupply() constant returns (uint256 totalSupply)
balanceOf
  • 返回指定地址_owner的賬戶余額。
  • 本方法必須實(shí)現(xiàn)。
function balanceOf(address _owner) constant returns (uint256 balance)
transfer
  • 返回指定地址_owner的賬戶余額。
  • 本方法必須實(shí)現(xiàn)。
function transfer(address _to, uint256 _value) returns (bool success)
transferFrom
  • 將金額為_value的代幣從地址_from轉(zhuǎn)移到地址_to,并且必須(MUST)觸發(fā)Transfer事件。
  • transferFrom方法的設(shè)計(jì),可以讓合約(contract)代碼實(shí)現(xiàn)代幣轉(zhuǎn)移。
  • 注意:0值的代幣轉(zhuǎn)移必須(MUST)被視為正常的轉(zhuǎn)移,并且觸發(fā)Transfer事件。
  • 本方法必須實(shí)現(xiàn)。
function transferFrom(address _from, address _to, uint256 _value) returns (bool success)
approve
  • 設(shè)置一個(gè)金額_value,這個(gè)金額表示允許_spender可支配的自己賬戶的額度,如 果這個(gè)函數(shù)再次調(diào)用,將覆蓋當(dāng)前的額度_value。
  • 本方法必須實(shí)現(xiàn)。
function approve(address _spender, uint256 _value) returns (bool success)
allowance
  • 返回一個(gè)金額,這個(gè)金額是_owner授權(quán)_spender允許支配自己賬戶的額度。
  • 本方法必須實(shí)現(xiàn)。
function allowance(address _owner, address _spender) constant returns (uint256 remaining)

事件(Events)

Transfer
  • 代幣轉(zhuǎn)移之后必須(MUST)被觸發(fā),包括零值的轉(zhuǎn)移。
  • 在代幣創(chuàng)建時(shí),應(yīng)該(SHOULD)觸發(fā)一個(gè)Transfer事件,這個(gè)事件的_from地址設(shè)置為0x0。
event Transfer(address indexed _from, address indexed _to, uint256 _value)
Approval
  • 在成功調(diào)用方法approve(address _spender, uint256 _value)后必須(MUST)被觸發(fā)。
event Approval(address indexed _owner, address indexed _spender, uint256 _value)

標(biāo)準(zhǔn)創(chuàng)建日期:2015-11-19

參考文檔 https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,632評(píng)論 19 139
  • 比特幣只是一個(gè)更廣泛的生態(tài)系統(tǒng)的一個(gè)組成部分(雖然是重要的一個(gè)),通常與之非常相似的貨幣稱為代幣。在本章中,我們將...
    Nutbox_Lab閱讀 2,512評(píng)論 0 7
  • 扔不掉的殘棋, 泡在酒里的米。 龍虎山下的老樹(shù)皮, 寫禿了尖的毛筆。 演戲的人犯了煙癮, 拉三弦的吞了青衣。 臺(tái)上...
    符歲閱讀 338評(píng)論 0 0
  • 你好,我是Wilson,一個(gè)正在以書寫的方式磨礪自己的人,這是我在網(wǎng)絡(luò)上寫作的第四篇文章。上周我為大家轉(zhuǎn)述了1月1...
    WilsonWang2018閱讀 489評(píng)論 0 2
  • 什么東西再轟轟烈烈也會(huì)有趨于平平淡淡,平靜的一天,無(wú)論是愛(ài)情還是生活。我相信沒(méi)有一個(gè)人會(huì)一直對(duì)一個(gè)人好下去,再熱烈...
    s宋華露閱讀 306評(píng)論 0 0

友情鏈接更多精彩內(nèi)容