我有一个接口如下所示:
pragma solidity ^0.4.11;
interface TokenInterface {
function transfer(address recipient, uint amount) external returns(bool);
}以及在另一项合同中的执行:
pragma solidity ^0.4.11;
import "./TokenInterface.sol";
contract TokenImpl {
function transfer(address recipient, uint amount) public returns(bool)
{
return true;
}
}问题是,如果我更改为下面的代码。别跟我说什么都没有关系。该方法不对应于该接口。
pragma solidity ^0.4.11;
import "./TokenInterface.sol";
contract TokenImpl {
function transfer(address recipient, uint amount) public returns(bytes32)
{
return "true";
}
}仅使用导入标记,Impl就应用了接口结构??
我不是以严格的方式进行接口调用的??
我必须添加一个构造来确定接口的地址??(但接口无法部署)
我很迷茫
发布于 2019-02-11 14:38:11
仅使用导入标记,Impl就应用了接口结构??
不是的。加载了源代码。你可以用它做几件事,但你根本不用它。
我没有用正确的方式进行接口调用?
不是的。您的TokenImpl是TokenInterface的实现。
contract TokenImpl is TokenInterface {这样做,编译器就会提醒您,您的实现与接口不匹配。
我必须添加一个构造来确定接口的地址??(但接口无法部署)
不必了。您是对的,它不会部署,因此构造函数将是朝着错误方向迈出的错误一步。
希望能帮上忙。
https://ethereum.stackexchange.com/questions/66925
复制相似问题