Solidity

Solidityの環境構築と最初のコントラクト

Remixでコンパイラー、デプロイ、読み取り、書き込みを順番に試します。

Solidity入門の講座一覧

01

Remixを使う

Solidity公式ドキュメントでも紹介されているRemix IDEは、ブラウザだけでソースコードの編集、コンパイル、デプロイ、実行を試せる開発環境です。最初はローカルへNode.jsやsolcを入れずに始められます。

  1. Remix IDEを開く
  2. File explorerでStorage.solを作る
  3. Solidity Compilerで0.8系を選ぶ
  4. Deploy & Run TransactionsのEnvironmentをRemix VMにする
秘密情報を入力しない

Remix VMは学習用の仮想環境です。ウォレットの秘密鍵や本物の資産を扱う必要はありません。

02

コンパイルする

Storage.solSOLIDITY
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract Storage {
    uint256 private value;

    function store(uint256 newValue) external {
        value = newValue;
    }

    function retrieve() external view returns (uint256) {
        return value;
    }
}

先頭のSPDXライセンス識別子は、ソースコードを公開・検証するときに役立ちます。pragmaはコンパイラーの対象バージョンを指定します。コンパイルが成功したら、ABIとバイトコードが生成されます。

03

デプロイする

Deployボタンを押すと、Remix VM上に新しいStorageコントラクトが作られます。実際のEthereumへ公開する本番デプロイとは違い、ブラウザ内の学習用チェーンで実行されます。

デプロイ後の操作COMMAND
Deploy
retrieve()
store(123)
retrieve()
結果OUTPUT
最初のretrieve: 0
store実行後のretrieve: 123
04

読み取りと書き込みを比べる

retrieveはviewなので状態を変更しません。storeは状態を書き換えるため、トランザクション履歴とガス使用量が表示されます。読み取りは無料という意味ではなく、ノードへ問い合わせる処理と、チェーンへ書き込む処理が違うという意味です。

05

よくあるエラー

  • pragmaとコンパイラーのバージョンが合わない:Compilerを0.8系へ合わせる
  • ファイル名とコントラクト名を取り違える:Deploy欄の対象を確認する
  • 書き込みの反映を待たずに読む:トランザクションが完了してから再実行する

次は基本文法とデータ型で、数値、アドレス、配列、mapping、enumを学びます。