从“鳍状肢”合同开始......我已经:
ink_env::debug_println!
在“翻转”方法中插入一个- 构建合约并将其部署到使用“contracts-pallet”构建的节点
- 使用 polkadot.js ui 连接到节点
- 打开“合同”窗格并单击
flip()
方法的执行按钮。
现在奇怪的行为:
- 每次我在 UI 中打开 exec 窗口时,我都会从节点日志中看到它已
debug_println!
被执行(但该值并没有真正翻转,它仍然是旧的)。 - 当我执行
flip
“真实”,提交交易时,debug_println!
不会打印日志。
看起来基板执行了某种试运行,在此试运行期间打印内容,并且在“实际”执行期间不打印任何内容。这是预期的吗?
这是我的翻转方法(微不足道):
pub fn flip(&mut self) {
ink_env::debug_println!("prev value: {}, new value: {}", self.value, !self.value);
self.value = !self.value;
}
这些是仅打开“exec”窗口(不提交 tx)打印的两个后续日志
2021-10-14 19:37:44.812 DEBUG ThreadId(34) runtime::contracts: Execution finished with debug buffer: prev value: true, new value: false
2021-10-14 19:37:45.061 DEBUG ThreadId(34) runtime::contracts: Execution finished with debug buffer: prev value: true, new value: false
谢谢