Flownautやろうぜ
Flownautは、出題された問題をCadenceのプログラムで解いて楽しむサービスです。
コントラクトに隠れている問題を見つけて、その問題を突くと解けるような問題が多いので、非常に勉強になる上に、楽しみながらプログラムを書く事が出来ます。
とても面白いサービスなのですが、公式の説明が少し不親切なので、始め方と問題の解き方を解説しようと思います。
アカウントの作成
右上にあるConnect
をクリックすると、接続するウォレットを選ぶ画面になるので、適当に選びます。テストネット用のアカウントなので、気軽に選びましょう。
メールアドレスやSNSアカウントでの認証を要求されるので、好きな方を選んで認証を完了させます。
$FLOWをアカウントに追加する
テストネット用の$FLOWが必要なので、faucetのサイトで$FLOWをもらいます。
Paste Your Account Address
には、先ほど作成したアカウントのアドレスを入れます。Flownautの画面右上にあるアイコンをクリックするとアドレスが表示されるので、コピーして貼り付けましょう。
Token
はTestnet FLOW
を選び、CAPTCHA
で人間である事を証明したら、FUND YOUR ACCOUNT
をクリックします。エラーが出なければ、成功です。
これでFlownautを始める準備は整いました。
問題を解く
Hello Flownautのページを開いて下さい。
問題を解き始めるには、問題文の下にあるStart Level
をクリックします。トランザクションを承認すると、解答できる状態になります。
importするContractのアドレスを確認
解答に必要な情報がブラウザのコンソールに表示されるので、見てみましょう。Chromeの場合は、画面を右クリックして、表示されたメニューの中から検証
を選びます。すると、DevToolsが表示されるので、Console
を選びます。Consoleには、Player Address
、Contract Address
、Player Balance
が表示さています。
この中で必要なのは、Contract Address
です。プログラムを書くときに、コントラクトをこのアドレスからimport
する事になります。
プログラムをどこで書くか
Flow CLIを使って解く事も出来ますが、問題の中には作成したアカウントの署名がないと解けないものがあります。この場合、ウォレットに接続できる環境でないと解けないので、Runかrun.dnz.devがおすすめです。個人的にはコードの保管をしてくれるrun.dnz.devがおすすめです。
さあ、問題を解いてみよう
試しにHello Flownautをやってみましょう。この問題では、変数greeting
の中身をYou have been hacked!
に変える事が要求されているので、下記のようなプログラムになるでしょう。
import HelloFlownaut from コントラクトのアドレス
transaction {
prepare(account: AuthAccount) {}
execute {
// ここにやるべき事を書こう
}
}
完成させたプログラムをRunかrun.dnz.devに書き込んで実行しましょう。ウォレットに接続する事を要求されるので、最初に作ったアカウントのウォレットを選び、トランザクションの承認をします。トランザクションが成功したら、問題文の下にあるSubmit
ボタンを押して解けたかどうかを確認します。
不正解だった場合、コンソールにUser did not solve the level yet.
と表示されます。画面には何も表示されないので注意しましょう。
正解の場合、おめでとうのダイアログが表示されます。
基本的な解説はこれで終わりです。面白い問題がそろっているので、Cadenceの勉強が一通り終わった方は、是非挑戦してみて下さい。
Discussion