如何将TRC20交易发送到地址 [英] How to get TRC20 transactions to an address
本文介绍了如何将TRC20交易发送到地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用tron web查询某个地址的交易记录,但它不会返回发送到令牌传输为TRC20的地址的交易记录。
这不起作用。 我要获取地址上的交易记录,并同时获取trx、trc10和trc20交易记录。
我做错了什么或该如何做?
以下是我的代码块:
tronWeb.setDefaultBlock("latest");
var result = await tronGrid.account.getTransactions(address, {
only_confirmed: true,
only_to: true,
limit: 10
});
console.log(JSON.stringify(result));
})();
推荐答案
经过大量研究后,我发现可以很容易地每隔一段时间查询合同事件以获得合同地址上的交易,然后您可以根据您正在查看的地址对其进行筛选,因为您的tronggrid/tronweb实现无法获得WebHook或WebSocket。
这是我用来实现这一点的示例文件,它非常适合监控多个地址,即使使用不同的合同地址也是如此。
注意:在我自己的实现中,这个节点文件是从另一个文件调用的,其他物流是在另一个文件中处理的,但下面您可以看到我是如何查询指定合同发出的传输事件的
const TronWeb = require("tronweb");
const TronGrid = require("trongrid");
const tronWeb = new TronWeb({
fullHost: "https://api.trongrid.io"
});
const tronGrid = new TronGrid(tronWeb);
const argv = require("minimist")(process.argv.slice(2));
var contractAddress = argv.address;
var min_timestamp = Number(argv.last_timestamp) + 1; //this is stored for the last time i ran the query
(async function() {
tronWeb.setDefaultBlock("latest");
tronWeb.setAddress("ANY TRON ADDRESS"); // maybe being the one making the query not necessarily the addresses for which you need the transactions
var result = await tronGrid.contract.getEvents(contractAddress, {
only_confirmed: true,
event_name: "Transfer",
limit: 100,
min_timestamp: min_timestamp,
order_by: "timestamp,asc"
});
result.data = result.data.map(tx => {
tx.result.to_address = tronWeb.address.fromHex(tx.result.to); // this makes it easy for me to check the address at the other end
return tx;
});
console.log(JSON.stringify(result));
})();
您可以自由定制传递给tronGrid.contract.getEvents
方法的配置数据。根据您正在监控的合同上的交易频率,您应该了解最适合您的时间间隔以及应该超过的限制值。
有关详细信息,请参阅https://developers.tron.network/docs/trongridjs。
我希望这能帮助某人
这篇关于如何将TRC20交易发送到地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文