首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用web3.filter检查事务是否已被处理

如何使用web3.filter检查事务是否已被处理
EN

Ethereum用户
提问于 2017-06-15 23:59:02
回答 1查看 3.9K关注 0票数 1

我正在试图发送以太到一个帐户,然后部署一个合同与该帐户。因此,我需要设置一个观察者,它在事务完成或挖掘时触发,这样我就可以部署契约了。使用“未决”和“最新”的观察者不会触发被挖掘的事务。所以我试着让一个观察者来查看地址,但它没有触发。

代码:“为该帐户设置监视者”

代码语言:javascript
复制
web3.eth.filter({address: "0x7480e208a68aae46d96cad5341ae111a2a86dcf6"}, function(error, result){
  if (error){
    return console.log(error)
    }
    console.log("----filter-----")
    console.log(JSON.stringify(web3.eth.getBalance("0x7480e208a68bae46d06cad5341ae111a2a86dcf6")))
    console.log(result);
    console.log("----filter-----")
});

现在做交易。

代码语言:javascript
复制
web3.eth.sendTransaction({ from: web3.eth.coinbase, to: "0x7480e208a68bae46d06cad5341ae111a2a86dcf6", value: 10000000000*4 })

对此非常陌生,请告诉我什么才是正确的方法。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2017-06-24 13:50:57

web3.eth.filter方法只侦听日志(即由合同触发的事件),但不侦听特定帐户之间的正常事务(源:https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethfilter)。

您可以使用“最新”参数设置一个筛选器,以获取新块并查询该块的事务。下面是我曾经做过的一个片段:

代码语言:javascript
复制
var filter = web3.eth.filter("latest",function(error, blockHash) {
    if (!error) {
        var block = web3.eth.getBlock(blockHash, true);        
        if (block.transactions.length > 0) {
            console.log("found " + block.transactions.length + " transactions in block " + blockHash);
            console.log(JSON.stringify(block.transactions));
        } else {
            console.log("no transaction in block: " + blockHash);
        }
    }
});
票数 7
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/18098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档