メインコンテンツまでスキップ

Interface

Interfaceについて学習します

Interfaceはabstractと似ていますが、以下のような違いがあります

  • 変数は宣言できない
  • 実装を伴う関数は宣言できない
  • 関数のvisibilityはexternalのみ

主に外部コントラクトの関数と連携するための規約として機能します

宣言

interfaceとして宣言する

interface Sample {
function sampleFunction() external;
}

利用

Interface(address).functionという記述によって外部コントラクトの関数を呼び出すことができる

interface ISampleInterface {
function sampleFunction() external returns(uint);
}

contract Sample {
function useSampleFunction() returns(uint) {
return ISampleInterface(address(0xabc...)).sampleFunction();
}
}

Reference