通过 metaplex candy machine id 过滤钱包中的 NFT
Filter NFT's in wallet by metaplex candy machine id
有什么方法可以通过 metaplex 糖果机 ID 过滤用户钱包吗?
我知道如何通过 getParsedTokenAccountsByOwner
.
获取所有用户的 nfts
const tokens = await connection.getParsedTokenAccountsByOwner(publicKey, {
mint: mintAccount,
programId,
});
const nftList = tokens.value.filter((row) => {
return row.account.data.parsed.info.tokenAmount.amount === "1";
});
问题是,我必须获取每个令牌的元数据,然后从那里过滤它,这对链来说是很多不必要的点击。我知道我可以通过 getProgramAccounts
获取糖果机的所有地址,但这很慢,并且可能需要大约 30 seconds
到 运行.
这个 def 使特定糖果机令牌的前端显示令人沮丧,没有任何类型的缓存层 + 定期轮询,我尽可能避免这种情况。
好的,我明白了!
- 获取用户钱包中每个 nft 的 solana 元数据。 (感谢 metaplex 助手,非常简单)
- 过滤匹配的更新权限(通常是用于创建糖果机的钱包)
const connection = new Connection('mainnet-beta');
const ownerPublickey = 'OWNER_PUBLICK_KEY';
const nftsmetadata = await Metadata.findDataByOwner(connection, ownerPublickey)
.filter((r) => r.updateAuthority === 'SOLANAWALLETADDRESS');
// Profit
console.log(nftsmetadata)
我这个问题并没有得到太多的关注,但是对于 uilding ui 在 solana 之上的人来说,这个问题并不明显,而且很难弄清楚。由于 solana 的 api 对某些人来说可能很重要。值得庆幸的是,Metaplex 社区在创建ui一些很棒的辅助方法方面做得非常出色,让这一切变得超级简单。
还要向 solana 食谱的人们大声喊叫,你们帮助将这里的点连接起来。你可以在这里看到更多很棒的 nft 相关助手:
https://solanacookbook.com/references/nfts.html#candy-machine-v2
感谢您跟进解决方案。不幸的是,这项新技术的文档和回复很少,所以我真的很感激。
对于发现此问题的任何其他人,findDataByOwner 现在已贬值。我找不到什么,如果有的话,已经取代了它。截至目前,如果您需要此功能,可以使用旧版本。
有什么方法可以通过 metaplex 糖果机 ID 过滤用户钱包吗?
我知道如何通过 getParsedTokenAccountsByOwner
.
const tokens = await connection.getParsedTokenAccountsByOwner(publicKey, {
mint: mintAccount,
programId,
});
const nftList = tokens.value.filter((row) => {
return row.account.data.parsed.info.tokenAmount.amount === "1";
});
问题是,我必须获取每个令牌的元数据,然后从那里过滤它,这对链来说是很多不必要的点击。我知道我可以通过 getProgramAccounts
获取糖果机的所有地址,但这很慢,并且可能需要大约 30 seconds
到 运行.
这个 def 使特定糖果机令牌的前端显示令人沮丧,没有任何类型的缓存层 + 定期轮询,我尽可能避免这种情况。
好的,我明白了!
- 获取用户钱包中每个 nft 的 solana 元数据。 (感谢 metaplex 助手,非常简单)
- 过滤匹配的更新权限(通常是用于创建糖果机的钱包)
const connection = new Connection('mainnet-beta');
const ownerPublickey = 'OWNER_PUBLICK_KEY';
const nftsmetadata = await Metadata.findDataByOwner(connection, ownerPublickey)
.filter((r) => r.updateAuthority === 'SOLANAWALLETADDRESS');
// Profit
console.log(nftsmetadata)
我这个问题并没有得到太多的关注,但是对于 uilding ui 在 solana 之上的人来说,这个问题并不明显,而且很难弄清楚。由于 solana 的 api 对某些人来说可能很重要。值得庆幸的是,Metaplex 社区在创建ui一些很棒的辅助方法方面做得非常出色,让这一切变得超级简单。
还要向 solana 食谱的人们大声喊叫,你们帮助将这里的点连接起来。你可以在这里看到更多很棒的 nft 相关助手:
https://solanacookbook.com/references/nfts.html#candy-machine-v2
感谢您跟进解决方案。不幸的是,这项新技术的文档和回复很少,所以我真的很感激。
对于发现此问题的任何其他人,findDataByOwner 现在已贬值。我找不到什么,如果有的话,已经取代了它。截至目前,如果您需要此功能,可以使用旧版本。