本文环境:
区块链版本:以太坊POA联盟链+ metamask + remix
节点版本: geth 1.9.19
操作系统:windows 64
合约版本:solidity ^0.8.0
本文介绍一种实现盲盒功能的智能合约,作为 ERC1155 的示例;
1. 合约源码
//SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/security/Pausable.sol";contract BlindBox is Ownable, ERC1155, Pausable {string public name;string public symbol;string public baseURL;mapping(address => bool) public minters;modifier onlyMinter() {require(minters[_msgSender()], "Mint: caller is not the minter");_;}struct Box {uint id;string name;uint256 mintNum;uint256 openNum;uint256