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].

Para simular la ejecución de un contrato sin transmitir nada a la cadena, usa nuestro estimador de energía de contratos. Simula la ejecución en la TVM e informa la energía que usaría la llamada y el TRX que quemaría.

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ámetroTestnet NileRed principal de TRONImpacto práctico para desarrolladores
Dirección del contrato de USDTTXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBfTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6tHay que cambiar la dirección del contrato en los scripts de prueba
Cobro de energía de USDTEl contrato paga la energía de quien llamaPaga quien llamaCon el USDT de Nile no se puede probar el descuento de gas de quien llama
Token de prueba recomendadoJST (TF17BgPaZYbz8oxbjhriubPDsA7ArKoLX3)USDTJST cobra la energía al remitente igual que USDT en la red principal
Bloqueo máximo de delegación5 días (144,000 bloques)30 días (864,000 bloques)Ciclos de bloqueo más cortos al probar alquileres
Espera para liberar el stake1 día14 días (getUnfreezeDelayDays)Ciclos de stake más rápidos en la testnet
URL del nodo públicohttps://nile.trongrid.iohttps://api.trongrid.ioPuertas de enlace RPC separadas
Exploradornile.tronscan.org[4]tronscan.orgRevisar 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:

  1. Ingresa la dirección del contrato (por ejemplo, tu contrato propio o un token).
  2. Ingresa la firma del método (por ejemplo, transfer(address,uint256)).
  3. Indica los argumentos separados por comas (por ejemplo, la dirección receptora y el monto entero en unidades base).
  4. Indica la dirección que llama, cuyo saldo de tokens y permisos se evalúan.
  5. 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:

bash
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: true indica que la simulación se completó; false indica 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:

  1. Pide TRX y tokens JST de prueba en el faucet público de Nile en nileex.io.
  2. Alquila o delega energía a tu billetera de prueba que envía con nuestra API de testnet (https://api-nile.tenergy.me/v1).
  3. Transmite una transferencia de JST a otra cuenta de prueba.
  4. 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.

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í.