Tact 代码中的错误消息文本哪去了?浏览器上看不到?

Tact 中的错误消息文本哪去了?

群友咨询,类似以下的调用智能合约时报错返回的值“Invalid sender”,我在哪里能看到呢?

require(ctx.sender == self.owner, “Invalid sender”); // Check sender

答案是,你在合约里面,永远看不到““Invalid sender””了 。

如果对 Tact 的行为有疑问,就打开对应的 FunC源代码,你就知道,编译后,就只剩下一个错误码了(Exit Code),对于我们自己写的代码异常,编译器会生成错误码,具体对应关系可以通过ABI文件来反推。

如果是TVM 里面的异常,看这个文档 TVM Exit codes | The Open Network

比如,13或者-14,就是给的gas不够。

1 Like