如何在铸币功能不可用时将 ERC20 硬币生成到 NFT 市场

How to generate ERC20 coins into an NFT Marketplace when mint function is not available

免责声明:我已经学习区块链和区块链安全 2 周了。如果我遗漏了一些基本概念,请轻轻指出正确的方向。谢谢!

我有一个 NFTMarketPlace 智能合约,它在构造函数中接受 ERC20、ERC721 和 AccessControlEnumerable 抽象合约的内存地址。

constructor(
    address governance,
    address erc20token,
    address nftToken
) {
    require((governance != address(0)) && (erc20token != address(0)) && (nftToken != address(0)), "NFTMarketplace: address(0)");
    ApeCoin = IERC20(erc20token);
    NFTcollection = IERC721(nftToken);
    ADMIN_ROLE = keccak256("ADMIN_ROLE");
    ADMIN_ROLE_ADMIN = keccak256("ADMIN_ROLE_ADMIN");
    _setRoleAdmin(ADMIN_ROLE, ADMIN_ROLE_ADMIN);
    _setupRole(ADMIN_ROLE_ADMIN, governance);
    _setupRole(ADMIN_ROLE, governance);
}

我使用 Remix IDE 并将 3 个抽象合约部署到 3 个内存地址,并将这些地址提供给上述构造函数。

但是ERC20的totalsupply为0,并没有编码mint函数

在这种情况下,NFTMarketplace 合约应该有效吗? (由于没有货币流通)

我想铸造硬币,将其转移给少数用户,创建 NFT 集合并执行市场操作以了解过程中的安全状况。

如果您使用的是 openzeppelin 合约,此答案将会有所帮助。

ERC20 合约在 this location, click here

有内部方法 _mint

继承ERC20合约后,您需要在自己的合约中添加总供应量和铸币量的功能。

查看下面的代码部分:

contract ERC20FixedSupply is ERC20 {
  constructor() ERC20("Fixed", "FIX") {
      _mint(msg.sender, 1000);
  }
}

可以找到详细的教程at this link