iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

ERC

ERC是Ethereum Request for Comments縮寫,是一系列以太坊區塊鏈標準,用於定義不同的以太坊tokens和智能合約接口。ERC 提案通常由以太坊社區成員提交,然後經過討論和審核,最終可能成為以太坊的正式標準。

ERC20

是以太坊上最廣泛使用的,定義了一個通用的以太坊通證標準,使得不同的代幣可以在以太坊區塊鏈上互操作。除 ETH 之外的如狗狗幣等皆是 ERC20。在程式碼中如想實作 ERC20 可以直接Implementation 其 interface,按照裡面完成必須的函式以及一些可選的函式,或是在Openzeppelin直接引入ERC20到合約就可以快速生成。(以下為Solidity)

可選函式:

//代幣名稱
function name() public view returns (string);
//代幣標示
function symbol() public view returns (string);
//代幣的小數點位數,因Solidity沒有浮點數
function decimals() public view returns (uint8);

事件:

event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);

必備函式:

//查詢總發行量
function totalSupply() public view returns (uint256);
//查詢地址餘額
function balanceOf(address _owner) public view returns (uint256 balance);
//轉帳函式
function transfer(address _to, uint256 _value) public returns (bool success);
//授權餘額查詢
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
//授權函式
function approve(address _spender, uint256 _value) public returns (bool success);
//授權轉帳
function allowance(address _owner, address _spender) public view returns (uint256 remaining);

紀錄操作:

//記錄轉帳
event Transfer(address indexed _from, address indexed _to, uint256 _value);
//記錄授權
event Approval(address indexed _owner, address indexed _spender, uint256 _value);

可另外實作鑄造或銷毀函式。


上一篇
加密
下一篇
CEX
系列文
Web3新手初探筆記32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言