我正试图开发一个令牌门户网站,用户将需要连接他们的钱包,并证明他们拥有一个NFT集合。
通常,对于具有合同地址的NFT集合来说,这是相当简单的。我们可以简单地做:
const contract = await new ethers.Contract(contractAddress, abi, provider);
const balance = await contract.balanceOf(walletAddress);但是,在我的例子中,NFT集合是在Opensea上创建的,地址是0x495f947276749Ce646f68AC8c248420045cb7b5e。在这个地址下会有很多其他的收藏品。因此,我不确定是否能够证明用户对Opensea创建的NFT集合的所有权。我读过Opensea和Opensea,但什么也没有发现。
发布于 2022-09-06 05:16:43
这是可能的,通过跟踪你想要的集合,直到“薄荷”。话虽如此,而且考虑到Opensea使用的是懒惰的薄荷(也就是说,在第一次销售之前,令牌是不会被铸造的),它确实具有挑战性。
一个解决方案是跟踪所有NFT历史,直到第一个事务,并确定实际传输NFT的地址。
下面是一个示例:
https://etherscan.io/tx/0xc4d8ec0d8a841ec68ee1b83dbca127a6b5fcb42fffc2d478d8863733ce28e310
这是这个特定NFT的第一个事务。传输NFT的地址(0x55c8423f6247be9a523effa5423f680c2777206e)实际上是集合的创建者/所有者。
您还可以在这里看到完整的历史:
https://stackoverflow.com/questions/73589892
复制相似问题