0

从“鳍状肢”合同开始......我已经:

  1. ink_env::debug_println!在“翻转”方法中插入一个
  2. 构建合约并将其部署到使用“contracts-pallet”构建的节点
  3. 使用 polkadot.js ui 连接到节点
  4. 打开“合同”窗格并单击flip()方法的执行按钮。

现在奇怪的行为:

  1. 每次我在 UI 中打开 exec 窗口时,我都会从节点日志中看到它已debug_println!被执行(但该值并没有真正翻转,它仍然是旧的)。
  2. 当我执行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

谢谢

4

0 回答 0