我正在使用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));
})();发布于 2019-12-18 21:21:06
经过大量的研究,我发现人们可以很容易地查询合同事件,以获得合同地址上的交易,然后你可以过滤你正在监视的地址,因为你的trongrid/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。
我希望这能帮助到一些人
发布于 2021-09-05 18:51:46
我发现了一个可以接受TRC20事务的应用程序接口,但我还没有在webtron中找到一个实现。
https://api.shasta.trongrid.io/v1/accounts/address/transactions相关文档:https://developers.tron.network/reference#transaction-information-by-account-address
https://stackoverflow.com/questions/58940476
复制相似问题