はじめに
MetaMaskの使い方と、どのように動いているのかを理解するため、Remixとの連携を試した記録
MetaMaskのインストールはいろんな方がわかりやすく書いているので割愛
MetaMask(メタマスク)の導入方法
MetamaskをRopstenテストネットワークにつなぐ
Metamaskをどのネットワークにつなぐかはプルダウンメニューから選択できる。
今回は、Ropstenテストネットワークを選択
RemixとMetamaskをつなぐ
Remixにて、Environmentでinjected Web3を選択
Ropstenテストネットワークに接続されていることがわかる
また、アカウントとして、現在有効なMetaMaskのアカウントが使われている
スマートコントラクトの実行
以下のスマートコントラクトを作成
pragma solidity ^0.4.19;
contract greetingContract {
string greetings="Hello!";
function setGreeting(string _greeting) public {
greetings = _greeting;
}
}
コンパイルを済ました後にデプロイを実行すると以下のようなNotificationが出る
Ropstenテストネットワークでコントラクトをデプロイしようとしているけど大丈夫かと聞かれているようだ
確認をクリックするとトランザクションがブロックチェーンに送られ、Remixのログ出力に、トランザクション情報へのリンクが表示される1
greetings
の変数を確認すると、初期値が格納されていることが確認できる
ちなみに、変数の参照はトランザクションが発生しないも確認できる
setGreeting
メソッドを実行後にgreetings
を確認するとたしかに更新されている
※setGreeting
メソッドを実行時にMetaMaskの確認画面がでるが今回は割愛
最後に
MetaMaskのアカウントを使って、スマートコントラクトを実行することが確認できた
Remixではなく、ローカルのブロックチェーンへの接続方法も調べたい
宿題
- MetaMaskをローカルブロックチェーンにつなげる
参考資料
Ethereum Developer 2016/17: Build A Decentralised Apps
Ethereum 外部コントラクトの呼び出し方法(Remix, MetaMask連携)