我尝试使用 TonClient,但当我尝试扫描仪中显示的 TonKeeper 钱包的哈希值时,出现无效哈希错误。
逻辑时间(lt)到底是什么?有没有办法只用交易哈希来获取交易数据而不使用lt和地址?
https://testnet.tonscan.org/tx/6f97ca02d8f20151210ca2bef32340804214e4f74eebf6a9edf13b727ac2527e
// get tx data
;(async () => {
const lt = String(1)
const senderAddress = Address.parse('0QBh14OFHZqXqMyAHUio8EZ9FAf5smnkcmb0j533aHtFNcsF')
const tonTransferTx = '6f97ca02d8f20151210ca2bef32340804214e4f74eebf6a9edf13b727ac2527e'
const transactionData = await client.getTransaction(senderAddress, lt, tonTransferTx)
console.log('Transaction Data:', transactionData)
})()
返回错误
data: { ok: false, error: 'Invalid hash', code: 503 }
},
status:
没有LT就无法获取交易数据。
我找到了一个方法,可以从钱包中获取最后一笔交易的数据,从那里你可以得到交易的LT:
const state = await client.getContractState(walletAddress);
const { lt: lastLt, hash: lastHash } = state.lastTransaction;
const lastTx = await client.getTransaction(walletAddress, lastLt, lastHash);
因此,lastTX 将是钱包中最后一笔交易的数据
如果这对您不起作用,您可以尝试 client.getTransactions() 方法,您可以仅传递钱包地址并获取最后 10 笔交易作为响应