如何用JavaScript查询Hive及Hive-Engine账户近期交易
查询Hive-Engine账户近期交易的JavaScript方案
你用hive.getAccountHistory()不行是因为这个方法只查询Hive主链的账户操作记录,而Hive-Engine的交易是侧链数据,存在独立的API节点中,得用Hive-Engine专属的接口来获取。下面是两种可行方案:
方案一:直接调用Hive-Engine REST API
用原生fetch或axios直接请求Hive-Engine的RPC接口,无需额外安装库:
async function getHiveEngineTxHistory(accountName, contract = "tokens", limit = 50) { const response = await fetch('https://api.hive-engine.com/rpc/contracts', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ jsonrpc: '2.0', method: 'find', params: { contract: contract, table: 'history', query: { account: accountName }, limit: limit, sort: { timestamp: -1 } // 按时间倒序,最新交易在前 }, id: 1 }) }); const data = await response.json(); return data.result; } // 使用示例 getHiveEngineTxHistory("your-account-name") .then(txs => console.log("近期交易记录:", txs)) .catch(err => console.error("获取失败:", err));
- 关键细节:
contract参数:不同交易对应不同合约,比如代币转账用tokens,市场挂单/成交用market,NFT交易用nft,按需调整- 分页获取更早记录:可在
query中添加timestamp: { $lt: 最后一条记录的timestamp },或设置skip参数跳过已加载的条目
方案二:使用Hive-Engine官方JS库
用封装好的库简化操作,适合复杂场景:
先安装依赖:
npm install @hive-engine/hive-engine-js
然后编写代码:
const { HiveEngine } = require("@hive-engine/hive-engine-js"); // 初始化客户端 const hiveEngine = new HiveEngine(); async function fetchTxHistory(accountName) { // 查询tokens合约下的账户交易历史,取最新50条 const history = await hiveEngine.contracts.find("tokens", "history", { account: accountName }, 50, 0, { timestamp: -1 }); console.log("交易记录:", history); } fetchTxHistory("your-account-name");
这个库除了查询历史,还支持签名交易、合约交互等功能,适合深度开发需求。
内容的提问来源于stack exchange,提问作者Developer Uganda
相关产品推荐
相关产品推荐

