Skip to content

Prueba Tu Contrato WAX RNG

Para probar el contrato inteligente, haremos una llamada a la acción getrnd con los siguientes parámetros:

ParámetroTipoEjemploDescripción
customer_idnamearpegiator21Nombre de cuenta del usuario solicitante

📝 Nota

Para ilustrar el caso uso la cuenta arpegiator21 pero debes usar tu propia cuenta cuya clave ya ha sido importada a la billetera y con la que puedes firmar transacciones.

Llamada a la acción

Desde la línea de comandos, usa el comando cleos push action para llamar a la acción getrnd.

shell
cleos -u [chain-api-url] push action mywaxrngtest getrnd '["arpegiator21"]' -p arpegiator21@action

La consola imprime lo siguiente:

shell
executed transaction: 06847ad5e939849a28f03685a6f959d59fac9ab265b7eeb4453157ab2b0c45a8  104 bytes  310 us
#  mywaxrngtest <= mywaxrngtest::getrnd         {"customer_id":"arpegiator21"}
#      orng.wax <= orng.wax::requestrand        {"assoc_id":"2949917703587584469","signing_value":"2949917703587584469","caller":"mywaxrngtest"}
warning: transaction executed locally, but may not be confirmed by the network yet         ]

En la respuesta podemos ver cómo la acción getrnd ha realizado una llamada inline a la acción requestrand del contrato inteligente orng.wax con los siguientes parámetros:

ParámetroTipoDescripción
assoc_iduint64_t2949917703587584469
signing_valueuint64_t2949917703587584469
callernameNombre del contrato inteligente que contiene la función de callback que recibirá la respuesta.

Aunque hemos tomado muchas precauciones para generar una semilla única (signing_value), si aún así fallara, obtendríamos un mensaje de error como este:

shell
Error 3050003: eosio_assert_message assertion failure
Error Details:
assertion failure with message: Signing value already used
pending console output:

Verificar El Número Aleatorio

La función de callback guarda tu número aleatorio en la tabla rngcustomers. Para mostrar los valores de la tabla, usa el comando cleos get table.

shell
cleos -u [chain-api-url] get table mywaxrngtest mywaxrngtest rngcustomers

La consola imprime los siguientes resultados JSON, incluyendo el random_value devuelto por el servicio WAX RNG y el finalnumber derivado del random_value:

json
{
  "rows": [{
      "signing_value": "2949917703587584469",
      "customer_id": "arpegiator21",
      "random_value": "b3f4a264cdb0367db071c851b6bbb20b51a391cdb50b314d81f3705c0702c8d4",
      "final_number": 85
    }
  ],
  "more": false,
  "next_key": ""
}