本人github
通过交易哈希查询交易信息是区块链应用中的一个常见需求。你可以使用Web3.js或Ethers.js这样的JavaScript库来完成这项任务。以下是如何使用这两个库通过交易哈希查询交易信息的示例。
使用Web3.js查询交易信息
首先,确保你已经安装了web3
库:
npm install web3
然后,使用web3.eth.getTransaction
方法:
const Web3 = require('web3');
// 连接到以太坊节点
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
// 交易哈希
const txHash = '你的交易哈希';
// 查询交易信息
web3.eth.getTransaction(txHash).then(console.log);
这将返回一个交易对象,包含了如blockHash
、blockNumber
、from
、to
、value
等字段,展示了交易的详细信息。
使用Ethers.js查询交易信息
首先,确保你已经安装了ethers
库:
npm install ethers
然后,使用ethers
提供的方法:
const { ethers } = require('ethers');
// 连接到以太坊网络,这里使用的是默认提供者
const provider = new ethers.getDefaultProvider();
// 交易哈希
const txHash = '你的交易哈希';
// 查询交易信息
provider.getTransaction(txHash).then(console.log);
与Web3.js类似,getTransaction
方法返回一个Promise,解析后是包含交易详情的对象。
返回的交易对象
无论是Web3.js还是Ethers.js,通过交易哈希查询得到的交易对象通常包括:
blockHash
和blockNumber
:交易所在区块的哈希和编号。from
和to
:交易的发送方和接收方地址。value
:转移的以太币数量(对于ERC-20代币交易,这个值可能为0)。gas
和gasPrice
:交易的Gas限额和Gas价格。nonce
:发送方在当前交易前已经发送的交易数目。transactionIndex
:交易在区块中的索引位置。data
:交易数据,对于智能合约调用,这里包含了调用数据。
注意
- 确保使用正确的网络地址(如Mainnet、Ropsten测试网等)来初始化你的提供者(Provider)。
- 交易信息只有在交易被矿工处理并包含进区块后才能查询到。如果交易还没有被确认,某些字段(如
blockHash
和blockNumber
)可能是null。
通过这种方式,你可以获取到交易的详细信息,进一步用于交易确认、分析或在用户界面中显示。