当前位置:网站首页>如何在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
边栏推荐
- C语言的十六进制printf为何输出有时候输出带0xFF有时没有
- An algorithm problem was encountered during the interview_ Find the mirrored word pairs in the dictionary
- Golang timer
- The most detailed network counting experiment in history (2) -- rip experiment of layer 3 switch
- arcgis js api dojoConfig配置
- MySQL syntax collation (2)
- The difference between underline and dot of golang import package
- Grafana 分享带可变参数的链接
- Data analysis learning directory
- MFCC: Mel频率倒谱系数计算感知频率和实际频率转换
猜你喜欢
Deep learning -- Summary of Feature Engineering
NiO related Basics
精简CUDA教程——CUDA Driver API
Application of DCT transform
MySQL syntax collation (4)
No, some people can't do the National Day avatar applet (you can open the traffic master and earn pocket money)
Kubernetes入门到精通-KtConnect(全称Kubernetes Toolkit Connect)是一款基于Kubernetes环境用于提高本地测试联调效率的小工具。
arcMap 发布切片服务
The platinum library cannot search the debug process records of some projection devices
Intuitive understanding of the essence of two-dimensional rotation
随机推荐
数据分析学习目录
Build intelligent garbage classification applet based on Zero
Strange passion
JVM的类加载过程
Some ideas about time-consuming needs assessment
数据库查询 - 选课系统
UML类图几种关系的总结
MFCC: Mel频率倒谱系数计算感知频率和实际频率转换
深度学习——特征工程小总结
Main differences between go and PHP
Kubernetes入门到精通-裸机LoadBalence 80 443 端口暴露注意事项
openlayers 5.0 两种居中方式
Use of fluent custom fonts and pictures
ArcMap publishing slicing service
Decompile and get the source code of any wechat applet - just read this (latest)
Speculation on the way to realize the smooth drag preview of video editing software
RuntimeError: Providing a bool or integral fill value without setting the optional `dtype` or `out`
一个简单的(基于redisson的)分布式同步工具类封装
@Analysis of conditional on Web Application
Redis core technology and practice 1 - start with building a simple key value database simplekv