[英]How to track transaction status on elrond network
有人可以幫助跟蹤 elrond.network 上價值轉移的交易狀態嗎?
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
發送我的交易。
根據 erdjs 文檔的文檔,您可以使用TransactionWatcher 。
以下是文檔中的簡化示例:
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/
我沒有設法使用觀察者,所以我每 0.5 秒從 sessionStorage 讀取一次數據,直到狀態為“成功”
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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.