Ich habe den folgenden Vertrag, um eine Zufallszahl von 1 bis 6 von random.org zu erhalten:
pragma solidity ^0.4.0;
import "github.com/oraclize/ethereum-api/oraclizeAPI.sol";
contract RandomOrg is usingOraclize {
string public res;
event Log(string text);
function RandomOrg() {
Log("Created!");
}
function __callback(bytes32 myId, string _result) {
if (msg.sender != oraclize_cbAddress()) revert();
res = _result; // 'result' is the random number generated by random.org
Log(res);
updateNumber();
}
function updateNumber() payable {
string memory query = "https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new";
oraclize_query(0, "URL", query);
}
}
Bei Verwendung von MetaMask und Oraclize dev IDE wird der Vertrag erfolgreich erstellt, aber beim Aufruf der updateNumber()
Funktion (mit oder ohne msg.value, Ergebnis ist das gleiche) erhalte ich die folgende Fehlermeldung:
callback contain no result Error: JsonRpcEngine - response has no error or result for request:
{
"jsonrpc": "2.0",
"id": 255617697,
"method": "eth_estimateGas",
"params": [
{
"from": "0x3768372d20afe96dde0c27677b916046cd32002d",
"to": "0xe931380cb4389dce98227e095e41c9927433504e",
"data": "0x1b6a2481",
"value": "0xde0b6b3a7640000"
}
]
}
Was könnte der Grund dafür sein?
Riccardo von Oraclize hier.
Ich benutzte:
updateNumber()
: 1ETH;Ich habe gerade diesen Vertrag von REMIX ausprobiert und gearbeitet:
pragma solidity ^0.4.0;
import "./oraclizeAPI_0.5.sol"; //API copied from the oraclize github folder
contract RandomOrg is usingOraclize {
string public res;
event Log(string text);
function RandomOrg() {
Log("Created!");
}
function __callback(bytes32 myId, string _result) {
if (msg.sender != oraclize_cbAddress()) revert();
res = _result; // 'result' is the random number generated by random.org
Log(res);
updateNumber();
}
function updateNumber() payable {
string memory query = "https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new";
oraclize_query(0, "URL", query);
}
}
Ruham