Erc-20

如何使用 ERC20 為 ERC721 編寫購買函式?

  • November 11, 2021

我正在嘗試在我們的 erc721 合約中編寫一個函式來購買帶有 erc20 代幣的 nft 代幣。據我了解,不可能將erc20導入erc721。這是否意味著購買功能本身會進入單獨的契約?在這種情況下,我們如何從 erc721 合約中訪問 mint 函式?

我用“帶有erc20令牌的solidity purchase nft”搜尋了整個Google和堆棧交換,但找不到任何東西。這意味著我可能遺漏了一些明顯的東西

這是可能的,但流程/使用者體驗與從 eth 購買(使用者通過 mint() 交易發送 eth)略有不同:

-使用者必須批准(即您的前端需要處理它)您的erc721契約作為他(使用者)erc20的花費者

  • 然後你的鑄幣函式將呼叫 erc20.transferFrom(user, you/your contract, the amount) 如果成功則鑄幣。
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 erc20

引用自:https://ethereum.stackexchange.com/questions/113374