Solidityの関数の権限設定
クリプトゾンビ〜をやっていて関数の権限設定(public private external internal)を学んだのでメモる
とりあえずシンプルに理解する
・public -コントラクト内外全てからアクセス可能
・private -この関数が定義されたコントラクト内からのみアクセス可能
・internal -この関数が定義されたコントラクト内と、継承先からのみアクセス可能
・external -外部からのみアクセス可能
public private external internalについて
public
この関数が定義されたコントラクトと継承先のコントラクトと外部から呼び出すことができる。
関数に明示的に権限設定しない場合のデフォルトはこれなので、注意が必要
private
他言語のprivateと同様にコントラクト内でのみ呼び出せる。
継承先・外部コントラクトからの関数の呼び出しはできない
internal
この関数が定義されたコントラクトと継承先のコントラクトからのみ呼び出し可能。
変数に明示的に権限設定していない場合のデフォルトの設定はinternalになる
external
外部からのみ呼び出せる