类型错误: 在固体契约 ( "should be marked as abstract" ) 中



我收到以下错误消息

TypeError: Contract "InterfaceB" should be marked as abstract.

一旦我将合同InterfaceB更改为接口InterfaceB,错误就会消失

代码如下。

pragma solidity ^0.8.0;
contract InterfaceB {
function getMessage() external pure returns(string memory);
}
contract ContractB {    
function getMessage() pure external returns(string memory){
return "Hellow World.";
}
}

如何解决此问题

如果要定义接口,必须使用interface关键字。

interface InterfaceB {
function getMessage() external pure  returns(string memory);
}

任何至少有一个未实现函数的契约在Solidity中都被视为抽象的。在您的案例中,您有contract InterfaceB,它有一个未实现的功能:

function getMessage() external pure returns(string memory);

所以Remix检测到这是一个抽象合同

相关内容

  • 没有找到相关文章

最新更新