首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >松露测试:检查Tx失败: tx.receipt.status与抛出/还原

松露测试:检查Tx失败: tx.receipt.status与抛出/还原
EN

Ethereum用户
提问于 2017-12-06 06:06:16
回答 1查看 587关注 0票数 3

Post Byzantium,当我测试合同函数时,有些(1)返回带有status字段的事务对象/收据,而另一些(2)失败并恢复。

检查返回的事务对象

代码语言:javascript
复制
assert(txReceipt.receipt.status === 0)

检查引发的错误

代码语言:javascript
复制
contract.someMethodThatWillFail(params)
  .then(
    () => assert.throw('should not have reached here'),
    e => assert.isAtLeast(e.message.indexOf('revert'), 0)
)

是什么决定了方法是否会表现为(1)和(2)?(试验及错误除外)

我尝试过违反require()的S和函数的修饰符,我看不出这个函数是否会产生1vs2的模式。

EN

回答 1

Ethereum用户

发布于 2017-12-06 20:38:43

想清楚了,很明显是想起来了。事务收据只返回事务挖掘后的状态。

因此,场景(1)发生在事务被挖掘之后,但是(2)可以在调用函数之后立即检查,甚至在挖掘事务之前。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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