尝试监控以太坊区块时获取“web3.eth.filter 不是功能”

Posted

技术标签:

【中文标题】尝试监控以太坊区块时获取“web3.eth.filter 不是功能”【英文标题】:Getting "web3.eth.filter is not a function" while trying to monitor Ethereum blocks 【发布时间】:2018-11-29 14:29:18 【问题描述】:

我正在尝试使用 web3 监控第 12 次确认。我使用以下代码:

let filter = web3.eth.filter('latest',
filter.watch(function(error, result) 
    if (!error) 
        let confirmedBlock = web3.eth.getBlock(web3.eth.blockNumber - 11)
        if (confirmedBlock.transactions.length > 0) 
            confirmedBlock.transactions.forEach(function(txId) 
                let transaction = web3.eth.getTransaction(txId)
                if (transaction.to == account) 
                    // Do something useful.
                    console.log("12 confirmations received");
                
            )
        
    
);

但是这会引发错误web3.eth.filter is not a function

【问题讨论】:

【参考方案1】:

看来您使用的是 web3.js v1.0。 v1中新区块头信息订阅方式为web3.eth.subscribe('newBlockHeaders', callback);

有关详细信息,请参阅the docs。

【讨论】:

以上是关于尝试监控以太坊区块时获取“web3.eth.filter 不是功能”的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 web3 获取以太坊区块的数据

从零开发区块链应用(十五)--以太坊交易匹配查询

从零开发区块链应用(十三)--以太坊区块查询

以太坊/BSC 区块链交易数据

同步以太坊测试网络时导致C盘存储空间不足的解决办法

4.区块链平台以太坊从入门到精通之 以太币