Skip to main content

接口

如果不知道合约源码,或者合约源码太大不好直接导入到项目。但是可以拿到接口。通过接口调用很方便

接口类似于抽象合约,但是它们不能实现任何函数。还有进一步的限制:

  • 无法继承其他合约,不过可以继承其他接口。
  • 所有的函数都需要是 external
  • 无法定义构造函数。
  • 无法定义状态变量。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;

interface ICounter {
function count() external view returns (uint);
function inc() external;
}

contract CallInterface {
uint public count;

function examples(address _counter) external {
ICounter(_counter).inc();
count = ICounter(_counter).count();
}
}

就像继承其他合约一样,合约可以继承接口。接口中的函数都会隐式的标记为 virtual ,意味着他们会被重写