BEP-20 代幣是BNB 鏈上交易的基礎。在本教程中,您將學習如何創建BEP-20 代幣並部署到BNB 鏈。
什麼是BEP-20 代幣?
BEP-20 是BNB 鏈上的代幣標準,建立在ERC-20 標准設定的框架之上。 BEP-20 和ERC-20 標準都創建 可替代的 令牌,可以互換。可替代物品是您關心數量的東西——它們不是唯一的。法定貨幣就是一個很好的例子:你不在乎你有多少美元,而在乎有多少。 不可替代 物品不可互換。你關心你擁有哪一個。
BNB鍊是什麼?
BNB 鍊是通過Go Ethereum 協議(Geth) 的硬分叉或永久分歧創建的。雖然它與以太坊非常相似,但也有一些顯著差異。
最顯著的區別是BNB Chain使用了不同的共識機制。 BNB Chain使用21個驗證者,輪流出塊。這些驗證者由持有BNB(BNB 鏈的原生代幣)的委託人支持。這種共識機制被稱為權益證明(PoSA)。根據質押數量選擇驗證者,並選出前21 名候選人進行驗證。
BNB鏈的優勢
鑑於BNB 鍊是通過Geth 的一個分支創建的,它與EVM 兼容。這意味著您可以在BNB 鏈上部署與在以太坊上相同的合約。作為PoSA 網絡,BNB 鏈與以太坊有不同的權衡。這為特定用例帶來了一些優勢。值得注意的是,BNB 鏈相對較快且成本較低,這吸引了開發人員加入網絡。
將資產橋接到BNB 鏈
你如何將你的資產從以太坊主鏈轉移到BNB 鏈上?
要將資產從以太坊轉移到BNB 鏈,您需要與 幣安橋. 這是一份合約,它將在以太坊一方保管你的資產,並在稍作延遲後,在幣安一方創建該資產的一個版本。
您可能會認為這有點像在街機中使用令牌。你給街機員工(橋接合同)你的錢(ETH),然後他們創建代幣(ETH BEP-20,ETH 的BEP-20 版本)以在街機(BNB 鏈)中使用。當您在街機中時,您可以從那裡使用代幣(ETH BEP-20)。如果您想離開,您可以將您的代幣(ETH BEP-20) 返還給員工(過渡合同),他們將銷毀或燒毀代幣(ETH BEP-20)。然後他們會將代幣(ETH BEP-20)的錢(ETH)退還給您。
你需要什麼
要開始在BNB 鏈上構建,您需要在任何EVM 兼容鏈上構建時使用的相同工具。這就是使用EVM 兼容鏈的優勢:它們通常支持相同的工具。對於本教程,我們將使用:
混音——基於Web 的Solidity IDE
BNB 鏈測試網——BNB Chain的測試網絡
幣安水龍頭——獲取測試網BNB
OpenZeppelin——區塊鏈合約的安全標準
連接BNB 鏈測試網
在您開始在BNB Chain 測試網上構建應用程序之前,您需要設置您的錢包。一個很好的工具是 鍊錶,它允許你簡單地連接你的錢包並從那裡添加鏈(你需要 設置你的錢包 首先。 )您自己添加鏈的詳細信息可以在 幣安文檔.
網絡名字: 幣安測試網
新的RPC 網址: https://bsc-dataseed.binance.org/
鏈ID: 97
象徵: BNB
阻止資源管理器URL: https://testnet.bscscan.com
獲取測試網BNB
BNB 鏈測試網的原生代幣是BNB。要部署合約並與之交互,我們需要獲取一些。前往 幣安水龍頭 獲得一些測試網BNB。您需要提供您的錢包地址,然後單擊“給我BNB”。
建立合同
前往 混音IDE 開始。
現在可以忽略示例合同。
在contracts 目錄中創建一個新合約。
給它命名 BSCCoin.sol
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC-20/ERC-20.sol"; contract BSCCoin is ERC-20 { constructor(uint256 initialSupply) ERC-20("BSCCoin", "BSCC") { _mint(msg.sender, initialSupply); } }
我們來看看這段代碼
首先,我們定義我們將使用的Solidity 版本。
pragma solidity ^0.8.2;
這是來自OpenZeppelin 的基本ERC-20 令牌。我們將其導入到我們的合同中。在創建BEP-20 代幣時,請記住它們與ERC-20 代幣非常相似。因此,我們可以利用OpenZeppelin ERC-20 合約來構建我們的代幣。
import "@openzeppelin/contracts/token/ERC-20/ERC-20.sol";
見他們 入門頁面 更多細節。
使用OpenZeppelin 的合約意味著我們的合約可以簡單得多。我們繼承ERC-20 合約並使用它來創建我們的BEP-20 代幣。
// Define our contract and inherit the ERC-20 contract contract BSCCoin is ERC-20 { // When the contract is run create a BEP-20 Token // The token will be names "BSCCoin" // The token will have the symbol "BSCC" constructor(uint256 initialSupply) ERC-20("BSCCoin", "BSCC") { // Create an initial value for the runner of the contract _mint(msg.sender, initialSupply * 10 ** decimals()); } }
關於小數的註釋
Solidity 不使用小數。這意味著您需要在想要使用小於整數的任何時候使用定點算術。您需要在值中存儲固定數量的小數。在這種情況下, decimals()
設置為18,這意味著我們將鑄造的代幣數量乘以 10^18
.
部署
有了這份合約,您就擁有了一個功能齊全的BEP-20 代幣!現在是時候將其部署到BNB 鏈測試網了。
首先,將環境更改為“注入的Web3。 ” 這將使Remix 能夠通過您的錢包與區塊鏈進行交互。
接下來,確保您正在部署正確的合約。那是”BSC幣” 在這個例子中。
指定要創建的令牌數量,然後單擊“部署”按鈕,您應該會看到一個確認按鈕。我們正在部署到實時區塊鏈。因此,將涉及燃氣費。
完全部署合約可能需要一些時間。完成後,您將在“已部署的合同”下看到它。你們都可以看到合約中所有可用的功能。這些函數是從OpenZeppelin 合約中導入的。
驗證
部署合約後,我們可以再次檢查它是否顯示在BNB 鏈測試網上。
複製合約地址並前往 BNB鏈掃描.
輸入合約地址並蒐索。
您應該會看到合約和代幣。
恭喜,您剛剛將BEP-20 代幣部署到BNB 鏈測試網!
從這往哪兒走
從這裡,您可以將您的代幣帶到BNB 鍊主網,或者您可以為其添加更多功能。 OpenZeppelin 合約支持額外的鑄造、燃燒、投票等。查看 OpenZeppelin 文檔 完整的細節。
現在您知道如何創建BEP-20 代幣,許多新的機會向您開放。您可以使用它與DeFi 應用程序交互、創建治理協議或啟動Chainlink 價格饋送以跟踪其價格。
通過訪問了解有關Chainlink 的更多信息 鏈環 或閱讀文檔 docs.chain.link. 要討論集成,請聯繫專家。