当前位置:网站首页>如何在BNB鏈上創建BEP-20通證
如何在BNB鏈上創建BEP-20通證
2022-04-23 19:30:00 【Chainlink資訊】
BEP-20通證是在BNB Chain上進行交易的基礎。在本教程中,你將學習如何創建一個BEP-20通證並部署到BNB Chain。
什麼是BEP-20通證?
BEP-20是BNB Chain上的一種通證標准,它基於ERC-20標准框架建立。BEP-20和ERC-20標准都是用於創造互換的同質化通證。同質化錶示你只需要關心其數量–它們不是獨特的。法定貨幣就是一個很好的例子。你不需要關心你有哪個美元,而是有多少。非同質化物品是不能互換的,你關心的是你擁有哪一個。
什麼是BNB Chain?
BNB Chain是通過對Go Ethereum協議(Geth)的硬分叉,或者說是永久分叉而產生的。雖然它與以太坊相似,但也有一些明顯的區別。
其中最明顯的區別是BNB Chain使用了不同的共識機制。BNB Chain使用了21個驗證人,它們輪流生產區塊。這些驗證者由持有BNB(BNB Chain的原生通證)的委托人支持。這種共識機制被稱權益證明(PoSA)。驗證人是根據抵押金額來選擇的,前21名候選人被選為驗證人。
BNB Chain的優勢
由於BNB Chain是通過Geth的分叉創建的,它是與EVM兼容的網絡。這意味著你可以在BNB Chain上部署與Ethereum上相同的合約。作為一個權益證明網絡,BNB Chain與以太坊有不同的權衡。這形成了一些特定用例的優勢。值得注意的是,BNB Chain的速度相對較快,成本較低,這吸引了開發者們對該網絡的關注。
橋接資產到BNB Chain
如何將你的資產從以太坊主鏈轉移到BNB Chain?
要將資產從以太坊轉移到BNB Chain,可以使用幣安橋。這是一個合約,它將在以太坊鏈上保管你的資產,並在稍作延遲後,在BNB Chain創建該資產的一個版本。
這有點像在街機中使用遊戲幣。你把你的錢(ETH)交給電玩城員工(橋合約),反過來,他們創造遊戲幣(ETH BEP-20,ETH的BEP-20版本),在街機(BNB Chain)內使用。你可以在街機內使用遊戲幣(ETH BEP-20)。如果你想退出,你可以把你的遊戲幣(ETH BEP-20)還給員工(橋合約),他們會銷毀或燒毀遊戲幣(ETH BEP-20)。然後他們會把遊戲幣(ETH BEP-20)的錢(ETH)還給你。
你需要什麼?
在BNB Chain上開發,需要和在任何EVM兼容的鏈上開發時一樣的工具。這就是使用EVM兼容鏈的好處。通常它們都支持相同的工具。
在本教程中,我們將使用:
● Remix– 一個基於Web的Solidity集成開發環境
● Brave錢包–一 個類似於Metamask的加密貨幣錢包
● BNB Chain測試網– BNB Chain的測試網絡
● 幣安水龍頭– 獲取測試網絡BNB
● OpenZeppelin– 區塊鏈合約的安全標准
連接到BNB Chain Testnet
在BNB Chain測試網上構建一個應用程序之前,需要設置錢包。一個很好的工具是Chainlist,它允許你簡單地連接你的錢包並從那裏添加鏈(你需要先設置錢包。)自己添加鏈的細節可以在文檔中找到。
Network Name: Binance Testnet
New RPC URL: https://bsc-dataseed.binance.org/
ChainID: 97
Symbol: BNB
Block Explorer URL: https://testnet.bscscan.com
獲得測試網BNB
BNB Chain測試網的原生通證是BNB。為了部署以及與合約交互,我們需要獲得一些BNB。前往Binance水龍頭獲得一些測試網BNB。需要提供你的錢包地址,並點擊“給我BNB”。
構建合約
首先前往Remix集成開發環境。
現在可以忽略樣本合約。
在合約目錄中創建一個新的合約。
並將其命名為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的的入門頁面了解更多細節。
使用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());
}
}
關於小數的說明
這意味著當你想使用小數時,就需要使用定點運算。你需要在數值中存儲固定數量的小數。在這個例子中,digimals()被設置為18,這意味著我們要用10^18乘以我們鑄造的通證的數量。
部署
有了這個合約,你就有了一個功能完備的BEP-20通證!現在是時候把它部署到BNB Chain測試網了。
首先,將環境改為“Injected Web3”。這將使Remix能够通過你的錢包與區塊鏈互動。
接下來,確保你部署的是正確的合約。在這個例子中是“BSCCoin”。
指定要創建的通證數量,然後點擊“部署”按鈕,你應該看到一個確認按鈕。我們正在部署合約到一個運行中的區塊鏈上。因此,會涉及gas費用。
該合約可能需要一段時間才能完成部署。一旦完成,你會在“已部署的合約”下看到它。你都可以看到合約中的所有可用功能。這些功能都是從OpenZeppelin合約中導入的。
驗證
一旦合約部署完成,我們可以仔細檢查它是否顯示在BNB Chain測試網中。
複制合約的地址,然後去BNB Chain瀏覽器。
輸入合約地址並搜索它。
你可以看到合約和通證。
恭喜你,你剛剛成功部署了一個BEP-20通證到BNB Chain的測試網中。
下一步該怎麼做
從這裏開始,你可以把你的通證部署到BNB Chain主網,或者你可以為它添加更多的功能。OpenZeppelin合約支持額外的鑄造、銷毀、投票等功能。可查看OpenZeppelin文檔了解完整的細節。
現在你知道了如何創建一個BEP-20通證,許多新的機會向你敞開。你可以用它來與DeFi應用程序互動,創建一個治理協議,或啟動一個Chainlink Price Feed來跟踪其價格。
你也可以查看下面的完整的視頻教程,學習如何在BNB Chain上創建一個BEP-20通證。
獲取更多關於Chainlink的信息,請訪問chain.link或在docs.chain.link閱讀文檔。要討論集成問題,請聯系專家。
版权声明
本文为[Chainlink資訊]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231928494297.html
边栏推荐
- Garbage collector and memory allocation strategy
- What is a message queue
- Coordinate conversion WGS-84 to gcj-02 and gcj-02 to WGS-84
- 【webrtc】Add x264 encoder for CEF/Chromium
- Reflection on the performance of some OpenGL operations in the past
- Redis core technology and practice 1 - start with building a simple key value database simplekv
- Go three ways to copy files
- Virtual machine performance monitoring and fault handling tools
- Audio editing generation software
- C语言的十六进制printf为何输出有时候输出带0xFF有时没有
猜你喜欢
Mfcc: Mel frequency cepstrum coefficient calculation of perceived frequency and actual frequency conversion
[transfer] summary of new features of js-es6 (one picture)
2021-2022-2 ACM集训队每周程序设计竞赛(8)题解
精简CUDA教程——CUDA Driver API
【webrtc】Add x264 encoder for CEF/Chromium
[webrtc] add x264 encoder for CEF / Chromium
ArcMap publishing slicing service
Shanda Wangan shooting range experimental platform project - personal record (IV)
山大网安靶场实验平台项目—个人记录(四)
Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies
随机推荐
MySQL数据库 - 连接查询
Codeforces Round #783 (Div. 2) D题解
[report] Microsoft: application of deep learning methods in speech enhancement
RuntimeError: Providing a bool or integral fill value without setting the optional `dtype` or `out`
What is a message queue
Go modules daily use
Executor、ExecutorService、Executors、ThreadPoolExecutor、Future、Runnable、Callable
MFCC: Mel频率倒谱系数计算感知频率和实际频率转换
JS controls the file type and size when uploading files
Pit encountered using camera x_ When onpause, the camera is not released, resulting in a black screen when it comes back
IIS数据转换问题16bit转24bit
Main differences between go and PHP
Common processing of point cloud dataset
C学习完结
【h264】libvlc 老版本的 hevc h264 解析,帧率设定
[报告] Microsoft :Application of deep learning methods in speech enhancement
Class loading process of JVM
MySQL syntax collation (5) -- functions, stored procedures and triggers
The platinum library cannot search the debug process records of some projection devices
ArcMap publishing slicing service