本篇接上篇:https://blog.csdn.net/wonderBlock/article/details/112754494
通过上篇文档,测试了ERC1155的部署、查询和转账功能:
- ERC1155的显著特点是它使用一个智能合约一次表示多个token。
- ERC1155不需要为每种token类型部署新的合约,单个ERC1155合约可以保存整个系统状态,从而降低部署成本和复杂性。
- 该标准提供了balanceOfBatch 和 safeBatchTransferFrom两个功能,使查询多个余额和传输多个token变得更简单,大大减少了需要支付的gas费。
以上特点可以为需要多个代币的项目节省大量的gas费;也使得ERC1155合约具备了平台化功能。
1. 部署ERC1155合约
在前面所有合约不做修改的情况下,写一个新的用于实际部署的erc1155合约:
GameItems_1.sol
// contracts/GameItems.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
contract GameItems is ERC1155 {
address private founder;
constructor() public ERC1155("https://game.example/a