NFT元宇宙挖矿生态系统开发部署详情

2022-11-08 10:47:04 浏览数 (2)

随着 Web3 和 NFT 领域的繁荣发展,越来越多的开发者涌进了 Web3 行业。大部分的 Web3 项目在开发过程中,都需要使用一部分 NFT 相关的数据,由此也产生了对 NFT API 数据服务的需求。

函数修饰符,实践和状态变量

现在实现函数修饰符,事件以及这个 App 的存储数据的状态变量。以下代码中的评论会说明这些东西都使用在了哪里,或者你可以参考 GitHub 代码仓库。

代码语言:javascript复制
contract NftMarketplace is ReentrancyGuard {

    struct Listing {
        uint256 price;
        address seller;
    }

   event ItemListed(
        address indexed seller,
        address indexed nftAddress,
        uint256 indexed tokenId,
        uint256 price
    );

   // State Variables
   mapping(address => mapping(uint256 => Listing)) private s_listings;
   mapping(address => uint256) private s_proceeds;

   // Function modifiers
   modifier notListed(
        address nftAddress,
        uint256 tokenId,
        address owner
   ) {
        Listing memory listing = s_listings[nftAddress][tokenId];
        if (listing.price > 0) {
            revert AlreadyListed(nftAddress, tokenId);
        }
        _;
    }

编写可升级合约

代码语言:javascript复制
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";

contract OpenProxy is Initializable {
    uint public value;

    function initialize(uint _value) public initializer {
        value = _value;
    }

    function increaseValue() external {
          value;
    }
}

0 人点赞