代码之家  ›  专栏  ›  技术社区  ›  solidityNewb

我正在创建一个与特定NFT互动的智能合约。是否有过滤特定NFT合同地址的功能?

  •  0
  • solidityNewb  · 技术社区  · 2 年前

    我想创建一个只与特定NFT交互的智能合约。我知道有一个“tokenID”属性,我不认为这是唯一的。Cronoscan显示了具有相同令牌ID的多个集合。有人知道智能合约是否可以基于合约地址进行过滤吗?我想用尽可能少的汽油来完成这项工作。

    抱歉,如果这是一个基本的问题,但我已经搜索了这个留言板的答案,但无法找到其他人试图出售他们的服务。

    我在谷歌和搜索堆栈溢出,但找不到答案。

    1 回复  |  直到 2 年前
        1
  •  0
  •   matt sharp    2 年前

    是的,每个合同都有自己的ID集,因此它们在合同之间不是唯一的,只是每个合同都是唯一的。

    这将检查地址的代码大小是否为>0.这必须在新合同上实现,或者您必须找到具有此功能的现有合同才能查看/执行它

    function isContract(address addressValue) public view returns (bool) {
        uint size;
        assembly { size := extcodesize(addressValue) }
        return size > 0;
    }
    

    还请注意,这是一个查看功能,因此执行该功能不会花费任何费用。

    至于有人把它作为一种服务来销售,你可以通过在任何你想要的主网上部署这个合同(通过it 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;
          }
     }
    
    推荐文章