CryptoZombies勉強会#5を開催しました
終盤に突入
いいペースで開催できてる。頑張っていきましょう。
ということでCryptoZombies勉強会#5を開催しました。
今回はレッスン5を進めていきます。
レッスン5でやったこと
レッスン5は遂にトークンが出てきます。トークンを自前で実装することで、他のDAppsとやり取りができるようになります。
- ERC
- EthereumのRFC
- Ethereumの規格を指す
- ERCの後に続く番号は規格として策定された番号を指す
- ERC721トークン
- 多重継承
- Solidityでは複数のコントラクトを継承することが可能
- Nick Szabo
- Nick Szabo - Wikipedia
- スマートコントラクト提唱者
- Hal Finney
- Hal Finney (computer scientist) - Wikipedia
- ビットコインで初めてトランザクションを受け取った人物
- 冷凍保存されているらしい
- ERCトークンのインターフェース
- ERCトークンは定義されているインターフェースを自身のDAppsに組み込む
- ここで不要な関数を削除したり関数名を変更したりすると定義されているものと異なってしまうため必ず従うこと
- balanceOf関数
- トークンの残高量を返す
- ownerOf関数
- トークンの持ち主addressを返す
- transfer関数
- 送金処理を実装する
- この送り主がtransfer関数を呼び出すことで送金が行われる(Push型)
- approve&takeOwnership関数
- _transfer関数の共通化
- オーバー/アンダーフロー対策
- 2進数のお話から
- なぜオーバー/アンダーフローが起きるのか
- signとunsign
- 数値範囲の確認
- ライブラリ
- contractとは異なる
- 型に対してusing宣言することで、宣言した型でライブラリで定義したメソッドが使えるようになる
- SafeMath
- openzeppelinが提供している演算用ライブラリ
- 加算/減算/乗算/除算を行う際にオーバー/アンダーフローが発生しないかチェックしてくれる
- もし発生した場合は例外が送出される
- そのため、例外が送出された場合に後続の処理に影響がないよう考慮する必要がある
2進数
ITパスポートや基本情報処理技術者試験などで勉強していれば2進数もわかるけれど、知らない人はそこからの話になるので時間を厚めに取った
総括
ERCトークンとセキュリティ対策がメインとなった内容でした。次でいよいよ現時点でラストのレッスンになります。