Estoy usando Oraclize para la aleatoriedad. El rango de números aleatorios que quiero depende de una variable maxNumber
, y lo será 0 - maxNumber
.
Si se desplaza hacia la derecha de mi fragmento de código a continuación, verá maxNumber
cuál intenté concatenar intuitivamente usando +
.
Por supuesto, eso no funciona y obtengo un error de compilación ya que no puedo conectarme a bytes32.
¿Cuál es la forma correcta de concatenar en esta situación?
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
);
Utilice el método uint2string para convertir la variable que contiene un número (maxNumber) en una cadena. Si desea hacer que el rango máximo = maxNumber - 1 decremente maxNumber antes de la consulta oraclize como se muestra a continuación.
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 molinero
savard