![見出し画像](https://assets.st-note.com/production/uploads/images/60697125/rectangle_large_type_2_00fe5e5c86107992e94f87c9c2c1e148.png?width=1200)
非エンジニアが学ぶSolidity(CryptoZombies編_1-2)
■Lesson1:ゾンビファクトリーの作成
チャプター 2:コントラクト
《気になったこと①》
チャプター2では、pragma Solidity が登場する。
CryptoZombiesの話ではないが、Solidityに関する書籍のなかで
pragma Solidity のあとに記載するバージョン番号について
そのメジャーバージョンのなかで、新しいバージョン(マイナーバージョン)が出たときに対応できるように
「^(caret)」を付けるとするとされていた。
------------------------------------------------
pragma Solidity ^0.4.19;
↑↑
メジャーバージョン:4、マイナーバージョン:19、だが
「^(caret)」をつけることでメジャーバージョンの最新のマイナーバージョンを指定してくれる。
つまり、マイナーバージョンが19から20、20から21になっても
「^(caret)」をつけていればコードを書き換える必要はない。
------------------------------------------------
ただ、その書籍では「最近は^(caret)の使用を非推奨」とも書いていた。どないやねん。
そのあたりについての説明がまとまっているサイトがあったらいいなぁ
《気になったこと②》
Solidityのバージョンが新しく更新されたとき
つまり、0.4.19から0.5.1になったとき
0.4.19と書いていたコントラクトは、コントラクトを修正した上で更新(再デプロイ?)しないといけないのだろうか。
0.4.19のコンパイラ(?)を使用しつづけるかぎりにおいては、更新(再デプロイ?)しなくてもいいってことなのか。
#追記_2021 /10/18#
(おそらく)過去のコンパイラは残り続けているので
^0.4.0と書いたコントラクトは
ずっと^0.4.0のコンパイラで問題なくコンパイルされる?
この記事が気に入ったらサポートをしてみませんか?