首页 > 解决方案 > 如何从断言语句中显示错误消息,以便前端可以在 AssemblyScript 中使用它们?

问题描述

寻找一种方法来捕获发生的错误(在 AssemblyScript 中)以在前端向用户显示正确的错误信息/下一步。两种情况 - 类似的问题:

  1. 当断言语句触发并停止合同(恐慌)时 - 我可以让它在控制台中显示一个有用的错误,但不确定如何将该错误传递给前端以对其进行有意义的操作。

  2. 目前,如果提交需要钱包批准的交易,用户将被引导至钱包。审核通过后,如果在交易功能中断言语句失败,则钱包提示有错误/可能要重试。assert 语句有一条有用的错误消息,但必须访问 NEAR 资源管理器才能看到该事务。

在这两种情况下,用户都不会被提醒什么是错误的/什么需要修复,而只是留下一个无法运行的应用程序。有没有办法捕捉错误或将它们呈现给前端以对它们做一些有意义的事情?

标签: nearprotocol

解决方案


log方法将任意数据(默认类型为string)附加到返回给客户端的事务结果中。

您应该能够从调用合约方法的任何位置将其作为交易结果对象的一部分进行检查。

我相信这就是您在 NEAR Explorer 中看到的内容。

这是方法near-sdk-as

https://github.com/near/near-sdk-as/blob/5b91bc33392c6cbf0bb09ec9246b2b027828c48e/sdk-core/assembly/logging.ts


推荐阅读