ERC-20 與 ERC-721 比較
簡單來說,ERC20 是「每個代幣都一樣」;而 ERC721 則是「每個代幣都有其獨特性」
Interface
1 | contract ERC20Interface { |
總共有 6 個 function 以及 2 個 event。其中 constant 的 function 是唯讀的,所以不會花費 Gas。
Event 只用於記錄,可以視為一般系統上的 log 功能。
1 | string public constant name = "Token Name"; |
另外還有三個需要設定的參數:name、symbol、decimals。name 是 Token 的名字;symbol 是 Token 的代稱(簡稱);decimals 是 Token 小數最多可以到幾位數,正常為 18,也就是和 Ether 一樣。
Function 說明
- totalSupply(),Token 的發行總量。
- balanceOf(address),傳入地址的錢包的 Token 數量。
- allowance(address A, address B),A 批准給 B 的 Token 量。
- transfer(address A, uint num),將數量為 num 的 Token 轉移給 A。
- approve(address A, uint num),批准數量為 num 的 Token 轉移給 A,需注意的是,這個 function 只是單純做「批准」這個動作,而沒有進行轉移。若需要轉移則要再呼叫 transferFrom。
- transferFrom(address, address, uint),將數量為 num 的 Token 由 A 轉移給 B。
注意事項
Solidity 版本 >= 0.4.17