ERC-1155元数据URI何时需要将零填充为64个十六进制字符?



EIP-155声明"替换的十六进制ID的字符串格式必须将前导零填充为64十六进制字符长度必要时

!">

在什么情况下需要0填充十六进制ID ?奇怪的是他们选择使用关键字MUST在这里,似乎选择是否使用64十六进制字符填充完全是任意的。

我明白不能存在超过2^256个id(64个十六进制数字),但是ERC-1155令牌的元数据URI的选择不是与实现相关的吗?

例如,如果我想创建一个仅由64个nft组成的ERC-1155令牌,我更喜欢这样定义元数据url:

https://{DOMAIN}/1.json
https://{DOMAIN}/2.json
...
https://{DOMAIN}/40.json (64 in hex)

我怀疑ERC-1155是用uint256作为数字类型的标准构建的,并且要求ID填充为64个十六进制字符意味着所有256位信息都被明确指定。也许这减轻了不干净的前导位的潜在问题?

填充似乎并不是功能的严格必要条件——我看到过使用未填充元数据url的智能合约,比如Mining.game(https://mumbai.polygonscan.com/address/0x1a3d0451f48ebef398dd4c134ae60846274b7ce0代码),(https://api.mining.game/1.json) .

这是在Polygon测试网,而不是主网,所以请记住,代码质量可能不是一流的。但不管怎样,它似乎是有效的。

相关内容

  • 没有找到相关文章

最新更新