はじめに
VSCodeでSolidityのコードを書いてコントラクトを開発し、Remixで動作確認をする方法を書いていきます。
流れ
- VSCodeに拡張機能を追加する
- コントラクトのコードを書く
- 動作確認する
VSCodeに拡張機能を追加する
VSCodeに拡張機能を追加していきます。
以下2つを追加します。
- Ethereum Remix Project extension for Visual Studio Code
- Solidity support for Visual Studio code
Ethereum Remix | Solidity |
---|---|
![]() |
![]() |
Remixの動作確認に使用。Remixの機能が使える。 | Remixの動作確認には不要。シンタックスハイライト・警告表示とかコード補完とかSolidityの開発に便利な機能が色々と使える。 |
コントラクトのコードを書く
空のディレクトリを作成し、VSCodeで開きます。
mkdir contract-sample //contract-sampleディレクトリの作成するコマンド
code contract-sample //contract-sampleディレクトリをVSCodeで開くコマンド
VSCodeで、Contract.solファイルを作成しSolidityのコードを書いていきます。
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++;
}
}
とてもシンプルなコントラクトが作成できました。
1行目の警告は、ライセンスの記述が無いために起きています。
// SPDX-License-Identifier: MIT
みたいな記述があると警告は消えますが今回は無視して進めます。
動作確認する
Remixと接続する
左のタブからETHREUM REMIXを開きます。
Run & DeployをクリックしてActivateをクリックします。
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と接続をしていきます。
- Remixを開く
- Workspacesでlocalhostを選択する
- 接続の確認のアラートボックスが表示されたら「Connect」をクリックする
Workspacesでlocalhostを選択 | Connectを選択 |
---|---|
![]() |
![]() |
Remixと接続が出来たら、VSCodeの「Run & Deploy」の表示も変わりました。
コンパイルしてデプロイする
Remix側で動作確認
Remixを開いてRemix上で動作確認していきます。
左メニュータブからFILE EXPLORERを開き、Contract.solを開きます。
左メニュータブからSOLIDITY COMPILERを開き、Compile Contract.sol(青いボタン)をクリックします。
左メニュータブからDEPLOY & RUN TRANSACTIONSを開き、CONTRACTがContract.solになっているのを確認したら、Deploy(オレンジのボタン)をクリックします。
デプロイが完了するとDEPLOY & RUN TRANSACTIONSの下の方にあるDeployed Contractsの中にデプロイしたコントラクトが表示されます。
ここから動作確認することが可能です。
動作確認をしていきます。
countUp、getCount、hello、publicDataの4つが表示されています。
countはprivateのしているので表示されていません。
getCountをクリックしてみます。
getCountの下に0 (0:uint256: 0)と表示することができました。
countの初期値は0なので0です。
右側にはトランザクションの情報が出力されています。
トランザクションの送信元アドレス(from)や送信先のコントラクトアドレス(to)、inputやoutputなども見ることができます。
helloをクリックしてみると、"Hello Sample Contract"の文字列が、
publicDataをクリックしてみると、"public data"の文字列が、
ボタンの下とトランザクションのdecoded outputに表示されました。
countUpをクリックしてからgetCountをクリックしてみると、1回目は0でしたが、1を取得することができました。無事にcountが更新されている様です。
Remix上で動作確認をすることができました 🎉
VSCodeを開き、Disconnectをクリックすると、Remixとの接続が切れて確認は出来なくなります。
VSCode | Remix |
---|---|
![]() |
![]() |
VSCode側で動作確認
Remixと接続した状態で、VSCode側で動作確認することも可能です。
Remix側で動作確認するときとやってることはほとんど一緒なので簡単に書いていきます。
VSCodeの「Run & Deploy」で操作していきます。
Compileボタンをクリックする | ![]() |
Deployボタンをクリックする | ![]() |
ボタンを押して動作確認をする | ![]() |
おわりに
簡単なサンプルを使って、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