• EIP-3664合约研究笔记06--text功能分析


    在 ERC3664.sol 中,存在着_texts数据,本文分析来龙去脉和用途。
    // attrId => tokenId => text
    mapping(uint256 => mapping(uint256 => bytes)) public _texts;
    在claim铸造NFT时,内部会添加属性,会设置属性的text:
    在 Metacore.sol  claim( name)    输入参数name=“metacore"
         attach(_curTokenId, METANAME, 1, bytes(name), true);
             if (text.length > 0) {
                _texts[attrId][tokenId] = text;    // 实际上_texts[1][1] = "metacore"
             }
    读取text
    function textOf(uint256 tokenId, uint256 attrId) public view virtual override  
    returns (bytes memory) {
            return _texts[attrId][tokenId];
    }
    这个textof函数是 IERC3664.sol接口规定的方法,必须予以实现。
    在读取属性时会调用textof,得到属性的text信息
    getAttributes()
        data = abi.encodePacked(
                    '{"trait_type":"',
                    symbol(id),
                    '","value":"',
                    textOf(tokenId, id),
                    '"}'
                );
    Metacore.sol 示例:
    "attributes":[
            {
                "trait_type":"Metaname",
                "value":"metacore"
            },
            {
                "trait_type":"Legoot V2",
                "value":"1"
            },
            {
                "trait_type":"SYNTHETIC",
                "value":"true"
            }
        ]
    Legoot.sol合约示例:
    "attributes":[
            {
                "trait_type":"WEAPON NAME",
                "value":"Quarterstaff"
            },
            {
                "trait_type":"WEAPON ID",
                "value":"8001"
            },
            {
                "trait_type":"CHEST NAME",
                "value":"Silk Robe"
            },
            {
                "trait_type":"CHEST ID",
                "value":"8002"
            },
    【总结】
    感觉是为属性设置了一个名称字符串,用于输出属性信息。
  • 相关阅读:
    无子女无遗嘱,去世后名下房产该归谁
    typescript+webpack构建一个js库
    如何用 CMake 生成 C++ 库(支持 find_package 机制)
    java计算机毕业设计校园网上跳蚤书市系统源码+mysql数据库+lw文档+系统+调试部署
    Java 各种工具类的使用方法
    Java基础知识及应用
    ABP: 关于IRepository不继承IQueryable<TEntity>的问题 / lQueryable和IEnumerable的区别
    Linux常用命令学习3
    [附源码]JAVA毕业设计高校校园社交网络(系统+LW)
    探索肠道细菌的营养偏好
  • 原文地址:https://blog.csdn.net/u012084827/article/details/127119193