eosq 显示操作的创建和执行顺序,帮助清晰地 debug 智能合约

2019-3-11 21:59:13 / 作者 dfuse

在调试智能合约时,了解它生成的通知和内联操作是非常关键的,但更重要的是了解它们的生成顺序。 eosq 的数据通过 dfuse API 获取的,我们为它添加了一个新的筛选功能器,以帮助开发人员诊断更深层的问题。

在 EOSIO 中,操作的创建顺序与执行顺序不同。当一个智能合约通知一个帐户创建内联操作或内联无上下文操作时,它会在当前合约完成执行后执行。此外,执行它的顺序可能与它的创建顺序相同,因为一个通知操作也可以安排一些内联操作。只有在通知完成后,这些内联操作才会一同被执行。

介绍了这么多都很抽象,让我们举一个具体的例子:

在这种情况下,动图中第四个操作是第一个操作的子操作,但实际上,如果你检查并分析合约代码,你会发现它实际上是由第三个操作创建的。因为合约的执行会累积来自同一个列表中的通知和内联操作,因此哪个操作创建了哪个可能是不明确的。

这时候就能用上 eosq 的新功能了,您可以在按执行顺序排列和按创建顺序排列的树型图之间轻松切换。这有一个差别比较明显的例子:

 

通过像 eosq 和 dfuse 这样的工具,我们正在帮助给进入 EOSIO 生态系统的所有开发人员提供丰富工具包。这些努力有助于推动区块链的采用,为最终用户带来更好的体验和价值。请大家让您身边的每个开发人员都知道 dfuse 是可以免费使用的,他们可以直接申请 dfuse API key,几分钟之后就可以开始使用了。

如果您仍有疑问,或者您希望申请某种功能,请加入我们的电报频道,并确保跟进阅读我们的文档,因为我们是在不断更新它的!

话题 eosq, dfuse, 开发者, 创建顺序, 执行顺序