BEP-20通证是在BNB Chain上进行交易的基础。在本教程中,你将学习如何创建一个BEP-20通证并部署到BNB Chain。
BEP-20通证是在BNB Chain上进行交易的基础。在本教程中,你将学习如何创建一个BEP-20通证并部署到BNB Chain。
BEP-20是BNB Chain上的一种通证标准,它基于ERC-20标准框架建立。BEP-20和ERC-20标准都是用于创造互换的同质化通证。同质化表示你只需要关心其数量--它们不是独特的。法定货币就是一个很好的例子。你不需要关心你有哪个美元,而是有多少。非同质化物品是不能互换的,你关心的是你拥有哪一个。
BNB Chain是通过对Go Ethereum协议(Geth)的硬分叉,或者说是永久分叉而产生的。虽然它与以太坊相似,但也有一些明显的区别。
其中最明显的区别是BNB Chain使用了不同的共识机制。BNB Chain使用了21个验证人,它们轮流生产区块。这些验证者由持有BNB(BNB Chain的原生通证)的委托人支持。这种共识机制被称权益证明(PoSA)。验证人是根据抵押金额来选择的,前21名候选人被选为验证人。
由于BNB Chain是通过Geth的分叉创建的,它是与EVM兼容的网络。这意味着你可以在BNB Chain上部署与Ethereum上相同的合约。作为一个权益证明网络,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兼容链的好处。通常它们都支持相同的工具。
在本教程中,我们将使用:
在BNB Chain测试网上构建一个应用程序之前,需要设置钱包。一个很好的工具是Chainlist(https://chainlist.org/),它允许你简单地连接你的钱包并从那里添加链(你需要先设置钱包。)自己添加链的细节可以在文档中找到。
Network Name: Binance Testnet
New RPC URL: https://bsc-dataseed.binance.org/
ChainID: 97
Symbol: BNB
Block Explorer URL: https://testnet.bscscan.com
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());
}
}
Solidity不使用小数。这意味着当你想使用小数时,就需要使用定点运算。你需要在数值中存储固定数量的小数。在这个例子中,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文档(https://docs.openzeppelin.com/contracts/4.x/BEP20)了解完整的细节。
现在你知道了如何创建一个BEP-20通证,许多新的机会向你敞开。你可以用它来与DeFi应用程序互动,创建一个治理协议,或启动一个Chainlink Price Feed来跟踪其价格。
你也可以查看下面的完整的视频教程,学习如何在BNB Chain上创建一个BEP-20通证:
获取更多关于Chainlink的信息,请访问chain.link或在docs.chain.link阅读文档。要讨论集成问题,请联系专家。
原文链接:https://blog.chain.link/how-to-create-a-bep-20-token/
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!