Ethereumを動かす~Part9~

前回、Ethereumでスマートコントラクトを実行できるSolidityという言語の書き方の基本を紹介し、HelloWorldというコントラクトを試しに書いてみました。
今回は実際に動かしてみましょう。
Remixの準備
Solidityを実行できる環境へデプロイする方法は幾つかありますが、今回はRemixというIDEを用いたいと思います。
元々は”browser-solidity”という名称も用いていたのですが、最近Remixに名称統一された模様です。
(※Remixもバージョンアップや仕様変更がかなり盛んなので、以下に記載する通りの方法では動かなくなることもあるかと思われます。予めご了承ください)
Remixを用いるには、直接サイトに飛ぶかGithubから自分のPCに落として操作するかの二通りがあるのですが、今回は直接サイトに行って動かしてみようと思います。
以下のURLを開いてください ↓
https://remix.ethereum.org/
まずRemixのサイトに行くと、サンプルのコードが用意されています。
今回はそちらは使わないので、新しくファイルを作成する必要があります。左上の”+”マークをクリックしてください。
クリックすると入力するファイル名の記入を求められるので、作成したコントラクト名の同じ名前の”HelloWorld.sol”という名前をつけてみます。
“.sol”という拡張子で、このファイルはSolidityで記述されているということを示しています。
新しいファイルが開けたら、前回書いたHelloWorldをそのままコピーしてきましょう。
コントラクトを実行させるにはもう少し準備が必要です。
Solidityはバージョンによって記法も細かく変わっているので、RemixにSolidityファイルのバージョンを教えてあげる必要がありあます。
画面右の”Setting”というタブをクリックして下さい。
一番上に”Solidity version”という項目があるので、そちらでSolidityファイルの先頭に書いたpragmaと同じバージョンを選んでください。
(今回は0.4.23バージョンを指定します)
実行
いよいよ実行させます。”Setting”の左の”Run”というタブをクリックしてください。
今回は実際のノードを立てて接続したりせず、ただコントラクトの挙動を確かめたいだけなので、一番上のEnviormentという項目で”JavaScript VM”を選んでください。
実際には存在しない仮想のアカウントが5つ振り分けられ、それぞれ100Ether所持しています。(もちろん仮想なのでこの環境以外では使えません)
さらに、その下に”HelloWorld”と表示されているセレクトボックスが確認できるかと思います。
そちらのセレクトボックスには指定したファイル内にあるコントラクトの全てが列挙されていて、どのコントラクトを実行するかそこで選べるようになっています。
今回はもちろんHelloWorldというコントラクトしか存在しないので、HelloWorld以外は選べないようになっています。
その下に”deploy”というボタンが確認できるかと思うので、そちらをクリックするとコントラクトがデプロイされます。
実際にクリックすると、右端の下部にデプロイ結果が表示され、さらに”get”というボタンが現れます。
これはコントラクトの中にある関数名が表示されていて、関数の数だけボタンは表示されます。
今回はコントラクト内にある関数はget一つだけなので、ボタンも一つだけ表示されています。
この関数名を冠したボタンをクリックすると、その関数を実行することができます。
getボタンを押してみましょう。
Hello Worldという文字列が返ってきました。
コントラクトは正しく動いている模様です。