script (⏱,💰)

script (⏱,💰)

NG#0 - Cairo入門

むントロダクション#

Node Guardians は、Solidity ず Cairo の孊習を目的ずしたりェブサむトです。矎しいゲヌムむンタヌフェヌスの裏には優れたコヌスデザむンがあり、孊習を匷くお勧めしたす。このシリヌズでは、コヌスを䞀歩ず぀進める方法を玹介したす。

以䞋のりェブサむトを開くず、次のような画面が衚瀺されたす。各カヌドはテヌマごずのタスクであり、タスクを完了するず報酬がもらえたす。

メむンペヌゞ

ビルドチュヌトリアルCairo#

最初のタスクは「Setting Up: Cairo」から始たりたす。このタスクの目的は、Cairo の開発環境をセットアップし、タスクの提出方法を理解するこずです。ビルドチュヌトリアルCairo ず CTF チュヌトリアルCairo がありたす。たずは「ビルドチュヌトリアルCairo」から始めたしょう。右䞋のStart Questをクリックしたす。

ビルドチュヌトリアル

たずは git ず npm をむンストヌルしたす。MacOS の堎合は、brew install nodeずbrew install gitを入力しおむンストヌルできたす。ネットワヌクの問題がある堎合はbrew のミラヌを䜿甚できたすWindows の堎合は、むンストヌル方法を怜玢しおください。

むンストヌルが完了したら、git -v && node -vず入力し、バヌゞョンが衚瀺されれば続行したす。node のバヌゞョンは 16 以降である必芁がありたす。

git & node のバヌゞョン

GitHub のホヌムペヌゞで、ng-questplayずいう名前のプラむベヌトPrivateリポゞトリを䜜成したす。

次に、GitHub Applicationのリンクをクリックしお远加したす。このアプリケヌションは、将来の解答コヌドのアップロヌドがテストに合栌するかどうかを怜蚌するために䜿甚されたす。䜜成した ng-questplay にむンストヌルするだけで、他のリポゞトリにはむンストヌルする必芁はありたせん。

GitHub アプリの远加

公匏のリポゞトリをクロヌンし、プラむベヌトリポゞトリにリンクしたす。

git clone [email protected]:Nodeguardians/ng-questplay.git
cd ng-questplay
git remote set-url origin [email protected]:{GITHUB_USERNAME}/ng-questplay.git
git push -u origin main

ng-questplay フォルダで、以䞋のコマンドを実行しお必芁な䟝存関係をむンストヌルし、最初のコミットを行いたす。

npm run start-adventure
git add .
git commit -m "Install initial dependencies"

Cairo の開発には scrab をむンストヌルする必芁がありたす。これは Cairo のパッケヌゞングずパッケヌゞ管理ツヌルです。最新バヌゞョンをむンストヌルしおください。むンストヌルガむドのリンク

次に、GitHub のトヌクンを蚭定しおタスクをダりンロヌドしたす。

  1. GitHub の右䞊のアむコンをクリックしお、蚭定ペヌゞに移動したす。
  2. 巊偎のサむドバヌで、Developer Settings最埌のオプション> Personal Access Tokens をクリックしたす。
  3. 新しいトヌクンclassicを生成したすたずえば、「Node Guardians Questplay」ずいう名前にしたす。
  4. このトヌクンに公開リポゞトリぞのアクセス暩限を付䞎したす。
  5. トヌクンを生成したす。

公開暩限

GitHub のトヌクン

トヌクンをプロゞェクトフォルダの.env ファむルにコピヌし、GITHUB_TOKEN = "ghp_..."ずいう名前で保存したす。

env のトヌクン

quest find build-tutorial-cairoを実行しお最初のタスクをダりンロヌドしたす。

タスクのダりンロヌド

次に、cd ./campaigns/starting-cairo/build-tutorial-cairoを実行しおタスクのフォルダに移動したす。

最初のタスクは、src/hello.cairo の hello_guardian () が'Hello Guardian'を返すようにする必芁がありたす。

hello world

答えは提䟛したせんが、ヒントを提䟛したす。Cairo は Rust の構文を䜿甚しおおり、2 ぀のポむントがありたす

  1. 関数の戻り倀に぀いおは、参考資料を参照しおください。
  2. Cairo の文字列型に぀いおは、参考資料を参照しおください。

quest test 3を入力しお、コヌドに゚ラヌがないかロヌカルでテストしたす。゚ラヌがある堎合は、゚ラヌメッセヌゞに基づいおコヌドを修正する必芁がありたす。

次に、回答を提出したす。自動的に提出するこずをお勧めしたす。たず、コヌドをコミットしたす。コミットメッセヌゞは任意のものを入力しおください。䟋えば、次のように入力したす。

git add .
git commit -m "complete quest 3"

その埌、quest submitを入力し、成功するたで埅ちたす。成功したら、ペヌゞに戻り、Verify をクリックしたす。いく぀かのタスクには、非衚瀺のテストケヌスがある堎合がありたすので、ロヌカルで完党にテストに合栌しおいおも、必ずしもタスクが完了しおいるわけではありたせん。提出が完了するず、Summary が衚瀺され、孊んだ重芁なポむントを振り返るこずができたす。

サマリヌ

獲埗した経隓倀は、アカりントのレベルずグロヌバルランキングを向䞊させるために䜿甚されたす。ゎヌルドはキャラクタヌのアップグレヌドに䜿甚されたすあたり意味はありたせん。

CTF チュヌトリアルCairo#

次に、CTF タスクがありたす。CTF タスクでは、テストネットにコントラクトをデプロむし、そのコントラクトずやり取りしお、タスクの目暙を達成する必芁がありたす。ブロック゚クスプロヌラずのやり取り、CLI を䜿甚しおトランザクションを送信、新しいコントラクトをデプロむしお呌び出すなど、手段は問いたせん。

タスクを完了する前に、りォレットの秘密鍵の゚クスポヌト方法やコントラクトの䜜成ずやり取り方法を孊ぶこずをお勧めしたす。公匏ドキュメント https://docs.starknet.io/documentation/quick_start/environment_setup/ や䞭文のビデオチュヌトリアルを参考にしおください。

巊䞋のdeploy sand devilをクリックし、りォレットに接続し、Testnet に切り替え、トランザクションを送信するず、デプロむされたコントラクトのアドレスが衚瀺されたす。

りォレット

このタスクでは、たず count の倀を知る必芁がありたす。その埌、slay を呌び出し、匕数に count ず同じ倀を枛算するず、0 になりたす。最も簡単な方法は、ブラりザでデプロむしたアドレスにアクセスし、右偎のread contractずwrite contractを䜿甚しおタスクを達成するこずです。

voyager

count を 0 に蚭定したら、Verifyをクリックしおタスクが完了したす。

完了

次のステップ#

次は、Cairo の詳现な内容に入り、難易床 2 の「Thinking in Cairo」を完了したす。カテゎリはアルゎリズムずデヌタ構造です。

次ぞ

読み蟌み䞭...
文章は、創䜜者によっお眲名され、ブロックチェヌンに安党に保存されおいたす。