LoginSignup
0
1

More than 3 years have passed since last update.

Substrate ink!でDebug情報を出力する方法

Posted at

substrateとは

  • もう何度も書いているので、割愛しますが、ブロックチェーンのフレームワークです。
  • 詳細はこちら

ink!とは

  • substrateのスマートコントラクト(?)のことです。

nodeの起動やink!の基本的なことは

お伝えしたいこと

  • ink!を実装するときにデバッグのためにprintを使う方法です。
  • 探せなかっただけかもしれませんが、どこにも記事がなくて、ホントに困りましたので。

ink!のサンプルコード

#[ink(message)]
        fn flip(&mut self) {
            ink_core::env::println("$$$$$$$$$$$$$$$$$$$$ Debug Start $$$$$$$$$$$$$$$$$$$$$$$$$");
            ink_core::env::println(&ink_prelude::format!("value is {:?}", self.get()));
            ink_core::env::println("$$$$$$$$$$$$$$$$$$$$ Debug End $$$$$$$$$$$$$$$$$$$$$$$$$");
            *self.value = !self.get();
        }
  • Cargo.tomlに以下を追加してください。
ink_prelude = { version = "2", git = "https://github.com/paritytech/ink", tag = "latest-v2", package = "ink_prelude", default-features = false }

nodeの実行方法

  • 開発モード かつ デバッグ情報出力 というような意味のようです。
  • この2つがないと出力はされません。
substrate --dev -lruntime=debug

実行結果

  • 無事に出力されました。
2020-08-27 20:54:03.044 tokio-runtime-worker INFO substrate  ✨ Imported #23 (0x8444…caab)
2020-08-27 20:54:05.048 tokio-runtime-worker INFO substrate  💤 Idle (0 peers), best: #23 (0x8444…caab), finalized #21 (0x6b0b…9775), ⬇ 0 ⬆ 0
2020-08-27 20:54:06.020 tokio-runtime-worker INFO sc_basic_authorship::basic_authorship  🙌 Starting consensus session on top of parent 0x84448487385f44691a6c9d19d5a47a01af333b105f4ef872c34a49c21131caab
2020-08-27 20:54:06.034 tokio-blocking-driver DEBUG runtime  $$$$$$$$$$$$$$$$$$$$ Debug Start $$$$$$$$$$$$$$$$$$$$$$$$$
2020-08-27 20:54:06.034 tokio-blocking-driver DEBUG runtime  value is false
2020-08-27 20:54:06.035 tokio-blocking-driver DEBUG runtime  $$$$$$$$$$$$$$$$$$$$ Debug End $$$$$$$$$$$$$$$$$$$$$$$$$
2020-08-27 20:54:06.037 tokio-blocking-driver INFO sc_basic_authorship::basic_authorship  🎁 Prepared block for proposing at 24 [hash: 0x4f1b40a60fedf5a688d5a14ae818dbe66a58e49c83b98e5ee53c9f8428577a3f; parent_hash: 0x8444…caab; extrinsics (3): [0x3511…8626, 0xec77…18e3, 0x6215…dd77]]
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1