LoginSignup
0
0

More than 5 years have passed since last update.

CryptZombiesレッスン2(チャプター1~5)の自分なりのまとめ

Last updated at Posted at 2018-12-03

最初に

この記事は私がCryptZombiesを進めていく上で自分なりにまとめたものです。
前回の記事
https://qiita.com/daichi77/items/c494fc23652a476b63ba
参考にしたサイト
サイト名: イーサリアム上のDApp開発をゲームを作って学びましょう
URL: https://cryptozombies.io/jp/ 
前の記事までは問題文と答えを書いておきましたがよく考えたらcryptzombiesの方に問題も答えも書いてあるので割愛します。

チャプター1

特に何もないので割愛。

チャプター2 マッピング(Mapping)とアドレス(Addresses)

用語

アドレス
イーサリアムのブロックチェーン場にある口座。
仮想通貨の取引をしているとよく目にする。通貨(ethreumとか)を送金したり、受け取ったりする。
銀行口座のデジタル版みたいな認識。
マッピング
配列や構造体のようにデータを格納するときに使える便利なやつ。

mapping (key => value) public mapping名;

実際に使うときはkeyとvalueのところにはuintやstringなどの型を書いておく。

今回したこと(テスト)

  1. zombieToOwnerというマッピングの作成 これによりゾンビのIDを元にゾンビを参照できるようになった。 keyはID,valueはaddress
  2. ownerZombieCountというマッピングの作成。 これはownerのaddressをkey、uintをvalueにすることでそのアドレスのゾンビの数を数えれるようにするためのやつ。(多分)

チャプター3 Msg.sender

用語

msg.sender
この関数を呼び出したユーザー(またはスマートコントラクト)のaddressを参照できる。
関数を呼び出すまでは、コントラクトはブロックチェーン上で何もせずに、ただそこにあるだけなのでこれを呼び出すためにmsg.senderが使われる。

今回したこと(テスト)

  1. keyをゾンビのid、valueをmsg.sender(アドレス)にしzombieToOwnerマッピングを更新した。
  2. OwnerZombieCountのkeyがmsg.sender(自分のアドレス)のvalueを+1した。

まとめ

今回新たにできるようにしたことは、ゾンビが作られた時点で
1.そのゾンビがownerのアドレスに紐付けられる。
2.ownerの持っているゾンビのカウントが+1される。
ということである。
これでいつでもゾンビのownerのアドレスを参照できるようになり、オーナーに紐づけられているゾンビの数が参照できるようになった。

チャプター4 Require

用語

Require
if文のようなもので関数内で

require(条件);

と書くことで条件を満たしていなかった時にエラーを吐くようにすることができる。

今回したこと(テスト)

今回はcreateRandomZombie関数の中にrequire文を書くことで、自分のアドレスにすでにゾンビが登録されていた場合ゾンビが作られないようにした。

チャプター5 継承

継承

これは他の言語と同様、コントラクトを継承することでコードをリファクタリングできるというやつ。

contract 子contract is 親contract {}

と書くと子コントラクトにアクセスした時に親コントラクトの関数も使えるようになる。
まあこの辺は他の言語のクラスの継承とほぼ同じ認識。

今回したこと(テスト)

ZombieFeedingにZombieFactoryを継承した。以上!

次の記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0