javascript 如何在Tron区块链中监听交易?

krcsximq  于 2023-11-15  发布在  Java
关注(0)|答案(3)|浏览(353)

我想跟踪Tron区块链网络上的交易。更准确地说,我想跟踪通过我自己的地址进行的交易,但我找不到任何方法。我尝试了以下方法,但它说“订阅”方法是一个未定义的方法。我发现了一些关于WebSocket的内容,我通过QuickNode获得了WebSocket API,但它也不起作用。有没有一种方法可以跟踪Tron网络上的交易?但我不想通过不断发出HTTP请求来实现这一点,我希望在有交易时得到通知。
我尝试了下面的代码和WebSocket方法,但没有结果。

this.web3 = new TronWeb({
  fullHost: this.network.host,
  solidityNode: this.network.host,
  eventServer: this.network.event,
});

this.web3.eventServer.subscribe('transactions', (error, event) => {
  if (error) {
     console.error('Error subscribing to transaction event:', error);
  } else {
     console.log('New transaction:', event);
  }
});

字符串

au9on6nz

au9on6nz1#

首先,免责声明,我使用QuickNode。
因此,您可以使用QuickNode的QuickAlerts跟踪进出您钱包的交易。
您必须使用以下表达式创建警报:

(tx_to == 'your_wallet_address') || (tx_from == 'your_wallet_address')

字符串
tx_to将跟踪进入您钱包的交易,tx_from将跟踪来自您钱包的交易。
您可以将所需的WebHook位置设置为接收交易信息的目的地。
要将QuickAlerts与JavaScript结合使用,您可以使用QuickAlerts的API;以下是一些资源:

du7egjpx

du7egjpx2#

当我尝试下面的代码时,它可以工作。但不幸的是,我仍然没有找到任何可以捕获TRX交易或所有交易的东西。

(async() => {
    let contract = await 
    tronWeb.contract().at("TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj");

    contract.Transfer().watch((err, event) => {
        if(err)
            return console.error('Error with "Message" event:', err); 
    
        console.log(event);
    });
})();

字符串

23c0lvtd

23c0lvtd3#

您可以使用tron事件查询来监听所有交易并过滤每个属于您的合约地址-https://developers.tron.network/docs/use-java-trons-built-in-message-queue-for-event-subscription

var zmq = require("zeromq"),
var sock = zmq.socket("sub");

sock.connect("tcp://127.0.0.1:5555");
sock.subscribe("block");
console.log("Subscriber connected to port 5555");

sock.on("message", function(topic, message) {
  console.log(
    "received a message related to:",
    Buffer.from(topic).toString(),
    ", containing message:",
    Buffer.from(message).toString()
  );
});

字符串
过滤示例(无事件查询)-https://github.com/ahmadbrainworks/tron-events

相关问题