Cómo probar el consumo de energía de un contrato inteligente en Nile
Cómo estimar y probar la energía de un contrato inteligente TRON en la testnet Nile: tokens de prueba, métodos RPC y herramientas de estimación.
Publicado
Probar el consumo de energía de un contrato inteligente en la testnet Nile de TRON permite a los desarrolladores medir el costo de ejecutar el bytecode, verificar los límites de comisión y evitar reversiones por OUT_OF_ENERGY antes de arriesgar fondos en la red principal[1]. Como la ejecución de contratos en TRON quema TRX cuando la cuenta no tiene suficiente energía, medir bien antes de desplegar es clave para que el presupuesto de una aplicación sea predecible.
Una diferencia de la testnet que hay que conocer: en Nile, el contrato oficial de USDT paga él mismo la energía de quienes lo llaman. Por eso, enviar USDT de Nile no descuenta energía de la cuenta del remitente. Para probar un consumo de gas realista, pagado por el remitente, hay que usar otros tokens como JST (TF17BgPaZYbz8oxbjhriubPDsA7ArKoLX3), simular las llamadas con triggerconstantcontract[3] o usar herramientas de estimación especializadas[2].
Testnet Nile frente a la red principal de TRON: diferencias del entorno
Nile reproduce fielmente el entorno de ejecución de la máquina virtual de TRON (TVM), pero algunos parámetros del protocolo difieren bastante de la red principal[1]:
| Parámetro | Testnet Nile | Red principal de TRON | Impacto práctico para desarrolladores |
|---|---|---|---|
| Dirección del contrato de USDT | TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t | Hay que cambiar la dirección del contrato en los scripts de prueba |
| Cobro de energía de USDT | El contrato paga la energía de quien llama | Paga quien llama | Con el USDT de Nile no se puede probar el descuento de gas de quien llama |
| Token de prueba recomendado | JST (TF17BgPaZYbz8oxbjhriubPDsA7ArKoLX3) | USDT | JST cobra la energía al remitente igual que USDT en la red principal |
| Bloqueo máximo de delegación | 5 días (144,000 bloques) | 30 días (864,000 bloques) | Ciclos de bloqueo más cortos al probar alquileres |
| Espera para liberar el stake | 1 día | 14 días (getUnfreezeDelayDays) | Ciclos de stake más rápidos en la testnet |
| URL del nodo público | https://nile.trongrid.io | https://api.trongrid.io | Puertas de enlace RPC separadas |
| Explorador | nile.tronscan.org[4] | tronscan.org | Revisar resultados de transacciones y rastros de recursos |
Tres formas de probar la energía de un contrato
Método 1: el estimador de energía de contratos
Nuestro estimador de energía de contratos ejecuta una simulación contra un nodo de TRON sin transmitir ninguna transacción firmada a la red[2].
Para usar la herramienta:
- Ingresa la dirección del contrato (por ejemplo, tu contrato propio o un token).
- Ingresa la firma del método (por ejemplo,
transfer(address,uint256)). - Indica los argumentos separados por comas (por ejemplo, la dirección receptora y el monto entero en unidades base).
- Indica la dirección que llama, cuyo saldo de tokens y permisos se evalúan.
- Haz clic en Estimar energía para ver la energía que usaría la llamada y el TRX equivalente que se quemaría.
Método 2: simulación por RPC con triggerconstantcontract
Si desarrollas bots de backend o suites de pruebas de CI/CD, puedes consultar directamente un nodo de TRON con el endpoint wallet/triggerconstantcontract. Simula la transacción en un entorno TVM de solo lectura y devuelve energy_used:
curl -X POST https://nile.trongrid.io/wallet/triggerconstantcontract \
-H "Content-Type: application/json" \
-d '{
"owner_address": "41A614F803B6FD7F65EC0F5FF4D6B265BEB0ED6FCF",
"contract_address": "4137349aeb75a32f8c4c090daff376cf975f5d2eba",
"function_selector": "transfer(address,uint256)",
"parameter": "000000000000000000000000a614f803b6fd7f65ec0f5ff4d6b265beb0ed6fcf00000000000000000000000000000000000000000000000000000000000f4240",
"visible": false
}'
En la respuesta, busca:
result.result:trueindica que la simulación se completó;falseindica una reversión.energy_used: las unidades de energía de cómputo necesarias para ejecutar las instrucciones.
Método 3: ejecución de prueba en la cadena con JST
Para pruebas de integración completas en tiempo real, con delegación de recursos y transmisión desde la billetera:
- Pide TRX y tokens JST de prueba en el faucet público de Nile en nileex.io.
- Alquila o delega energía a tu billetera de prueba que envía con nuestra API de testnet (
https://api-nile.tenergy.me/v1). - Transmite una transferencia de JST a otra cuenta de prueba.
- Revisa la transacción resultante en nile.tronscan.org para verificar:
- La energía descontada de la cuota delegada: coincide con lo esperado.
- El TRX quemado por energía: cero.
Lo que prueba Nile (y lo que no)
Probar en Nile es una etapa esencial del desarrollo, pero hay que conocer sus límites:
- Lo que Nile prueba:
- Que la lógica del contrato y la codificación de los parámetros del método son estructuralmente válidas.
- Que las estimaciones de consumo de energía reflejan bien la complejidad del bytecode.
- Que la lógica de integración (autenticación HMAC, creación de órdenes, webhooks) maneja bien las respuestas de la API.
- Lo que Nile no prueba:
- La liquidez real de la oferta en la red principal: Nile tiene una oferta de prueba pequeña, así que las órdenes de prueba grandes pueden devolver
5001 insufficient_supply. - Los precios por congestión de la red principal: los precios de Nile son de prueba, no una previsión de la red principal.
- La liquidez real de la oferta en la red principal: Nile tiene una oferta de prueba pequeña, así que las órdenes de prueba grandes pueden devolver
Para todos los detalles de la configuración de la testnet y ejemplos de integración, visita nuestra documentación de entornos y el inicio rápido de la API.
Preguntas frecuentes
¿Por qué transferir USDT en Nile no consume la energía del remitente?
En la testnet Nile, el contrato oficial de USDT está configurado para pagar él mismo la energía de quien llama. Para ver un descuento de energía realista, como el de USDT en la red principal, los desarrolladores prueban con tokens JST o con contratos TRC-20 propios.
¿Cómo estimo la energía de un contrato inteligente antes de enviar una transacción?
Puedes simular la llamada con el endpoint RPC triggerconstantcontract de TRON o ingresar el contrato, el método y los argumentos en nuestro estimador de energía de contratos, sin transmitir una transacción real.
¿Dónde consigo TRX y tokens de prueba gratis para Nile?
El TRX de Nile y los tokens de prueba gratis se piden en el faucet público de nileex.io.
¿Cuáles son las principales diferencias de parámetros entre Nile y la red principal?
Nile aplica un bloqueo máximo de delegación de 5 días (frente a 30 en la red principal), una espera de 1 día para liberar el stake (frente a 14 en la red principal) y tiene un inventario de recursos de prueba más pequeño.
¿No encontró su respuesta? Escríbanos por Telegram a @tenergymebot o a support@tenergy.me y la añadiremos aquí.