Asa Tech Blog

学んだことを備忘録として残しています

CryptoZombiesでsolidityを学ぶ

 CryptoZombiesというsolidityを学ぶwebサイトがあり、面白そうだなと思い、利用し始めました。

cryptozombies.io

solidityとは

最初に、solidityとはそもそも何かということを、公式サイトで確認しました。

Solidityは、スマートコントラクトを扱えるオブジェクト指向高級言語です。スマートコントラクトはEthereum内でアカウントの動作を制御するものです。

SolidityはC++PythonJavaScriptを参考に、Ethereum Virtual Machine(EVM)の操作を目的に作られています。

Solidityは静的言語で継承やライブラリ、ユーザーが定義した複雑な型をサポートします。 Solidityで投票やクラウドファンディング、匿名のオークションやマルチシグウォレットを作成することができます。

solidity-jp.readthedocs.io

pragmaとは

Solidityでは一番最初に、コードが使用するSolidityのコンパイラのバージョンを宣言する必要があります。これは、将来コンパイラのバージョンが原因で、コードが動かなくなることを防ぐために必要みたいです。

具体的には、pragma solidity ^0.4.19; のように記述します。

コントラクトについて

classのようなもの。基本的には1ファイル1コントラクト。

Solidityのコードはコントラクト内にカプセル化される。

変数やファンクションはすべてコントラクトに属している。

contract ZombieFactory {
  // この中に変数や関数の処理を書いていく
}

uintとは

uintとは、符号なし整数のデータ型である。つまり、負数ではないということを示している。

uint以外に、intという符号付整数もある。

補足として、uintは256ビットの符号なし整数であるuint256のエイリアスです。uint8、uint16、 uint32など、少ないビット数でuintを宣言することもできます。しかし、一般的には、特定の場合を除いて、uintを使うようです。

contract Example {
  // この部分がブロックチェーン上に記載される
  uint myUnsignedInteger = 100;
}