使用 C# 监控 Polygon 钱包交易

Monitoring Polygon wallet transactions with c#

我是区块链开发新手。我有一个要求,在一个小时内,我需要监控一个 Eth 地址并检测任何交易,我将根据这些交易做一些逻辑。

最简单的方法就是暴力破解,比如每一分钟,获取该地址的交易并查看差异。但是对于同时有数百个地址,这是一个非常糟糕的主意。

我一直在寻找一种更优雅的处理方式。我查看了网络挂钩、订阅、网络套接字,但找不到任何包含 Polygon Mainnet 和 Mumbai 的内容。

此监控服务需要能够与数据库交互。这个想法是,在一个小时内,我们监控一个地址,我们看到一个新的交易,然后我们向数据库发送一些东西并停止监控。对此有什么解决方案?

谢谢。

似乎解决此问题的最有效方法是在多边形节点上设置一个侦听器。我建议使用炼金术并使用 ethers js 来监听新块。

https://docs.ethers.io/v5/single-page/#/v5/api/providers/provider/

  • 在 ethers js 文档上,您可以在将 ethers js 提供程序与您的炼金术节点连接后监听事件。

https://docs.ethers.io/v5/single-page/#/v5/api/providers/provider/-%23-Provider--events

  • 在文档的这一部分,您可以找到事件名称,可以解决您的问题的事件名称是“block”
provider.on("block",(blocknumber) => {
 // this function would work every time a new block is mined
});

为此我最终使用了 Nethereum 的 API。我设置了一个 Web3,一个 EventDTO 来模拟我试图跟踪的智能合约功能,以及一个 FilterInput 只是为了我关心的地址。我为 Matic Testnet 使用了带有 public 网络套接字 URL 的 StreamingWebSocketClient,然后我只是用 EthLogsObservableSubscription 跟踪日志,将事件解码到我的 EventDTO 中。