Ethereum
Ethernaut

Level 0. Hello Ethernaut (The Ethernaut)

原文はこちら

https://ethernaut.zeppelin.solutions
0. Hello Ethernautをクリック

Hello Ethernaut

このレベルでは、ゲームの基本について説明するぞ。

1. MetaMaskのインストール・設定

MetaMaskをまだインストールしていない場合は、MetaMaskブラウザの拡張機能(デスクトップマシンにChrome、Firefox、Brave、Operaなど)をインストールしてくれ。
拡張機能のウォレットを設定し、ネットワークセレクタを使用して、拡張機能のインターフェースの左上にある 'Ropsten test network'をポイントするんだ。

2. ブラウザのコンソールを開く

ブラウザのコンソールを開いてくれ。: Tools > Developer Tools.
※ ChromeならF12キーでいけるぞ!
※ HTMLエラーチェッカーを使ってる場合は切っておいたほうがいいぞ!
すると、ゲームからいくつかのメッセージが表示されるぞ。
そのうちの1人があなたのプレイヤーの住所を述べるべきです。
これはゲーム中においてはとっても重要なんだ!
次のコマンドを入力してみな!プレーヤーのアドレスをいつでも確認できるんだ。

player

ゲームプレイ中に重要な情報を提供することがあるから、警告やエラーに充分注意するんだぞ!

3. コンソールヘルパーを使用する

次のように入力して、現在の所持しているEtherの量を確認することもできるぞ

getBalance(player)

注: "pending"と表示されていても、Promiseを展開してあげれば実際の値を見ることができるんだ。 Chrome v62を使用している場合は、await getBalance(player) とすることで簡単に値を確認できるぞ。

いいぞ、その調子だ!
コンソールで他にどんなユーティリティー機能があるのか​​を調べるには下のコマンドを打つんだ!

help()

このコマンドはゲーム中に非常に役立つぞ!

4. The ethernaut contract

コンソールに次のコマンドを入力してみろ!

ethernaut

これはゲームの主なスマートコントラクトだ。
コンソールから直接いじる必要はないぞ。(このアプリケーションはあなたのために行います)。
しかし、必要に応じていじることもできるんだ。このオブジェクトで遊ぶことは、ゲームの他のスマートコントラクトとやりとりする方法を学ぶのには最高の方法だ。

先に進んで、ethernautオブジェクトを展開して、内部にあるものを確認してみてくれ。

5. Interact with the ABI

ethernautは、展開されたEthernaut.solコントラクトをブロックチェーンにラップするTruffleContractオブジェクトだ。

とりわけ、コントラクトのABIは、Ethernaut.solの所有者などのパブリックメソッドのすべてを公開している。
たとえば、次のコマンドを入力してみてくれ。

ethernaut.owner()

await ethernaut.owner() とすれば、簡単にEthernautコントラクトの所有者アドレスが誰でも確認できるぞ!
もちろんこのアドレスはお前のアドレスじゃないからな!

6. テスト用のEtherを手に入れろ!

ゲームをプレイするには、テスト用のEtherが必要だ。
いくつかのテストネットのEtherを入手する最も簡単な方法は、MetaMask faucet( https://faucet.metamask.io/ )を使用する方法だ。
Etherを無事ゲットできたら、次のステップに進むんだ!

7. レベルインスタンスを取得せよ!

各レベルをプレイするとき、お前はethernautコントラクトを直接いじらないぞ。
代わりに、レベルインスタンスを生成するように依頼するんだ。
これを行うにはページの下部にある青色のボタンをクリック!クリック!クリックだ!(1回でいいぞ!大事だから3回言ってみただけだ!)
今すぐ行って戻ってこい!
※MetaMaskの「SUBMIT」ボタンを押すと、トランザクションが実行される!
※Instance addressが返ってきたら完了だ!

8. Inspecting the contract

ethernautコントラクトと同じように、コントラクト変数を使ってコンソールからABIを調べることができるぞ。

9. Interact with the contract to complete the level

レベルの情報メソッドを調べるんだ。

contract.info()

await contract.info() if you're using Chrome v62.

お前は、契約内のレベルを完了するために必要なすべてを持っている必要があるぞ。
お前がレベルを完了したら、ページの下部にあるオレンジ色のボタンを使って契約書を提出するんだ!
お前のインスタンスをethernautに送り返すぞ。これで、完了したかどうかが判断される。

※「Oops! Looks like you haven't cracked this level just yet」
 と表示されたら、まだクリアじゃないぞ!