Ich habe Probleme beim Aufrufen der Funktion y() im Pullother-Vertrag. Die Eingabe für die Funktion y() ist die Ausgabe der Funktion g(). Wenn ich y() mit dieser Eingabe aufrufe, ist die Ausgabe leer ('' um genau zu sein) und nicht 15. Ich bin mir nicht ganz sicher, was ich hier falsch mache, da dies mit den Beispielen übereinzustimmen scheint, die ich online von Leuten sehe erfolgreiches Aufrufen von Funktionen aus anderen Verträgen.
Unten ist Untitled.sol
pragma solidity ^0.4.6;
contract helloworld {
function f() returns (uint){
return 15;
}
}
Das Folgende ist der Vertrag, den ich verwenden möchte, um die Funktion f() im Vertrag helloworld aufzurufen.
pragma solidity ^0.4.6;
import "./Untitled.sol";
contract pullother {
address public hello;
function g() returns (address){
hello = new helloworld();
return hello;
}
function y(address contractadd) returns (uint){
helloworld h = helloworld(contractadd);
h.f();
}
}
Ich habe Ihren Code im Solidity-Browser ausprobiert und er funktioniert
Ich denke, Sie müssen verwenden
return h.f()
jbreezy
Badr Bellaj