首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Solana上NFT的所有事务

获取Solana上NFT的所有事务
EN

Stack Overflow用户
提问于 2022-07-07 19:29:23
回答 1查看 827关注 0票数 1

我想收集NFT的所有事务。

例如,您可以在这里显示所有事务:

https://explorer.solana.com/address/2Nzt8TYeAfgJDftKzkb7rgYShVvyXTR7cPVvpqaZ2a4V

或者在这里:

https://solscan.io/token/2Nzt8TYeAfgJDftKzkb7rgYShVvyXTR7cPVvpqaZ2a4V#txs

但是有什么方法可以用API来做到这一点呢?

我查过了

solana-py:https://michaelhly.github.io/solana-py/

和solscan:https://public-api.solscan.io/docs/

但我找不到办法去做。

EN

回答 1

Stack Overflow用户

发布于 2022-07-08 02:20:42

您可以在薄荷地址上使用getSignaturesForAddress RPC方法并向后走以获取所有事务。

以下是JS中的一个示例:

代码语言:javascript
复制
import {
  Connection,
  clusterApiUrl,
  ConfirmedSignatureInfo,
  PublicKey,
} from "@solana/web3.js";

const connection = new Connection(clusterApiUrl("mainnet-beta"));

export const getTxs = async (connection: Connection, pubkey: PublicKey) => {
  const txs: ConfirmedSignatureInfo[] = [];

  // Walk backward
  let lastTransactions = await connection.getConfirmedSignaturesForAddress2(
    pubkey
  );
  let before = lastTransactions[lastTransactions.length - 1].signature;
  txs.push(...lastTransactions);

  while (true) {
    const newTransactions = await connection.getConfirmedSignaturesForAddress2(
      pubkey,
      {
        before,
      }
    );
    if (newTransactions.length === 0) break;
    txs.push(...newTransactions);
    before = newTransactions[newTransactions.length - 1].signature;
  }

  return txs;
};

getTxs(
  connection,
  new PublicKey("2Nzt8TYeAfgJDftKzkb7rgYShVvyXTR7cPVvpqaZ2a4V")
);

Solana.py中的等价方法是这个地址

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72903266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档