モティオの開発備忘録

ITエンジニアとして働いています。

Solidity覚書 関数修飾子view

view関数は、外部から呼び出されたときにはガス代がかかりません。

 

その理由は、view関数はブロックチェーン上のデータを変更することはなく、ブロックチェーン上のデータを読み取るだけの関数であるからです。

 

しかし、view関数が定義されたコントラクトの他の関数から内部的に呼び出された場合は、ガス代がかかります。それは呼び出し先の関数がトランダクションを作成するため、すべてのノードから検証される必要があるからです。

 

view関数は外部から呼び出される分にはガス代がかかりません。

ガス代がかからない外部からのみ呼び出せる関数として定義するために関数修飾子にexternal viewをつけて定義します。