CryptoZombies コントラクト関連図(クラス図的な)

Ethereumでコントラクトを記述する言語のひとつに、Solidityというのがあり、今(2018.7)のところ、コントラクト作成言語としての事実上の標準として用いられています。

CryptoZombiesは、このSolidityを気軽に楽しく学べるサイトです。全部で60ほどのチャプターをこなしていくと、ブロックチェーン上で動作するゾンビゲームのコントラクトができあがってきます。

この記事ではCryptoZombiesを一通り体験した方を対象に、コントラクトの関連を整理します。

Ownable

コントラクトのオーナーに関する基本的な関数を実装しているコントラクトです。CryptoZombiesではmodifier onlyOwner()がよく使われています。元はOpenZeppelinのコードです。

ZombieFactory

このコントラクト群の基底となるコントラクトです。ゾンビの生成や、生成されたゾンビの所有をしています。ゾンビ構造体の定義もこのコントラクトにあります。コントラクトオーナーのみ実行可能な関数を実装するため、Ownableを継承しています。

SafeMath

数値演算のアンダーフロー、オーバーフローを検知し、安全に実施するためのライブラリです。Ownable同様、OpenZepperinからの流用です。Solidityのuseは、派生コントラクトにも影響を与えます。したがって他のZombieXXXコントラクトも、SafeMathによる安全な数値演算を使うことができます。

ZombieFeeding

ゾンビがCryptoKittyを食べるための機能を実装しているコントラクトです。

CtyptoKittyコントラクトのインタフェースです。ZombieFeedingはあらかじめCtyptoKittyのコントラクトのアドレスを所持しておき、”KittyInterface kittyContract = KittyInterface(ckAddress);”←こんな形で接続します。

ZombieHelper

有償によるレベルアップの仕組み、名前変更など、ゾンビに関するヘルパー関数が格納されているコントラクトです。

ZombieAttack

あるゾンビが他のゾンビに攻撃を仕掛け、勝敗を決するための関数が格納されているコントラクトです。

ERC721

非代替性をもつトークンについてのコントラクトの規格です。この規格(プログラム的には関数群と各関数に実装すべき処理の要請)に沿って、ZombiesOwnershipを実装します。

ZombiesOwnership

プレーヤー間でゾンビを取引する関数が格納されているコントラクトです。

CryptoZombies コントラクト関連図(クラス図的な)」への6件のフィードバック

コメントは停止中です。