如何發行自己的加密貨幣 - 以 ERC-20 為例

隨著區塊鏈、比特幣、以太坊、加密貨幣和ICO的最新消息不斷湧現,區塊鏈業務正引起廣泛關注。因此,我編寫了這個教程,這是系列教程中的第一篇,旨在幫助人們更好地瞭解如何利用區塊鏈技術和加密貨幣來構建有意義的應用程序。

在本教程中,我的目標是指導你完成從設置帳戶到使用單個智能合約和元掩模在以太坊測試網絡上發行首個代幣的全過程。這個代幣將是以太坊測試網上的標準 ERC20 代幣,它將具有主要功能,可以作為比簡單轉賬更復雜應用的通用基礎。

開始之前:

在建立你自己的 ERC20 代幣之前,你需要準備以下:

  1. 一個 Web3 錢包(例如:MetaMask、Phantom 或任何與 WalletConnect 相容的錢包)
  2. 測試用 ETH(你可以從這裡獲取測試代幣 QuickNode 多鏈水龍頭 )這一步需要 Gas 費用
  3. 網路瀏覽器(建議使用 Chrome)

什麼是 ERC20 代幣

ERC 是 Ethereum Request for Comment(以太坊徵求意見)的縮寫,20 是提案識別號。 ERC-20 的目標是為了改進以太坊網絡。 ERC-20 是最重要的 ERC 之一。它已成為在以太坊區塊鏈網絡上編寫智能合約的技術標準,用於代幣實現。 ERC-20 包含了所有基於以太坊的代幣必須遵循的一套規則。 ERC-20 將代幣定義為可以發送/接收並具有價值的基於區塊鏈的資產,在以太坊的區塊鏈網絡上運行,並使用 gas 作為交易費用。

2015 年,德國開發者Fabian Vogelsteller 決定為以太坊的歷史做出貢獻,並在該專案的Github 頁面上留下了評論。 這是他連續第20 次發表評論,這是他第一次提到ERC-20,隨著以太坊持續快速成長,ERC-20 是作為解決網路可擴展性問題的一種方法而提出的。

ERC-20 作為以太坊改進協議(稱為EIP-20)的認可和正式採用發生在2017 年底。 EIP-20 由Vogelsteller 和以太坊聯合創始人Vitalik Buterin共同撰寫。

在 ERC-20 標準出現之前,代幣創建者需要從零開始設計。這導致不同代幣之間存在差異。開發者若想使用其他代幣,必須理解整個智能合約代碼,因為缺乏統一結構。這給錢包和交易所帶來了困難,他們需要審查每種代幣的代碼才能提供支持。嚮應用程序添加新代幣變得複雜。

而 ERC-20 標準出現後,它的標準化功能、互操作性、可轉讓性使錢包和交易所能夠輕鬆整合各種代幣,並促進代幣之間的交換。而 ERC-20 代幣中使用的智能合約能夠自動執行和強制執行複雜的金融操作,這對DeFi平臺至關重要。因為在 DeFi 平臺上,代幣可以代表各種金融工具,如貸款或流動性池中的份額。

ERC-20標準定義了智能合約應實現的六個必要功能和三個可選功能。

以下是必要的功能及其解釋:

  • 總供應量:定義代幣總供應量的方法;當達到此限制時,智能合約將拒絕創建新代幣。
  • 餘額:返回錢包地址擁有的代幣數量的方法。
  • 轉移:從總供應量中取出一定數量的代幣並給予用戶的方法。
  • 轉自:另一種用於在用戶之間轉移代幣的方法。
  • 批准:驗證智能合約是否允許向用戶分配一定數量代幣的方法,考慮到總供應量。
  • 津貼:與approve方法相同,但檢查一個用戶是否有足夠的餘額向另一個用戶發送一定數量的代幣。

除上述必要功能外,以下功能為可選,但可提高代幣的可用性:

  • 姓名:返回代幣名稱的方法。
  • 象徵:返回代幣符號的方法。
  • 小數:返回代幣使用的小數位數的方法。它用於定義代幣的最小單位。例如,如果一個ERC-20代幣的小數值為6,這意味著該代幣可以分割到小數點後6位。

如果你瞭解面向對象程式設計(object-oriented programming),你可以將 ERC-20 比作一個介面。如果你想讓你的代幣成為一個 ERC-20 代幣,你必須實現 ERC-20 介面,這要求你實現這 6 個必要的功能。簡言之,ERC-20 介面就像一個模板,任何想要成為 ERC-20 代幣的合約都必須按照這個模板來設計和實現自己的功能。

開始創建自己的 ERC20 代幣:

獲取測試用ETH

要開始在以太坊 Sepolia 測試網上部署你的合約,你需要安裝 元掩碼 瀏覽器擴展程序或使用其他 web3 的錢包,如 Phantom, 或與 WalletConnect 兼容的錢包。一旦你的錢包設置完成,你需要獲取一些測試用的 ETH。這可以從專門為以太坊測試網 Sepolia 網絡設立的 QuickNode 多鏈水龍頭 獲得。獲得測試ETH很簡單,只需要訪問水龍頭網站,連接你的錢包或輸入你的錢包地址,然後按照步驟繼續操作。你還有機會通過分享推文以獲得額外獎勵,你也可以直接選擇"不用了,請直接給我發送 0.05 ETH" 的選項來接收你的測試 ETH。不過這裡請注意:你需要在以太坊主網上至少有 0.001 ETH 的餘額才能使用QuickNode測試幣水龍頭。

