使用脚本进行调试

Icon Link使用脚本进行调试

在开发的各个方面,权衡是不可避免的。正如之前提到的,在处理 predicates 时无法记录日志,因为 predicates 要求是纯粹的。这引出了一个重要问题:我们如何调试 predicates?

Sway 是一种编程语言,它将程序分为四种类型,其中之一是脚本。与 predicates 不同,脚本允许共享逻辑。

让我们离开 MultiSig 项目,

cd ../..

创建一个名为 predicate-script-logging 的单独项目。

forc new --predicate predicate-script-logging

在你的 src/main.sw 中复制并粘贴这个新的 predicate。尝试构建这个 predicate 时会导致错误,表明日志记录是无效操作。

predicate;
 
use std::{
    logging::log,
};
 
configurable {
    SECRET_NUMBER: u64 = 777
}
 
fn main() -> bool {
    log(SECRET_NUMBER);
    return true;
}

但是,让我们尝试将程序类型从 predicate 切换为 script

script;

你的代码现在应该看起来像这样:

script;
 
use std::{
    logging::log,
};
 
configurable {
    SECRET_NUMBER: u64 = 777
}
 
fn main() -> bool {
    log(SECRET_NUMBER);
    return true;
}

现在,如果我们尝试构建我们的脚本,它应该可以顺利编译。

forc build

接下来,我们将生成一个 Rust 模板来看看它的实际效果!