我试图在我们的erc721合同中编写一个函数来购买带有erc20令牌的nft令牌。据我所知,不可能将erc20导入erc721。这是否意味着购买功能自行进入一个单独的合同?在这种情况下,我们如何从erc721契约访问mint函数?
我搜索了所有的谷歌和堆栈交换与“erc20令牌可靠购买nft”,但找不到任何东西。这意味着我可能漏掉了一些明显的东西
发布于 2021-11-11 21:17:51
这是可能的,但flow/ux将与购买eth略有不同(在eth中,用户沿着mint()事务发送eth):
-user将不得不批准(您的前端需要处理)您的erc721合同,作为他(用户) erc20的支出者
如果成功,-your薄荷函数将调用erc20.Transferm(用户、您/您的合同、金额)和薄荷。
function mint(uint256 quantity) external returns (bool) {
require(erc20.transferFrom(msg.sender, address(this), price*quantity), "transfer error");
_mint(quantity, user);
} //this is a mock and need further logic/control, esp if you accept third-party erc20https://ethereum.stackexchange.com/questions/113374
复制相似问题