Ethereum Solidity SmartContract（スマートコントラクト）の開発環境を構築する - Javascript VM 編

Ethereumの開発環境を構築するには、プラグインを入れたりとかEthereumのアカウント作ったりとか
設定が多すぎて開発にたどり着くまでに意外と労力が必要になります。

今回は、サクッと開発環境を構築する方法とRemixの使い方をまとめたいと思います。

あと、RemixのUIが新しくなったので、新しいUIに記事を書き換えました。

# Remixを表示する

- URL  
https://remix.ethereum.org

# 新しいUI

Remixが新しいUIに生まれ変わりました。
こんなUIです！！

<img width="1440" alt="スクリーンショット 2019-06-19 22.36.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/55ff7418-efc8-c969-264d-eb7c6c244c95.png">


# サクッと開発環境を構築する

## 開発言語を選択する

まずは、言語を選択しましましょう。
今回は、`Solidity`を選択してください。

<img width="1440" alt="スクリーンショット 2019-06-19 23.42.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/a965d048-d0b7-5df2-442e-a726e5296b51.png">


## Ethereum Networkを選択する

今回は`Javascript VM`を選択します。

<img width="1440" alt="スクリーンショット 2019-06-19 23.30.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/c13ce742-bb56-1374-b912-1ebd19016f7b.png">


この設定を行うと、`100ETH`を持ったテストアカウントを`5アカウント`作成してくれます。

<img width="1440" alt="スクリーンショット 2019-06-19 23.44.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/09c76768-8565-fdd6-5476-e7f629016af5.png">


これで開発環境構築は完了です！！


# Remixの使い方

使い方を簡単に説明しておきます。

## 新規作成

新しいファイルを追加してみましょう。
追加するステップは4ステップです。

<img width="1440" alt="スクリーンショット 2019-06-19 23.49.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/c1ee96d2-d601-6f2f-41dd-734f68081238.png">

1. ①のアイコンをクリックします。
2. ②のアイコンをクリックします。
3. ③に任意のファイル名を入力します。
4. ④の`OK`ボタンをクリックします。


## バージョンを指定



## コンパイル

|Platform|Command|
|:-:|:-:|
|⌘ + s|Ctlr + s|

### エラーも警告もない場合

赤線の部分にグリーンのチェックマークが表示されます。
※警告などがある場合、脆弱性やプログラムリクスになりなるので、警告もなくしましょう。

<img width="1440" alt="スクリーンショット 2019-06-20 0.09.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/d7686b24-e995-07d7-2586-294e6f515a33.png">


### エラーがある場合

赤線の部分にエラーが表示されます。

<img width="1440" alt="スクリーンショット 2019-06-20 0.07.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/91d8c648-778a-700b-6c99-26de44d329ed.png">

### 警告がある場合

赤線の部分に警告が表示されます。

<img width="1440" alt="スクリーンショット 2019-06-20 0.11.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/5655cfb8-6b08-a143-768c-f382614f3de1.png">


## デプロイ

### 単純デプロイ

`Run`タブ内の、`Deploy`ボタンをクリックするとデプロイ出来ます。

<img width="1440" alt="スクリーンショット 2019-06-20 0.15.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/b928bd6b-f71a-db5a-c959-0157f1e74c9e.png">

1. ①のアイコンをクリックします。
2. ②の`デプロイ`ボタンをクリックします。


### 送金額を指定してデプロイ

<img width="1440" alt="スクリーンショット 2019-06-20 0.18.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/0a1c683f-64c5-4170-5e29-5ae753f3c607.png">

1. ①のアイコンをクリックします。
1. ②に送金額を指定します。単位は、`wei` `gwei` `finney` `ether`から選択できます。
2. ③の`デプロイ`ボタンをクリックします。


## 関数の実行

デプロイが正しく完了すると、赤線の部分に関数の一覧が表示されます。

<img width="1440" alt="スクリーンショット 2019-06-20 0.27.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/04724461-3109-39b1-d344-cf7f0b75653e.png">


関数名をクリックすることで、関数が実行できます。

<img width="1440" alt="スクリーンショット 2019-06-20 0.27.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/95756158-333f-6730-7923-3cc10eb8a930.png">

実行結果は赤線内に表示されます。

<img width="1440" alt="スクリーンショット 2019-06-20 0.45.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65794/8b73276b-7864-49ac-0ecc-e30ba66c7cef.png">