One More生态之智能合约
作者: 投资币 时间: 2024-10-31 14:46 阅读: 1243
编写合约
在您选择的 IDE 中打开新目录并在其中创建一个名为GameItem.sol文件
我们分解一下这段代码的一些关键部分:
在第 2 行中,我们定义了我们要使用的 Solidity 版本。
从第 4-5 行开始,我们从OpenZeppelin导入必要的合约,以快速创建ERC721的实现,而无需“重新发明轮子”。导入的 2 个合同是:
ERC721.sol: Non-Fungible Tokens的“vanilla”实现,已经实现了大量有用的辅助函数。有关详细信息,请参阅OpenZeppelin 的文档
Counters.sol:提供只能递增、递减或重置的计数器,我们可以使用它们来跟踪铸造的总代币以及快速获取下一个铸造的 tokenId。
接下来几行定义 NFT 合约本身,第 7 行定义 NFT 继承自 ERC721。请注意,Solidity 合约支持使用 mixin,并且可以同时继承多个不同的合约。稍后会详细介绍。
第 8-9 行导入并声明一个计数器,我们将使用它来有效地跟踪合约中铸造的总代币。
第11行定义了构造函数,它现在只是调用其父ERC721构造函数,并传入两个字符串:名称和符号。
最后,我们定义了梦寐以求的awardItem函数。可以通过传递有效的收件人地址来调用此公共函数,以铸造新的 NFT。
它增加我们当前的 TokenId 计数器
使用 OpenZeppelin 的 safeMint 方法将 Counter 的下一个值创建到收件人最后,它将新生成的令牌的 ID 返回给调用者。
最后,它将新生成的令牌的 ID 返回给调用者。