我有很大的怀疑。我正在构建一个应用程序,用户可以在其中创建他们的NFT,但是,用于创建NFT的支付将是我的令牌ERC20。
我的问题是,当用户创建NFT时,如何使用ERC20令牌作为收费?记住,费用是由创建NFT的人的帐户支付的。
对于一个基本的例子,我的合同ERC721有以下方法..。
contract MyNFT is ERC721 {
.....
function createNft() public{
//need here add the method payment using my token erc20
}
.....
}发布于 2022-03-27 10:35:32
您需要导入IERC20接口,然后将用于事务的令牌定义为状态变量。
IERC20 token = IERC20(0x123...)
在您的函数中,您需要调用token.transferFrom(msg.sender, address(this), amount)函数,这个函数将从用户的余额中获取令牌,并将其转移到契约中,在此之前,它要求用户在您的ERC20令牌上调用approve函数,以增加您的合同对其令牌的允许。
这就是为什么每次与智能合同交互时都需要批准的原因(例如,Uniswap、Pancakeswap、Aave等)。
因此,概括地说:
spender (NFT契约,以便它可以使用用户与transferFrom的余额)https://ethereum.stackexchange.com/questions/124810
复制相似问题