撰寫智能合約

在以太坊區塊鏈上已經有許多由不同團體開發的符合ERC20標準的代幣在運行。這些實現方式各不相同,有些側重於降低gas成本,有些則優先考慮強化安全性。為了實現一個強大且安全的代幣,許多開發者會選擇使用 OpenZeppelin 的 ERC20 代幣標準。 OpenZeppelin 是一個經過充分測試和社區審核的可重複使用的智能合約庫,其中包括一個可靠且安全的 ERC20 代幣框架。而它能確保代幣開發合規和安全,也成為目前代幣開發者的首選。

為了簡單和安全起見,我們在這篇指南中選擇使用 OpenZeppelin ERC-20 合約來創建我們的代幣。使用 OpenZeppelin,我們無需編寫整個 ERC-20 接口,只需要導入庫合約並使用其函數即可。本次我們將新發行 1 百萬枚,名稱為 運動神經元 的 ERC-20 代幣。

接著前往 以太坊混音 IDE(以太坊的集成開發環境,支持Solidity語言) 並創建一個新的 Solidity 文件,比如 - MyNewToken.sol。

  1. 在Ethereum Remix IDE 裡創建新文件

請將以下代碼貼到你的新Solidity代碼腳本中:

// SPDX-許可證-標識符:MIT pragma Solidity ^0.8.20;

導入“@openzeppelin/contracts/token/ERC20/ERC20.sol”;

合約 MyNewToken 是 ERC20 { 構造函數() ERC20(“MyNewToken”, “MNT”) { _mint(msg.sender, 1000000 * (10 ** uint256(decimals()))); } }

  1. 複製貼上上述發幣智能合約代碼

以上代碼的含義是:

SPDX-License-Identifier 註釋指定了合約發佈所使用的許可證。

雜注指令聲明瞭要使用的編譯器版本。

從 OpenZeppelin 導入ERC20合約並將其用作基礎。

我的新代幣是你的合約名稱,它繼承自 ERC20 合約。

構造函數函數使用名稱(“我的新代幣”)和符號(“運動神經元”)初始化你的代幣。

構造函數中的_作為函數鑄造了初始供應量的代幣。在這個例子中,100萬個代幣被鑄造並分配給部署合約的地址。代幣數量會根據小數值進行調整,在 OpenZeppelin 實現中預設為 18。

由於我們從 OpenZeppelin 導入了 ERC20 智能合約,並且 MyNewToken 合約繼承了 ERC20 合約,因此不需要定義所有函數。 ERC20 合約中定義的所有函數都被導入到 MyNewToken 合約中。如果你想查看更詳細的完整 ERC-20 代碼,可以查看這個文件

現在,花點時間根據你的需求自定義智能合約。你也可以通過更新以下部分來修改代幣名稱和符號:ERC20(“MyNewToken”,“MNT”)。

部署智能合約

完成智能合約的自訂後,接下來進行編譯。

第1步:點擊Solidity編譯器 (Solidity compiler) 按鈕。檢查編譯器版本和選定的合約。由於智能合約中有雜注可靠性^0.8.20;這一行,編譯器版本應至少為20.0.8。然後,點擊編譯MyNewToken.sol 按鈕。如果一切順利,你會在編譯按鈕上看到一個綠色的勾勾。

  1. 編譯智能合約

  1. 編譯完成(綠勾勾)

第2步:前往部署和執行交易(DEPLOY & RUN TRANSACTION)標籤。在環境(Environment)下選擇注入的提供者(Injected Provider)選項進行部署。部署前,請確保你的 MetaMask 設定為Sepolia 測試網,並選擇我的新代幣合約作為要部署的合約。最後,點擊**部署(Deploy)**按鈕來部署你的合約。

  1. 選擇注入的提供者為本地的 Web3(MetaMask)錢包

  1. 連結Web3錢包

  1. 確定部署合約,以及選擇要部署的網絡(本篇為測試網)

如果你不確定如何更改網絡,打開MetaMask擴展程序,點擊左上角的網絡選擇器,然後選擇Sepolia。如果你沒有看到它,請確保啟用了「顯示測試網絡」選項。如果你想了解如何將QuickNode RPC URL添加到MetaMask,請查看快速節點指南指南。

以下需要 GAS 費用換取 測試ETH

第3步:在MetaMask中確認交易:

恭喜!到了這一步代幣合約現在已經成功部署在以太坊的 Sepolia 測試網上,你擁有了第一個屬於自己的代幣了。

ETH0.44%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 2
  • 轉發
  • 分享
留言
0/400
GateUser-9d70fe1avip
· 2024-09-30 01:27
到月球上 🌕
查看原文回復0
GateUser-9d70fe1avip
· 2024-09-30 01:26
到月球上 🌕
查看原文回復0
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)