V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
railsboy
V2EX  ›  区块链

如何把链上所有的 nft 保存到库中?

  •  
  •   railsboy · 2022-09-08 15:02:01 +08:00 · 1255 次点击
    这是一个创建于 836 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬们,知道如何获取链上所有的 nft 吗,我在做一个需求,需要获取所有的 nft ,保存到库中,想着用 ether.js 来用 filter 监听 transfer 事件

    不限于某一个合约,不管是哪一个合约,只要是合约,但是只要产生 transfer 事件,都可以去监听,都可以收集起来,这样就得到了所有的 nft

    如何实现?

    谢谢。

    3 条回复    2022-09-09 10:31:21 +08:00
    railsboy
        1
    railsboy  
    OP
       2022-09-08 15:15:10 +08:00
    也尝试了这种: https://docs.ethers.io/v5/api/providers/provider/#Provider-getBlockWithTransactions ,通过 block 来获取 transaction
    harrytse94
        2
    harrytse94  
       2022-09-08 17:34:29 +08:00
    解析区块链上所有(直接读取所有区块的交易)的 contract create 交易 ( https://ethereum.stackexchange.com/questions/29573/how-do-i-determine-whether-the-transaction-is-used-for-the-contract-creation),然后解析该合约地址是否是 nft 合约,原理大概是调用一些 nft 的方法看看是否正确返回,可以看 https://www.google.com/search?q=How+to+detect+if+an+Ethereum+address+is+an+ERC721+token+contract%3F&oq=How+to+detect+if+an+Ethereum+address+is+an+ERC721+token+contract%3F&aqs=chrome..69i57.4560j0j4&sourceid=chrome&ie=UTF-8


    更近一步的可以看看合约的事件是否符合 nft 的事件,如果还符合,大概率就是 nft 合约了

    另外 debank 这类服务集成了大多数的 nft ,他们应该是有所有的 nft 列表的,可以看看 /问问他们有没有开放出来
    railsboy
        3
    railsboy  
    OP
       2022-09-09 10:31:21 +08:00
    @harrytse94 谢谢🙏
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:04 · PVG 10:04 · LAX 18:04 · JFK 21:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.