【CryptoZombiesを触ってみた】Lesson1で学んだこと

【CryptoZombiesとは】

Solidityでスマートコントラクトの構築を学習できるサイト
日本語で丁寧に説明してくれるので、プログラミングやったことない人でも学習できる。

cryptozombies.io

【はじめに】

Solidityは未経験ですが、JavaScriptは触ったことがあります。
そんな人が自分用の学習メモとして書いています。

【学んだこと】

  • contractの書き方、お作法
  • 変数宣言
  • 四則演算

Solidityは指数演算子もサポートしている。

uint x = 5 ** 2; // 5^2 = 25 と同様

※cryptozombies より引用

  • 構造体と配列の操作は他のプログラミングと同じ
  • 関数
    • グローバル変数と区別をつけるために、引数の変数名にアンダースコアをつける。
    • スコープ(public、private)を指定する位置が後ろ
    • privateにする場合は引数同様、関数名にもアンダースコアをつける。
    • 修飾子
      • view:データの読み取り専用で編集できない。
      • pure:アプリ内のデータにアクセスできない。戻り値が関数の引数のみに依存する。
function _generateRandomDna(string _str) private view returns (uint) {
}

※cryptozombies より引用

  • 型のキャスト
  • Event(イベント)

ブロックチェーンで何かが生じたとき、
コントラクトがアプリのフロントエンドに伝えることができる。

event NewZombie(uint zombieId, string name, uint dna);

function _createZombie(string _name, uint _dna) private {
    uint id = zombies.push(Zombie(_name, _dna)) - 1;
    NewZombie(id, _name, _dna); // イベント発生、フロントエンドに通知
} 

※cryptozombies より引用

【できたもの】

ゾンビの名前を入力すると、オリジナルのゾンビを作成してくれる。

f:id:takuyafujita:20180716062638j:plain