Cloud IDE は、Blockchain as a Service (BaaS) プラットフォームに搭載されたブラウザベースのコントラクト開発環境です。ローカルにツールチェーンを準備することなく、ブラウザ上で直接 Solidity スマートコントラクトの作成、コンパイル、デプロイ、呼び出し、デバッグが可能です。
前提条件
開始する前に、以下をご確認ください:
BaaS プラットフォームへのアクセス権
コンソーシアムコントラクトプロジェクト、または 概要 ページで申請したテストチェーン
(任意) デフォルトのテストアカウントの代わりに SDK で作成されたアカウントを使用する場合、そのアカウントの秘密鍵 (16 進数文字列)
Cloud IDE を開く
エントリーポイントは 2 つあります:
コンソーシアムコントラクトプロジェクトから: BaaS プラットフォームのコンソーシアムコントラクトプロジェクトページで、新規コントラクトを作成するか、既存のコントラクトを開きます。
概要ページから: 概要 ページに移動し、コントラクトテストチェーン 上の [コントラクトのデプロイ] をクリックします。
コントラクトファイルの管理
Cloud IDE のアイコンを使用して、コントラクトプロジェクト内のフォルダーやファイルの作成、削除、名前変更ができます。

| 番号 | アイコン | アクション |
|---|---|---|
| ① | ![]() | ファイルまたはフォルダーの追加 |
| ② | ![]() | ファイルまたはフォルダーの削除 |
| ③ | ![]() | ファイルまたはフォルダーの名前変更 |
コントラクトファイルはリアルタイムで保存されます。コンパイルを正常に完了させるために、新しいコントラクトファイルには .sol 拡張子を付けて命名してください。コントラクトの開発
Cloud IDE でコントラクトを開発するには、以下の 5 つのステップに従います:
ターゲットコントラクトブロックチェーンの選択
[環境設定] をクリックして、ターゲットブロックチェーン環境を設定します。

[環境設定] で、既存のコントラクトブロックチェーンを選択します。テストブロックチェーンを申請した場合、ここでそれを選択します。これには、コントラクトのデプロイと呼び出しに使用できるデフォルトのテストアカウントが含まれています。
デフォルトのテストアカウントが要件を満たさない場合は、SDK で作成したアカウントを使用します。その場合、Cloud IDE でコントラクトをデプロイまたは呼び出す際にトランザクションに署名するため、アカウントの秘密鍵 (16 進数文字列) を入力します。
秘密鍵の取得方法については、「コントラクトブロックチェーンアカウントの準備」のサンプルコードをご参照ください。
コントラクトのコンパイル
[コンパイル] をクリックして、コントラクトコードをコンパイルします。

コンパイルにより、2 つの出力が生成されます:
バイトコード: コンパイルされたコントラクトコードです。これは、コントラクトをデプロイするために使用される主要なアーティファクトです。SDK を使用して、バイトコードをターゲットの本番チェーンにデプロイします。
コントラクト ABI: コントラクトと同時に生成されるアプリケーションバイナリインターフェイス (ABI) です。ABI は、コントラクトの関数と状態変数 (フィールド名、フィールドタイプ、メソッド名、パラメーター名、パラメータータイプ、戻り値の型) を記述します。これは、コントラクトのインターフェイスドキュメントのように機能します。
ABI パラメーター
| パラメーター | 説明 |
|---|---|
name | 関数名 |
type | メソッドのタイプ: function、constructor、または fallback (無名のデフォルト関数) |
constant | trueブール値。`true` の場合、メソッドはどの状態変数も変更しません。 |
payable | ブール値。メソッドが転送を受信できるかどうかを示します。 |
stateMutability | 次のいずれか: pure (ブロックチェーンの状態を読み取りません)、view (ブロックチェーンの状態を変更しません)、nonpayable、または payable |
inputs | nametypeオブジェクトの配列。各オブジェクトには `name` (パラメーター名) と `type` (パラメータータイプ) が含まれます。 |
outputs | inputs`inputs` と同様です。関数が何も返さない場合は省略されます。 |
ABI の完全な仕様については、「Official Description of Solidity ABI (English)」をご参照ください。
コントラクトのデプロイ
コンパイル後、[デプロイ] をクリックして、コントラクトをターゲットのテストブロックチェーンにデプロイします。

コントラクトが constructor を定義している場合は、デプロイする前にコンストラクターのパラメーターを指定します。Cloud IDE は、コントラクトを正しく初期化できるように、パラメータータイプのヒントと基本データ型のデフォルト初期値を表示します。
デプロイ後、Cloud IDE にはすべてのコントラクトメソッドが表示されます。

コントラクトの呼び出し
デプロイ後、すべてのパブリックメソッドとパブリック状態変数がリスト表示されます。メソッドの横にある [コントラクトの呼び出し] をクリックして、そのメソッドを呼び出します。

各呼び出しは、以下のフィールドを返します:
| フィールド | 説明 |
|---|---|
input | メソッドに渡される入力データ (通常はメソッドのパラメーター) |
output | データ型に基づいてエンコードされた戻り値 |
log | 実行中にイベントがトリガーされた場合のイベントログ |
コントラクトのデバッグ
Event 文を追加してログ出力をトリガーし、実行パスをトレースすることで、コントラクトロジックをデバッグします。
次の例では、validCandidate メソッドを呼び出します:

// ターゲット候補が candidateList に含まれているかどうかを確認します。
function validCandidate(bytes32 candidate) view public returns (bool) {
for (uint i = 0; i < candidateList.length; i++) {
if (candidateList[i] == candidate) {
emit VALID(true);
return true;
}
}
emit VALID(false);
return false;
}各ブランチは異なるイベントを発行します。呼び出し結果のログを確認して、どの実行パスがたどられたかをトレースします。複雑なコントラクトロジックの場合は、主要なブランチに Event 文を追加して実行パスを追跡し、バグを特定します。
エラーコードの分析
コントラクトの呼び出しが失敗すると、Cloud IDE はエラーコードを返します。これらのエラーコードは SDK で使用されるコードと一致します。完全なリストについては、「コントラクトブロックチェーンのエラーコード」をご参照ください。
例: コントラクトエラーの診断
voteForCandidate への以下の呼び出しは、エラーコード 10201 で失敗します:

| エラーコード | 値 | 説明 |
|---|---|---|
VM_REVERT | 10201 | revert コマンドによってトリガーされます |
エラーコード 10201 は revert 文が実行されたことを意味し、これは require() が false を返したことを示します。コントラクトコードを確認すると、voteForCandidate に次の条件があることがわかります:
require(validCandidate(candidate));候補 Demi は candidateList に含まれていないため、validCandidate は false を返し、トランザクションは復元されます。コントラクトは、constructor で 2 人の候補 (Nick と Rose) のみでデプロイされました。


