Ich verwende Oraclize für die Zufälligkeit. Der Bereich der Zufallszahlen, die ich möchte, hängt von einer Variablen ab maxNumber
und wird sein 0 - maxNumber
.
Wenn Sie nach rechts von meinem Code-Snippet unten scrollen, sehen Sie, maxNumber
was ich intuitiv versucht habe, mit zu verketten +
.
Das funktioniert natürlich nicht und ich erhalte einen Compiler-Fehler, da ich nicht mit einem bytes32 konkatieren kann.
Was ist der richtige Weg, um in dieser Situation zu concatieren?
bytes32 queryId = oraclize_query(
"nested",
"[URL] ['json(https://api.random.org/json-rpc/1/invoke).result.random[\"data\"]', '\\n{\"jsonrpc\": \"2.0\", \"method\": \"generateIntegers\", \"params\": { \"apiKey\": \"keyGoesHere\"}\", \"n\": 1,\"min\": 0, \"max\":'"+maxNumber-1+"', \"replacement\": true }, \"id\": 14215${[identity] \"}\"}']",
gasForOraclize
);
Verwenden Sie die uint2string-Methode, um die Variable, die eine Zahl (maxNumber) enthält, in eine Zeichenfolge umzuwandeln. Wenn Sie den maximalen Bereich = maxNumber - 1 dekrementieren möchten, maxNumber vor der Oraclize-Abfrage wie unten gezeigt.
uint maxNumber -= 1;
oraclize_query(
"nested",
"[URL] ['json(https://api.random.org/json-rpc/1/invoke).result.random[\"data\"]', '\\n{\"jsonrpc\": \"2.0\", \"method\": \"generateIntegers\", \"params\": { \"apiKey\": \"keyGoesHere\"}\", \"n\": 1,\"min\": 0, \"max\": uint2str(maxNumber), \"replacement\": true }, \"id\": 14215${[identity] \"}\"}']",
gasForOraclize
);
Ryan Miller
Savard