首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ERC20在ERC721中的应用

ERC20在ERC721中的应用
EN

Ethereum用户
提问于 2022-03-27 10:06:20
回答 1查看 232关注 0票数 0

我有很大的怀疑。我正在构建一个应用程序,用户可以在其中创建他们的NFT,但是,用于创建NFT的支付将是我的令牌ERC20。

我的问题是,当用户创建NFT时,如何使用ERC20令牌作为收费?记住,费用是由创建NFT的人的帐户支付的。

对于一个基本的例子,我的合同ERC721有以下方法..。

代码语言:javascript
复制
contract MyNFT is ERC721 {
.....
function createNft() public{
//need here add the method payment using my token erc20
}
.....
}
EN

回答 1

Ethereum用户

发布于 2022-03-27 10:35:32

您需要导入IERC20接口,然后将用于事务的令牌定义为状态变量。

IERC20 token = IERC20(0x123...)

在您的函数中,您需要调用token.transferFrom(msg.sender, address(this), amount)函数,这个函数将从用户的余额中获取令牌,并将其转移到契约中,在此之前,它要求用户在您的ERC20令牌上调用approve函数,以增加您的合同对其令牌的允许。

这就是为什么每次与智能合同交互时都需要批准的原因(例如,Uniswap、Pancakeswap、Aave等)。

因此,概括地说:

  1. 必须部署令牌(ERC20)
  2. 您必须在NFT合同( mint函数所在的位置)上使用IERC20接口加载您的IERC20。
  3. 您必须部署NFT。
  4. 用户调用您的ERC20令牌的审批函数(部署了第一个合同),您的合同地址为spender (NFT契约,以便它可以使用用户与transferFrom的余额)
  5. 用户调用您的mint函数(NFT契约),它将从其余额中提取令牌并将它们发送到智能契约。
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/124810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档