如何查看TON Web的交易历史?附已完成转账代码示例
查看TON Web交易历史的实现方法
你可以通过TON官方提供的SDK或API节点来查询钱包的交易历史,以下是两种贴合你现有代码环境的实现方式:
方法一:通过钱包合约直接查询
利用TON Web的getTransactions方法,可直接从钱包合约获取交易记录,在你现有代码基础上添加如下逻辑即可:
// 假设已完成client和walletContract的初始化 const transactions = await walletContract.getTransactions({ limit: 10, // 指定要获取的交易数量 lt: 0, // 起始逻辑时间戳,0表示从最新交易开始查询 hash: '' // 起始交易哈希,留空则从最新交易开始 }); // 遍历输出交易详情 transactions.forEach(tx => { console.log('交易哈希:', tx.hash); console.log('交易时间:', new Date(tx.date * 1000)); console.log('转账金额:', tx.outMessages[0]?.value / 1e9, 'TON'); console.log('接收地址:', tx.outMessages[0]?.destination); console.log('交易状态:', tx.status ? '成功' : '失败'); console.log('---'); });
方法二:通过TON API节点查询
如果需要更灵活的筛选(比如按时间范围、交易类型过滤),可以直接调用TON公共API节点接口,示例代码如下:
const walletAddress = "你的钱包地址"; const apiEndpoint = "https://toncenter.com/api/v2"; const response = await fetch(`${apiEndpoint}/getTransactions?address=${walletAddress}&limit=10&sort=desc`); const data = await response.json(); if (data.ok) { data.result.forEach(tx => { console.log('交易ID:', tx.transaction_id.hash); console.log('交易时间:', new Date(tx.utime * 1000)); console.log('转账金额:', tx.out_msgs[0]?.value / 1e9, 'TON'); console.log('目标地址:', tx.out_msgs[0]?.destination); console.log('---'); }); }
注意事项
- 调整
limit参数可控制返回的交易数量,公共节点通常支持最大100条左右的单次查询 - 交易金额的原始单位是纳TON,需除以
1e9转换为标准TON单位 - 公共API节点存在请求频率限制,高频查询建议搭建私有节点
内容的提问来源于stack exchange,提问作者Rin Kaidjo
相关产品推荐
相关产品推荐

