ERC20

// contracts/GLDToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract GLDToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("Gold", "GLD") {
        _mint(msg.sender, initialSupply);
    }
}

ERC721

// contracts/GameItem.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract GameItem is ERC721URIStorage {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    constructor() ERC721("GameItem", "ITM") {}

    function awardItem(address player, string memory tokenURI)
        public
        returns (uint256)
    {
        uint256 newItemId = _tokenIds.current();
        _mint(player, newItemId);
        _setTokenURI(newItemId, tokenURI);

        _tokenIds.increment();
        return newItemId;
    }
}

ERC721URIStorage合约是 ERC721 的实现,包括元数据标准扩展 ( IERC721Metadata) 以及每个令牌元数据的机制。这就是该_setTokenURI方法的来源:我们使用它来存储项目的元数据。 更多内容 https://docs.openzeppelin.com/contracts/4.x/api/token/erc721

1155

// contracts/GameItems.sol  
// SPDX-License-Identifier: MIT  
pragma solidity ^0.8.0;  
  
import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol";  
import "@openzeppelin/contracts/utils/Counters.sol";  
  
contract GameItem is ERC1155URIStorage {  
    using Counters for Counters.Counter;  
    Counters.Counter private _tokenIds;  
  
    constructor() ERC1155("") {}  
  
    function awardItem(address player, string memory url,uint256 number)  
    public  
    returns (uint256)  
    {  
        require(bytes(url).length > 0,"number>0");  
        require(number>0,"number>0");  
  
        uint256 newItemId = _tokenIds.current();  
        _mint(player, newItemId, number, "");  
  
        _setURI(newItemId,url);  
  
        _tokenIds.increment();  
        return newItemId;  
    }  
}

https://mirror.xyz/xing824.eth/O3hpbibMf9vLNz6p80YUriU8Bf3bEaJWvRL49FGAgAc

https://wyvernprotocol.com/docs

https://blog.csdn.net/qq_59591392/article/details/124245517

https://victoryeo-62924.medium.com/wyvern-protocol-in-opensea-nft-marketplace-b0cef9a9143a

https://github.com/wyvernprotocol/wyvern-v3/pull/39/files