初心者文系主婦がブロックチェーンを学ぶブログ

IT革命のビッグウェーブに乗り遅れた主婦が、ブロックチェーン革命の波にのるべく、ブロックチェーン技術を学ぶブログです。

【CryptZombies】レッスン2チャプター2:マッピング(Mapping)とアドレス(Address)

アドレス

イーサリアムブロックチェーンは銀行口座と同じようにアカウント(口座)で構成されています。

このアカウント(口座)には、Ether(イーサ)の残高が記録されていて、Etherを送金したり受け取ったり、別のアカウントに支払うこともできます。

銀行口座から送金するのとまったく同じ。

 

それぞれのアカウントにはアドレス(口座番号)があります。

これはアカウントのためのユニークな識別番号になっていて、次のような番号で表示されます。

0x0cE446255506E92DF41614C46F1d6df9Cc969183

アドレスは、特定のユーザー(またはスマートコントラクトで)が所有するものです

つまり、この数字をゾンビの番号として使用することができるのです。

 

マッピング

マッピング(Mappings)は、構造体(struct)や配列(array)と同じで、データを格納するときにSolidityで使える方法の一つです。

次のように定義します。

// 金融系のアプリの場合、ユーザーのアカウントの残高にuintを格納する:
mapping (address => uint) public accountBalance;
// もしくは、ユーザーIdを基にユーザー名を参照・格納するために使用するぞ:
mapping (uint => string) userIdToName;m

マッピング、本質的にはデータの保管と参照のためのキーバリューストアです。

上の例でいえば、キーはaddressで、バリューはuintです。

2番目の例だど、キーはuintで、バリューはstringです。

※キーバリューストアとは、キーとバリュー(値)の組を書き込み、キーを指定することで値を読み出せるデータベース管理のことです。

 

テストの実行

①zombieToOwnerという名前のマッピングを作成せよ。キーはuintとし(idを基にゾンビを参照・保管するぞ)、バリューはaddressとする。マッピングはpublicで作成せよ。

f:id:nomadomama:20181120001249p:plain

②ownerZombieCountという名前のマッピングを作成し、キーはaddress、バリューはuintを設定せよ。

f:id:nomadomama:20181120001348p:plain

 

お疲れさまでした!

 

<参考>

CryptoZombies - イーサリアム上でゲームを開発する方法を学習。Powered by Loom Network

key-valueストアの基礎知識