跳至內容
0%

ERC-20 token 與 Solidity 完整指南(2025)

作者 Turja

發布於 2022年10月4日閱讀時間 1 分鐘

Ethereum 生態系包含各式各樣的標準,用來表示智能合約從建立到部署的功能。最常見的標準是 ERC-20、ERC-721、ERC-777 和 ERC-1155,各自有其主要用途。

本文將定義 ERC-20 代幣、說明其部分用途,並概述開發者若要遵循該標準,在 Solidity 程式語言中必須實作的函式。若你想使用 Solidity 建立自己的 ERC-20 代幣,本文的說明與定義可以幫助你更了解該怎麼做。

什麼是 ERC-20 代幣?

**ERC-20 是一種常見的同質化加密貨幣代幣,相容於 Ethereum 或與 EVM 相容的區塊鏈。**它是一種數位資產,可以在區塊鏈上代表任何事物,因此適用於許多不同的使用情境。

這個預設的智能合約包含一組特定的介面,讓它可以做為開發時的技術標準使用。開發者可以利用 ERC-20 代幣及其相關的代幣規則,讓開發流程更加簡便。像 Uniswap 和 SushiSwap 這類知名的去中心化交易所協議,都採用 ERC-20 代幣標準做為基礎元件,以便無縫地相容並整合進其生態系。

ERC-20 代幣如何被使用?

由於 ERC-20 代幣對其所代表的內容沒有任何限制,它的用途可以遠遠超出一般的加密貨幣(例如 ETH)。ERC-20 資產必須具備同質化、可轉移,且可以限制最大供應量。這在建立獎勵、實體物件、公司股份等應用時十分有用。

ERC-20 代幣旨在使代幣開發標準化,可以代表 Ethereum 區塊鏈上任何同質化的資產。只要提供幾個描述特定資產的變數(例如名稱、代號和供應量),任何人都可以發行具備標準行為與介面的 ERC20 代幣。

ERC-20 代幣是同質化的,因為每一枚代幣都與其他代幣完全相等。由於個別代幣不具備任何特殊權利或行為,這種價值上的一致性讓 ERC-20 代幣適用於交易媒介、貨幣、投票權、質押等應用。

為什麼 ERC-20 代幣標準很重要?

ERC-20 代幣標準為同質化代幣提供了一套特定的做法,確保它們都具備相似的屬性。

自從 2015 年提出以來,ERC-20 代幣標準的發展讓其他協議、平台與開發者,能夠建立可使用任何遵循該標準的代幣的智能合約,而不需要為每個新代幣撰寫特殊邏輯。智能合約的標準化提升了開發流程,進而大幅嘉惠整個加密貨幣生態系。

所有 ERC-20 代幣必須實作哪些 Solidity 函式?

ERC-20 標準包含一組方法與事件,必須存在於該標準的每一種實作中,包括轉移價值、查詢地址餘額以及取得其他中繼資料的方法。

了解 Solidity 語言的各項細節,並具備使用函式在 Ethereum 上建立 ERC-20 代幣的實務知識,能加快你成為 Solidity 開發者的腳步。

1. totalSupply

totalSupply 方法表示代幣目前流通中的總供應量。以下是範例:

2. balanceOf

balanceOf 方法計算某個錢包地址中持有的代幣數量。以下是範例:

3. Transfer

transfer 方法將代幣從一個地址傳送到另一個地址,其中發送者是該筆交易的發起者。以下是範例:

4. Approve

approve 方法允許另一個地址代表你花費代幣。當你與需要存取你的代幣的智能合約互動時,這個方法就很有用。approve 方法常見的使用情境是去中心化交易所。以下是範例:

5. transferFrom

transferFrom 方法通常與 approve 方法搭配使用。一旦你授權某人花費你的代幣,他們就可以在交易中透過 transferFrom 將代幣從你的帳戶轉移到另一個帳戶。一個常見的使用情境是去中心化交易所。以下是範例:

6. Allowance

allowance 方法是指某個地址被允許代表另一個地址花費的金額。以下是範例:

所有 ERC-20 代幣有哪些選用的 Solidity 函式?

**名稱、代號和小數位數都是選用的函式,做為 ERC-20 代幣合約基本介面的擴充。**雖然這些函式並非必要,但它們能為合約提供額外的細節,有助於了解其用途。這個核心介面可以做為智能合約進一步客製化與擴充的基礎。

1. Name

name 是一個易於閱讀的名稱,用來說明合約的用途。以下是範例:

2. Symbol

symbol 是代幣易於閱讀的代號,可用來代表該代幣,類似 ETH、BTC 等等。以下是範例:

3. Decimals

decimals 定義該貨幣最小單位的位數。最常見的數值是 18,這也是 ether 所使用的位數(ether 的最小單位是 wei:1 ether 等於 1e18 wei)。

什麼是 ERC-20 的資料結構?

像餘額表與授權額度表這類 ERC-20 資料結構,有助於區塊鏈上各項操作的組織與實作。

Balances

一份內部的代幣餘額表用來追蹤某個錢包地址的總持有量。每一筆轉帳都會從某個餘額中扣除,並加到另一個餘額中。

Allowances

一份內部的代幣授權額度表用來追蹤某個錢包地址所委託的花費額度。利用巢狀對映(nested mapping),主索引鍵是代幣擁有者的地址,對映到某個花費者地址,並提供該花費者可花費的委託額度。

開始使用 Alchemy 進行開發

ERC-20 標準是 Ethereum 生態系中最重要的標準,因為它被廣泛採用,並使用於最重要的智能合約協議中。身為開發者,強烈建議你花時間了解這個標準,並部署屬於你自己的 ERC-20 代幣。

若想了解 ERC-20 代幣以及其他 Solidity 程式設計的基本知識,歡迎報名 Alchemy University 的 Ethereum 開發者訓練營,把握你的名額。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。