如何判断RSK上的智能合约是否为NFT?
给定部署到RSK的智能合约的地址,我如何判断它是否为NFT?有没有一种“标准”的方法可以做到这一点?是的,有一种明确的方法可以做到这一点, 如果智能合约为NFT实施众所周知的令牌标准, 这反过来又实现了众所周知的 (1) 最简单的方法是在RSK块资源管理器上查找地址 如果智能合约地址为如何判断RSK上的智能合约是否为NFT?,nft,rsk,Nft,Rsk,给定部署到RSK的智能合约的地址,我如何判断它是否为NFT?有没有一种“标准”的方法可以做到这一点?是的,有一种明确的方法可以做到这一点, 如果智能合约为NFT实施众所周知的令牌标准, 这反过来又实现了众所周知的 (1) 最简单的方法是在RSK块资源管理器上查找地址 如果智能合约地址为0x814eb350813c993df32044f862b800f91e0aaaf0,则转至 在此页面上,您将看到“合同接口”的一行, 在这个智能合约的情况下, 显示ERC165 ERC721 ERC721可数E
0x814eb350813c993df32044f862b800f91e0aaaf0
,则转至
在此页面上,您将看到“合同接口”的一行,
在这个智能合约的情况下,
显示ERC165 ERC721 ERC721可数ERC721元数据
。
由于它包含ERC721
,我们知道它实现了不可替换令牌的令牌标准
(2) 更具编程性/DIY的方法是使用EIP165标准中定义的功能,其接口复制如下:
interface ERC165 {
/// @notice Query if a contract implements an interface
/// @param interfaceID The interface identifier, as specified in ERC-165
/// @dev Interface identification is specified in ERC-165. This function
/// uses less than 30,000 gas.
/// @return `true` if the contract implements `interfaceID` and
/// `interfaceID` is not 0xffffffff, `false` otherwise
function supportsInterface(bytes4 interfaceID) external view returns (bool);
}
不需要太多的数学计算,
(完整说明/解释请参阅EIP-165标准)
如果调用supportsInterface
返回true
,则您知道
该智能合约(声称)实现该特定接口
- 如果希望测试特定智能合约是否实现
:
- 调用
supportsInterface(0x80ac58cd)
- 调用
- 如果希望测试特定智能合约是否实现
,
这是目前第二流行的NFT标准:
- 调用
支持接口(0xd9b67a26)
- 调用