我不确定 Substrate 运行时中与 Substrate UI 相关的错误消息的行为,以及它们是否固有地导致事务失败。
例如,在democracy
SRML 中,我看到以下行:
ensure!(!<Cancellations<T>>::exists(h), "cannot cancel the same proposal twice");
h
这大概是一个宏,如果(提案哈希)已经存在,则确保事务失败或停止处理。显然有一条与此错误相关的消息。
当这个测试失败时,我是否可以假设事务失败(没有执行其余的 SRML 代码)?
如果是这样,我如何检测 Substrate UI 中的故障,并可能看到消息本身?
如果不是,那么在运行时模块中可能需要一些进一步的代码,这会显式地产生错误。我见过Err()
——但没有结合ensure!()