LoginSignup
17
14

More than 1 year has passed since last update.

【Solidity】VSCodeでコントラクト開発をして、Remixで動作確認する。

Posted at

はじめに

VSCodeでSolidityのコードを書いてコントラクトを開発し、Remixで動作確認をする方法を書いていきます。

流れ

  • VSCodeに拡張機能を追加する
  • コントラクトのコードを書く
  • 動作確認する

VSCodeに拡張機能を追加する

VSCodeに拡張機能を追加していきます。
以下2つを追加します。

  • Ethereum Remix Project extension for Visual Studio Code
  • Solidity support for Visual Studio code
Ethereum Remix Solidity
スクリーンショット 2022-09-01 16.55.01.png スクリーンショット 2022-09-01 16.54.26.png
Remixの動作確認に使用。Remixの機能が使える。 Remixの動作確認には不要。シンタックスハイライト・警告表示とかコード補完とかSolidityの開発に便利な機能が色々と使える。

コントラクトのコードを書く

空のディレクトリを作成し、VSCodeで開きます。

mkdir contract-sample //contract-sampleディレクトリの作成するコマンド
code contract-sample //contract-sampleディレクトリをVSCodeで開くコマンド

スクリーンショット 2022-09-01 17.07.09.png

VSCodeで、Contract.solファイルを作成しSolidityのコードを書いていきます。

Contract.sol
pragma solidity ^0.8.0;

contract SampleContract {
    uint256 private count = 0;
    string public publicData = "public data";

    function hello() public pure returns (string memory) {
        return "Hello Sample Contract";
    }

    function getCount() public view returns (uint256) {
        return count;
    }

    function countUp() public {
        count++;
    }
}

スクリーンショット 2022-09-01 17.24.58.png

とてもシンプルなコントラクトが作成できました。

1行目の警告は、ライセンスの記述が無いために起きています。
// SPDX-License-Identifier: MITみたいな記述があると警告は消えますが今回は無視して進めます。

動作確認する

Remixと接続する

左のタブからETHREUM REMIXを開きます。

Run & DeployをクリックしてActivateをクリックします。

クリックするとRun & Deployが開きます。
スクリーンショット 2022-09-01 17.32.51.png

Run & DeployにあるConnect to REMIX をクリックします。
出力には以下のような出力が表示されます。

Connecting to Remix ... please go to https://remix.ethereum.org to connect to localhost in the File Explorer.

書いてある通りに、https://remix.ethereum.org を開き、localhostと接続をしていきます。

  1. Remixを開く
  2. Workspacesでlocalhostを選択する
  3. 接続の確認のアラートボックスが表示されたら「Connect」をクリックする
Workspacesでlocalhostを選択 Connectを選択
スクリーンショット 2022-09-01 17.36.12.png スクリーンショット 2022-09-01 17.36.20.png

Remixと接続が出来たら、VSCodeの「Run & Deploy」の表示も変わりました。

スクリーンショット 2022-09-01 17.42.23.png

コンパイルしてデプロイする

Remix側で動作確認

Remixを開いてRemix上で動作確認していきます。

左メニュータブからFILE EXPLORERを開き、Contract.solを開きます。

スクリーンショット 2022-09-01 17.44.34.png

左メニュータブからSOLIDITY COMPILERを開き、Compile Contract.sol(青いボタン)をクリックします。

スクリーンショット 2022-09-01 17.45.08.png

左メニュータブからDEPLOY & RUN TRANSACTIONSを開き、CONTRACTがContract.solになっているのを確認したら、Deploy(オレンジのボタン)をクリックします。

スクリーンショット 2022-09-01 17.50.27.png

デプロイが完了するとDEPLOY & RUN TRANSACTIONSの下の方にあるDeployed Contractsの中にデプロイしたコントラクトが表示されます。
ここから動作確認することが可能です。

動作確認をしていきます。

スクリーンショット 2022-09-01 17.51.14.png

countUp、getCount、hello、publicDataの4つが表示されています。
countはprivateのしているので表示されていません。

getCountをクリックしてみます。

スクリーンショット 2022-09-01 17.54.14.png

getCountの下に0 (0:uint256: 0)と表示することができました。
countの初期値は0なので0です。

右側にはトランザクションの情報が出力されています。
トランザクションの送信元アドレス(from)や送信先のコントラクトアドレス(to)、inputやoutputなども見ることができます。

helloをクリックしてみると、"Hello Sample Contract"の文字列が、
publicDataをクリックしてみると、"public data"の文字列が、
ボタンの下とトランザクションのdecoded outputに表示されました。

スクリーンショット 2022-09-01 18.04.57.png

countUpをクリックしてからgetCountをクリックしてみると、1回目は0でしたが、1を取得することができました。無事にcountが更新されている様です。

スクリーンショット 2022-09-01 18.08.13.png

Remix上で動作確認をすることができました 🎉

VSCodeを開き、Disconnectをクリックすると、Remixとの接続が切れて確認は出来なくなります。

VSCode Remix
スクリーンショット 2022-09-01 18.11.39.png スクリーンショット 2022-09-01 18.12.06.png

VSCode側で動作確認

Remixと接続した状態で、VSCode側で動作確認することも可能です。
Remix側で動作確認するときとやってることはほとんど一緒なので簡単に書いていきます。
VSCodeの「Run & Deploy」で操作していきます。

スクリーンショット 2022-09-01 18.34.01.png

Compileボタンをクリックする スクリーンショット 2022-09-01 18.22.59.png
Deployボタンをクリックする スクリーンショット 2022-09-01 18.23.17.png
ボタンを押して動作確認をする スクリーンショット 2022-09-01 18.24.25.png

出力の値(returnの値)は、出力タブに表示されました。
スクリーンショット 2022-09-01 18.33.22.png

おわりに

簡単なサンプルを使って、VSCode上で書いたコントラクトをRemix上で動作確認する方法を解説しました。

他には、Remix環境ではなくlocal blockchain networkにデプロイすることも可能です。Ganacheなどを使い、Connect to REMIXの上にあるConnectの方のボタンを使って行うことができます。

この動画などで解説されているのでこちらの方法も試してみるといいかもしれません。

参考

How to run Solidity Smart Contract in VS Code?
YouTube - How to use: Remix VSCode Extension

17
14
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
17
14