发布
社区首页 >问答首页 >如何确定交易是否已在Solana上完成

如何确定交易是否已在Solana上完成
EN

Stack Overflow用户
提问于 2022-07-01 16:26:48
回答 3查看 317关注 0票数 1

如何使用Solana Javascript API (@ Solana /web3.js)获取solana上事务的当前状态?

https://solscan.io/tx/4fwgX16WDwYj5hZ2t5xEHz6UUnuaTovJpMeoWWEBvuA7z1baf1qX1BW2EGZVR9ChSyJZ8akeLX6EDTadFcEcSTdy

这是我尝试过的,但似乎只适用于最近的交易。

代码语言:javascript
代码运行次数:0
复制
const { Connection, clusterApiUrl } = require("@solana/web3.js");

(async () => {
    const connection = new Connection(clusterApiUrl('mainnet-beta'));
    const status = await connection.getSignatureStatus("4fwgX16WDwYj5hZ2t5xEHz6UUnuaTovJpMeoWWEBvuA7z1baf1qX1BW2EGZVR9ChSyJZ8akeLX6EDTadFcEcSTdy");
    console.log(status);
})();
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-07-02 04:23:21

尝试将searchTransactionHistory: true添加到SignatureStatusConfig

代码语言:javascript
代码运行次数:0
复制
const getConfirmation = async (connection: Connection, tx: string) => {
  const result = await connection.getSignatureStatus(tx, {
    searchTransactionHistory: true,
  });
  return result.value?.confirmationStatus;
};

https://docs.solana.com/developing/clients/jsonrpc-api#getsignaturestatuses

票数 1
EN

Stack Overflow用户

发布于 2022-07-02 13:51:15

您还可以尝试将连接的承诺级别设置为“已完成”

代码语言:javascript
代码运行次数:0
复制
new Connection(clusterApiUrl('mainnet-beta'), 'finalized');
票数 0
EN

Stack Overflow用户

发布于 2022-07-06 03:05:38

您还可以使用confirmTransaction函数:

代码语言:javascript
代码运行次数:0
复制
const { Connection, clusterApiUrl } = require("@solana/web3.js");

(async () => {
    const connection = new Connection(clusterApiUrl('mainnet-beta'));
    const result = await connection.confirmTransaction({
        signature: "4fwgX16WDwYj5hZ2t5xEHz6UUnuaTovJpMeoWWEBvuA7z1baf1qX1BW2EGZVR9ChSyJZ8akeLX6EDTadFcEcSTdy"
    },
    'finalized');
    console.log(result);
})();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72832192

复制
相关文章

相似问题

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