Open20

Solidity Programming Essentials - Second Editionを読み進めてみる

mah_labmah_lab

本書は2022年6月発売(英語)。Ethereumのスマートコントラクト開発について書籍としてまとめているものとしては最新だと思われるので、読みながらエッセンスをメモしていきたいと思います。

洋書なので、もし原著を読まれる場合はこのスクラップを副読記事として読み進めてもらえるとありがたいなと思います。

Solidity Programming Essentials: A guide to building smart contracts and tokens using the widely used Solidity language, 2nd Edition (English Edition)
https://www.amazon.co.jp/dp/B09YRR7652/

mah_labmah_lab

Chapter4:グローバル変数と関数

https://zenn.dev/mah/articles/d5ac605342c1c7

mah_labmah_lab

addressのメンバーに関する説明があっさりしているが、公式ドキュメントにより詳しい説明があった。

https://docs.soliditylang.org/en/v0.8.15/types.html#address

code and codehash

You can query the deployed code for any smart contract. Use .code to get the EVM bytecode as a bytes memory, which might be empty. Use .codehash get the Keccak-256 hash of that code (as a bytes32). Note that addr.codehash is cheaper than using keccak256(addr.code).

mah_labmah_lab

Chapter 5: Expressions and Control Structures

Solidityの制御構造について。一般的なプログラミング言語とほぼ同じなので、メモするほどのものはないなー。記事化は飛ばしで。

mah_labmah_lab

Chapter 6: Writing Smart Contracts

ようやくSolidityらしいところへ。

  • Writing a simple contract
  • Creating contracts
  • Creating contracts via the new and existing address
  • Contract constructor
  • Contract composition
  • Inheritance
  • Encapsulation
  • Polymorphism
  • Method overloading
  • Abstract contracts
  • Interfaces
  • Advance interfaces
  • Library

https://zenn.dev/mah/articles/12a8dbe84ef33b

mah_labmah_lab

本書では言葉で細かく説明しているけれども、コードを見れば分かるような話ばかりだったので、ざっくり要約してコード例を多く載せておいた。こっちの方が、改めて確認したいときに役に立つ。

mah_labmah_lab

Chapter10: Debugging Contracts

Remixでデバッグする方法が紹介されている。が、TruffleでローカルネットワークにデプロイしたコントラクトをRemixでデバッグするのはやりづらく、VSCode上で機動的にデバッグできるようにしたいところ。