bsc 通过地址 Web3 (realtime,socket) 获取事务列表

Posted

技术标签:

【中文标题】bsc 通过地址 Web3 (realtime,socket) 获取事务列表【英文标题】:bsc get transaction list by address Web3 (realtime,socket) 【发布时间】:2021-08-05 14:34:24 【问题描述】:

如何在 bsc 网络中即时跟踪钱包的交易? (我正在考虑使用 web3 js。)

我不想在 BSCscan 上使用 api。 据我所知,它不会立即显示出来。

【问题讨论】:

【参考方案1】:

原生 BNB 交易:

您可以订阅newBlockHeaders,它会在每次挖掘新区块时发出一个事件。使用区块号或哈希,您可以获得区块中的list of transactions。然后,您的应用可以仅过滤与您监视的地址相关的交易。


代币交易:

订阅logs 并过滤topics 仅反映Transfer 事件到/从您的观察地址。在这种情况下,您可以将过滤器作为订阅参数的一部分执行,这样您的应用就不必处理不必要的数据。


编辑:您在其他答案中使用的提供程序https://bsc-dataseed1.binance.org/ 给出错误“错误:当前提供程序不支持订阅:HttpProvider”。这意味着您需要使用支持订阅的其他提供商或配置您自己的节点。

【讨论】:

我对此很陌生...不幸的是我不能...我找不到 bscscan 推荐的 ws 提供程序。我在哪里可以访问这个?找了一个星期了,没有找到任何信息……不是:我正在尝试追踪其他钱包…… 当你成为newBlockHeaders的一员后,100多个动作列表就来了。每个新区块并在其中搜索钱包地址都会花费很多。当我订阅日志时;我无法过滤钱包地址。只能过滤令牌地址。当我成为pendingTransactions的成员后,我可以从那里提取交易,但我无法记录我想要的钱包的交易。 ``` ` web3.eth.subscribe('pendingTransactions', (err, txHash) => if (err) throw(err); ) .on("data", function( txHash) web3.eth.getTransaction(txHash, (err, returnedValue) => if (returnedValue?.from === address || returnedValue?.to === address) console.log('TransactionHash:',返回值); ) ); ```

以上是关于bsc 通过地址 Web3 (realtime,socket) 获取事务列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 Web3 和 Python 计算 BSC 代币的价格

Web3 - 通过代码购买 BSC 代币(加密货币)

BSC websocket 端点延迟

web3.py 安装以及主币查询 - bsc链

通过 Websocket 或 HTTP 连接到在 VPS 上运行的 BSC 节点

连接到trustwallet并获取bsc、eth、btc地址和余额