![](/img/trans.png)
[英]ERC721 NFT creating a function to buy/sell NFTs that have been preminted by the contract owner, security question
[英]I'm creating a smart contract to interact with specific NFTs. Is there a function to filter a specific NFT contract address?
我想创建一个只与特定 NFT 交互的智能合约。 我知道有一个“tokenID”属性,我认为这不是唯一的。 Cronoscan 显示多个具有相同 tokenID 的 collections。 有谁知道智能合约是否可以根据合约地址进行过滤? 我想用尽可能少的气体来完成这个。
很抱歉,如果这是一个基本问题,但我已经用谷歌搜索并搜索了这个留言板的答案,但无法在其他人试图出售他们的服务的地方找到答案。
我谷歌并搜索 Stack Overflow 但找不到答案。
是的,每个合约都有自己的一组 ID,因此它们在合约之间不是唯一的,只是每个合约唯一。
这将检查地址的代码大小是否 > 0。这将必须在新合约上实施,或者您必须找到具有此功能的现有合约才能查看/执行它
function isContract(address addressValue) public view returns (bool) {
uint size;
assembly { size := extcodesize(addressValue) }
return size > 0;
}
另请注意,这是一个视图 function,因此不会花费任何气体来执行。
对于将其作为服务出售的人,您可以通过在您想要的任何 main.net 上部署该合约来自己获得它(听起来像 Cronos)。
'// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
contract ContractIdentifier{
function isContract(address addressValue) public view returns (bool) {
uint size;
assembly { size := extcodesize(addressValue) }
return size > 0;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.