将ERC20合同转移到BEP20



所以我在Remix上有一个工作合同代码,但它是为ERC20编写的,我需要以某种方式改变它,以便它在BEP20上工作。我对这一切都很陌生,对Solidity也不太了解。对不起,如果这个问题本身是愚蠢的,但我自己找不到任何信息,所以我在这里。

我试图简单地从GitHub连接一些BEP20文件,这似乎是必不可少的,并开始编译代码,但显然它只是淹没了我一堆不同的错误。如果有人能解释一下为ERC20和BEP20编写代码的主要区别是什么,我真的很想。

这里有几个定义,以便您可以在上下文中更好地定位:

  • ERC-20是以太坊的代币标准
    • 它有时也被称为EIP-20,仅仅因为ERC(以太坊征求意见)是EIP(以太坊改进提案)的子类别
  • BEP-20是ERC-20到币安智能链的端口

从solid代码的角度来看,没有区别在ERC-20和BEP-20令牌之间。因此,当您在以太坊上部署代码时,它将成为ERC-20令牌,当您在币安智能链上部署相同的代码时,它将成为BEP-20令牌。

下面是ERC-20/BEP-20令牌扩展OpenZeppelin开源库的示例代码,它已经实现了标准所需的所有功能。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract GLDToken is ERC20 {
constructor(uint256 initialSupply) ERC20("Gold", "GLD") {
_mint(msg.sender, initialSupply);
}
}

上面的import语句从@openzeppelin/contracts NPM包中导入ERC20.sol文件。确保您在package.json中包含了这个依赖项-或者您使用的环境已经包含了这个依赖项(例如Remix IDE)。

最新更新