😽

Flownautやろうぜ

2023/10/05に公開

Flownautは、出題された問題をCadenceのプログラムで解いて楽しむサービスです。

コントラクトに隠れている問題を見つけて、その問題を突くと解けるような問題が多いので、非常に勉強になる上に、楽しみながらプログラムを書く事が出来ます。

とても面白いサービスなのですが、公式の説明が少し不親切なので、始め方と問題の解き方を解説しようと思います。

アカウントの作成

右上にあるConnectをクリックすると、接続するウォレットを選ぶ画面になるので、適当に選びます。テストネット用のアカウントなので、気軽に選びましょう。

メールアドレスやSNSアカウントでの認証を要求されるので、好きな方を選んで認証を完了させます。

$FLOWをアカウントに追加する

テストネット用の$FLOWが必要なので、faucetのサイトで$FLOWをもらいます。

Paste Your Account Addressには、先ほど作成したアカウントのアドレスを入れます。Flownautの画面右上にあるアイコンをクリックするとアドレスが表示されるので、コピーして貼り付けましょう。

TokenTestnet FLOWを選び、CAPTCHAで人間である事を証明したら、FUND YOUR ACCOUNTをクリックします。エラーが出なければ、成功です。

これでFlownautを始める準備は整いました。

問題を解く

Hello Flownautのページを開いて下さい。

問題を解き始めるには、問題文の下にあるStart Levelをクリックします。トランザクションを承認すると、解答できる状態になります。

importするContractのアドレスを確認

解答に必要な情報がブラウザのコンソールに表示されるので、見てみましょう。Chromeの場合は、画面を右クリックして、表示されたメニューの中から検証を選びます。すると、DevToolsが表示されるので、Consoleを選びます。Consoleには、Player AddressContract AddressPlayer Balanceが表示さています。

この中で必要なのは、Contract Addressです。プログラムを書くときに、コントラクトをこのアドレスからimportする事になります。

プログラムをどこで書くか

Flow CLIを使って解く事も出来ますが、問題の中には作成したアカウントの署名がないと解けないものがあります。この場合、ウォレットに接続できる環境でないと解けないので、Runrun.dnz.devがおすすめです。個人的にはコードの保管をしてくれるrun.dnz.devがおすすめです。

さあ、問題を解いてみよう

試しにHello Flownautをやってみましょう。この問題では、変数greetingの中身をYou have been hacked!に変える事が要求されているので、下記のようなプログラムになるでしょう。

import HelloFlownaut from コントラクトのアドレス

transaction {
    prepare(account: AuthAccount) {}
    execute {
        // ここにやるべき事を書こう
    }
}

完成させたプログラムをRunrun.dnz.devに書き込んで実行しましょう。ウォレットに接続する事を要求されるので、最初に作ったアカウントのウォレットを選び、トランザクションの承認をします。トランザクションが成功したら、問題文の下にあるSubmitボタンを押して解けたかどうかを確認します。

不正解だった場合、コンソールにUser did not solve the level yet.と表示されます。画面には何も表示されないので注意しましょう。

正解の場合、おめでとうのダイアログが表示されます。

基本的な解説はこれで終わりです。面白い問題がそろっているので、Cadenceの勉強が一通り終わった方は、是非挑戦してみて下さい。

Discussion