前回の記事では、主にビットコインスマートコントラクト用の高級言語sCyptの基本的な知識を紹介しました。一部の学生は試してみたいと思っていたかもしれません。ことわざにあるように、仕事を上手くやりたいのであれば、労働者はまず道具を研ぐ必要があります。実際のコーディング作業を開始する前に、適切なツールの使用方法を学ぶために時間を費やす必要があります。
多くの開発者や友人がMicrosoftのIDEであるVisusalStudio Codeを使用していると思います。その優れたパフォーマンスと柔軟なプラグインメカニズムは、非常に洗練されたプログラミング体験をもたらします。Bitcoinスマートコントラクトをより簡単かつ効率的に作成できるように、sCryptは機能豊富で実用的なツールアプリケーションであるsCrypt Visual StudioCodeプラグインを提供します。VS Codeの拡張機能ビューで「sCrypt」を直接検索してインストールするか、ここから独立したインストールパッケージをダウンロードできます。
以下では、開発プロセスの3つの典型的なシナリオ(コーディング->デバッグ->テスト)に従って、このプラグインの機能と使用法を紹介します。
コーディング
コーディングフェーズに関係する主な機能は次のとおりです。
- 構文の強調表示:キーワード、関数名、およびデータ型を自動的に強調表示します。
- 定義にジャンプ:ドキュメント編集領域で関数または変数を右クリックし、ポップアップメニューから[定義に移動]を選択して、カーソルを関数または変数の定義にジャンプします。
- 変数参照の検索:ドキュメント編集領域で関数または変数を右クリックし、ポップアップメニューから[参照に移動]を選択して、すべての参照を表示します。
- 名前の変更:ドキュメント編集領域で関数または変数を右クリックし、ポップアップメニューで[シンボルの名前を変更]を選択して名前を変更します。
- ホバリングプロンプト:マウスがホバリングしている変数または関数の定義を表示します。
- コンパイル結果の出力:ドキュメント編集領域を右クリックし、ポップアップメニューで[ビットコインスクリプトにコンパイル]を選択して、コンパイル結果をファイルに出力します。
- 自動プロンプト:コード編集の過程で、現在入力されている情報に従って、可能な関数名または変数名のプロンプトが自動的に表示されます。
- 関数署名のヘルプ:コード編集の過程で、関数署名に関連するプロンプトが、現在入力されている情報に従って自動的に表示されます。
- コードのフォーマット:ドキュメント編集領域を右クリックし、ポップアップメニューで[ドキュメントのフォーマット]を選択してファイルをフォーマットします。
- 自動エラーチェック:コード編集プロセス中に、コンパイルエラー情報が[問題]ウィンドウにリアルタイムで自動的に表示されます。
デバッグ
デバッグ機能は、開発者がコード内のエラーをすばやく見つけて解決するのに役立ちます。通常、デバッグを開始する前に.vscode/launch.json
、次の構成のようなものを追加する必要があります。
{
"type": "scrypt",
"request": "launch",
"name": "Debug sCrypt",
"program": "${workspaceFolder}/contracts/xxx.scrypt",
"constructorParams": "123456",
"entryMethod": "unlock",
"entryMethodParams": "123, 456",
"txContext": {
"hex": "01000000015884e5db9de218238671572340b207ee85b628074e7e467096c267266baf77a40000000000ffffffff0000000000",
"inputIndex": 0,
"inputSatoshis": 100000
}
}
デバッグプロセス中に使用できる機能は次のとおりです。
- ブレークポイントの設定/キャンセル;
- シングルステップデバッグ/実行の継続;
- 目的関数を開始/終了します;
- 変数値を表示する;
- コールスタックを表示します;
- 観測式または変数値の追加/削除;
- REPL 1をサポートします(つまり、以下に示すように、「DEBUGCONSOLE」でsCryptステートメントの入力と実行を許可します)。
テスト
sCryptは、開発者がコントラクトテストを実行するのに役立つscrypttest
2という名前のnpmパッケージを提供します。JavascriptまたはTypescriptを使用して単体テストを記述できます。エディターを右クリックして[RunsCrypt Test]を選択すると、単一のテストファイルを実行できます。もちろん、コマンドラインで同様のnpm test
テストケースの実行順序で実行することもできます。
注:エディターを右クリックしてテストファイルを実行する場合は、次の2つの前提条件を満たしている必要があります。
- ファイル拡張子は
.scrypttest.js
または.scrypttest.ts
;のみです。 - package.jsonのテストディレクトリには
single-test
、特定の操作テストコマンドを指定する名前付きスクリプトが必要です。例えば:
"scripts": {
"single-test": "mocha -r ts-node/register --timeout 120000"
},
上記は、sCrypt Visual StudioCodeプラグインの簡単な紹介です。次の記事では、実用段階に入り、開発から展開までの単純な契約のプロセス全体を完了します。
付録
REPL(Read-Eval-Print Loop):いくつかのコードのデバッグ、テスト、または実験に便利なインタラクティブなインタープリター。↩︎
scrypttest:sCryptテストツールキット。JSおよびTSユニットテストシナリオをサポートするために必要ないくつかのツール機能をカプセル化します。↩︎