我正在学习稳固,我正在使用Remix来实验和提高我的学习。我目前正在尝试创建一个使用接口的简单契约。
pragma solidity ^0.4.19;
contract InterfaceWithMe {
function call() returns (string);
}
contract Interfacing {
address ckAddress = 0x9fe1c58215407d67719ba680360940056e5eceb7;
InterfaceWithMe daContract = InterfaceWithMe(ckAddress);
function call() returns (string) {
return daContract.call();
}当我在Remix上尝试编译它时,我在第14行中得到以下类型错误:
TypeError:返回参数类型、不可访问的动态类型并不意味着转换为预期类型(第一个返回变量的类型)字符串内存。
下面是我用来与该合同进行接口的另一个合同:
pragma solidity ^0.4.19;
contract InterfaceWithMe {
function call() returns (string) {
return "Hello";
}
}谢谢你的帮助。
发布于 2018-11-05 20:53:34
对可读性和风格的一些改动。
pragma solidity 0.4.25;
contract Interface {
function call() public pure returns (string);
function isInterface() public pure returns(bool);
}
contract Interfacing {
Interface daContract;
constructor(address theContract) public {
daContract = Interface(theContract);
require(daContract.isInterface());
}
function call() public view returns (string) {
return daContract.call();
}
}
contract InterfaceWithMe is Interface {
function call() public pure returns (string) {
return "Hello";
}
function isInterface() public pure returns(bool) {
return true;
}
}这是在Remix,以显示它的工作。
InterfaceWithMeInterfacing,将地址从剪贴板传递到构造函数中。call。Hello
希望能帮上忙。
https://ethereum.stackexchange.com/questions/61780
复制相似问题