1. 程式人生 > >以太坊 ERC-20 Token Standard(翻譯)

以太坊 ERC-20 Token Standard(翻譯)

ERC-20 代幣(Token )標準

Token翻譯為’代幣’感覺更直觀一些。在有些文章中翻譯為’令牌’

簡單說明

一個代幣的標準介面

摘要

以下標準可以在智慧合約實現一個標準的代幣介面。該標準提供交易代幣的基本功能,以及允許授以代幣的使用權,這樣他們可以被區塊鏈上的第三方使用。

起因

使得以太坊上的任意代幣可以被其他應用中使用的一個標準介面:從錢包之間到分散的交易。

規範

代幣

函式(Methods)

注意: 當呼叫的函式具有 returns (bool success)時,必須要處理返回 false的情況。呼叫時不能假設返回值永遠不會是false。

name 返回值 - 代幣的名稱。 比如 “名人幣”

可選的 - 此函式可用於提高可用性, 但介面和其他合同絕不能指望它一定存在。

function name() view returns (string name)

symbol 返回值 - 代幣的標識。比如 “RMB”

可選的 - 此函式可用於提高可用性,但介面和其他合同絕不能指望它一定存在。

function symbol() view returns (string symbol)

decimals 返回值 - 代幣所使用的小數位數。比如 8,意思是代幣量除以100000000 得到顯示形式

可選的 - 此函式可用於提高可用性,但介面和其他合同絕不能指望它一定存在。

function decimals
() view returns (uint8 decimals)

totalSupply 返回值 - 代幣發行總數。

function totalSupply() view returns (uint256 totalSupply)

balanceOf 返回值 - 地址為 _owner 的賬戶的賬戶餘額

function balanceOf(address _owner) view returns (uint256 balance)

transfer_value 數量的代幣轉讓給 _to 賬戶, 同時必須觸發 Transfer 事件。如果 _from 賬戶的餘額不足那麼此函式必須 拋異常。

注意: 轉讓值為0時必須被視為正常轉讓並觸發 Transfer 事件。

function transfer(address _to, uint256 _value) returns (bool success)

transferFrom 將_value數量的代幣從 _from 賬戶轉讓到地址 _to 賬戶,並且必須觸發Transfer事件。 transferFrom函式用於撤銷流程,允許合約代表您轉讓代幣。例如,允許合約代表您轉讓代幣和/或以子貨幣方式收取費用。除非 _from 帳戶通過某種機制故意授權msg.send,否則該函式應丟擲異常。

注意: 轉讓值為0時必須被視為正常轉讓並觸發 Transfer 事件。

function transferFrom(address _from, address _to, uint256 _value) returns (bool success)

approve 授權 _spender 多次從您的帳戶中消費代幣(withdraw),最高為 _value 金額。 如果再次呼叫此函式,它將使用 _value 覆蓋當前的允許值。

注意:為了防止向量攻擊,應如此處所述和此處討論的那樣做。對於同一個 _spender 客戶端應該確保先設定限額為0,再設定它到另一個值的方式建立使用者介面。然而,合約本身不應強制這點,以允許向後相容之前部署的合約。

function approve(address _spender, uint256 _value) returns (bool success)

allowance 返回值 - _spender 目前能從 _owner 提取的金額

function allowance(address _owner, address _spender) view returns (uint256 remaining)

Events

Transfer 轉讓代幣時必須觸發,包括零值轉讓。

建立新代幣的代幣合約應該觸發一個 Transfer 事件,並將 _from 地址設定為0x0

event Transfer(address indexed _from, address indexed _to, uint256 _value)

Approval 必須觸發當 approve 呼叫成功時。

event Approval(address indexed _owner, address indexed _spender, uint256 _value)

實現

以太坊網路上已經部署了大量符合ERC20標準的代幣。不同的團隊已經編寫了不同的實施方案,這些團隊有不同的權衡:從節省gas到提高安全性。

歷史

與此標準相關的歷史連結:

版權

Copyright and related rights waived via CC0.