• 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"
            },
    【总结】
    感觉是为属性设置了一个名称字符串,用于输出属性信息。
  • 相关阅读:
    intellij idea拉取最新的依赖包
    【数据结构】堆和优先级队列
    openstack在计算节点安装配置 Nova
    第四节、常见的java话题
    Single Image Haze Removal Using Dark Channel Prior(暗通道先验)
    界面控件DevExtreme——轻松将TreeList数据导出为PDF格式
    debug - JLX12864C(ST7920-12864)液晶屏不能使用串行通讯的原因
    公司项目JAVA开发规范总结(四)——knife4j使用规范
    struct 结构体【GO 基础】
    [论文阅读]Coordinate Attention for Efficient Mobile Network Design
  • 原文地址:https://blog.csdn.net/u012084827/article/details/127119193