当前位置:网站首页>如何在BNB链上创建BEP-20通证
如何在BNB链上创建BEP-20通证
2022-04-23 19:29: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://blog.csdn.net/ChainlinkO/article/details/124279143
边栏推荐
- First experience of using fluent canvas
- MySQL syntax collation (3)
- Parsing headless jsonarray arrays
- White screen processing method of fulter startup page
- Intuitive understanding of the essence of two-dimensional rotation
- Class loading mechanism
- Summary of several relationships of UML class diagram
- C语言的十六进制printf为何输出有时候输出带0xFF有时没有
- Data analysis learning directory
- Customize the non slidable viewpage and how to use it
猜你喜欢
Intuitive understanding of the essence of two-dimensional rotation
First experience of using fluent canvas
FFT物理意义: 1024点FFT就是1024个实数,实际进入fft的输入是1024个复数(虚部为0),输出也是1024个复数,有效的数据是前512个复数
Kubernetes入门到精通-KtConnect(全称Kubernetes Toolkit Connect)是一款基于Kubernetes环境用于提高本地测试联调效率的小工具。
OpenHarmony开源开发者成长计划,寻找改变世界的开源新生力!
Matlab 2019 installation of deep learning toolbox model for googlenet network
MySQL syntax collation (4)
MySQL syntax collation (2)
ArcMap connecting ArcGIS Server
ArcMap publishing slicing service
随机推荐
Main differences between go and PHP
First experience of using fluent canvas
No, some people can't do the National Day avatar applet (you can open the traffic master and earn pocket money)
【webrtc】Add x264 encoder for CEF/Chromium
js获取本机ip地址
MySQL数据库 - 单表查询(三)
Class loading mechanism
【webrtc】Add x264 encoder for CEF/Chromium
uIP1.0 主动发送的问题理解
MySQL syntax collation (4)
Customize the non slidable viewpage and how to use it
Modify the font size of hint in editext
HTTP cache - HTTP authoritative guide Chapter VII
Web Security
MySQL syntax collation (5) -- functions, stored procedures and triggers
坐标转换WGS-84 转 GCJ-02 和 GCJ-02转WGS-84
考试系统进入试卷优化思路
Encyclopedia of professional terms and abbreviations in communication engineering
OpenHarmony开源开发者成长计划,寻找改变世界的开源新生力!
Prefer composition to inheritance