首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在elrond网络上跟踪事务状态

如何在elrond网络上跟踪事务状态
EN

Stack Overflow用户
提问于 2022-02-07 18:35:01
回答 2查看 375关注 0票数 2

有人能帮助跟踪elrond网络上价值转移的事务状态吗?

代码语言:javascript
复制
   const testTransaction = new Transaction({
      value: Balance.egld(1),
      data: new TransactionPayload('Test Transfer'),
      receiver: new Address(ownerWallet),
      nonce: sender.nonce,
      gasPrice: new GasPrice(10000000000,
      gasLimit: new GasLimit(1000000)
    });

    await refreshAccount();

    const { sessionId  } = await sendTransactions({
      transactions: testTransaction,
      transactionsDisplayInfo: {
        processingMessage: 'Processing transaction',
        errorMessage: 'An error has occured during Transaction',
        successMessage: 'Transaction successful'
      }
    });

我目前正在使用sendTransactions发送事务。

EN

回答 2

Stack Overflow用户

发布于 2022-02-09 10:25:58

根据erdjs文档的文档,您可以使用TransactionWatcher.

下面是文档中的一个简化示例:

代码语言:javascript
复制
await tx1.send(provider);

let watcher = new TransactionWatcher(tx1.hash, provider);
await watcher.awaitStatus(status => status.isExecuted());

erdjs文档:https://elrondnetwork.github.io/elrond-sdk-docs/erdjs/latest/

票数 2
EN

Stack Overflow用户

发布于 2022-10-02 04:55:36

我没有设法使用观察者,所以每隔0.5秒就从sessionStorage读取数据,直到状态“成功”为止

代码语言:javascript
复制
let transactions = JSON.parse(sessionStorage.getItem('persist:dapp-core-transactions'));
    const txData = JSON.parse(sessionStorage.getItem('txData'));
    let txSessionId = sessionStorage.getItem('txSessionId');
    let signedTransactions = JSON.parse(transactions.signedTransactions);
    let currentTransaction = signedTransactions[txSessionId];
    // if (currentTransaction != null) {
    //     let transactionOnNetwork = await watcher.awaitCompleted();
    //     console.log(transactionOnNetwork);
    // }

    // console.log(signedTransactions);
    if (currentTransaction && txSessionId) {
        console.log(currentTransaction);
        if (currentTransaction.status === 'sent') {
            const checkTransaction = setInterval(async () => {
                console.log("Checking transaction status");
                let transactions = JSON.parse(sessionStorage.getItem('persist:dapp-core-transactions'));
                let signedTransactions = JSON.parse(transactions.signedTransactions);
                let currentTransaction = signedTransactions[txSessionId];
                if (currentTransaction.status === 'success' && txData) {
                    clearInterval(checkTransaction);                        
                    await doSomething(currentTransaction);
                    sessionStorage.removeItem('txSessionId');
                }
            }, 500);
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71023682

复制
相关文章

相似问题

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