Puntos clave
- JavaScript conecta la interfaz del navegador con wallets y servicios de red.
- También se utiliza fuera del navegador mediante entornos como Node.js.
- La integración debe gestionar estados asíncronos, errores y validación de datos.
¿Qué es JavaScript?
JavaScript ejecuta la lógica interactiva de muchas aplicaciones web y también puede utilizarse en servidores mediante runtimes como Node.js. En una dApp conecta formularios, wallets y servicios de datos para que una persona entienda y autorice una operación. El contrato aplica las reglas on-chain; JavaScript organiza la experiencia y las integraciones que lo rodean.
Compartir lenguaje entre navegador y backend facilita reutilizar validaciones y formatos, aunque cada entorno mantiene responsabilidades diferentes. Las credenciales de infraestructura y las claves de firma del servidor no deben formar parte del código enviado al navegador.
Cómo funciona
Las consultas RPC y las peticiones a una wallet son asíncronas. Promises y async/await permiten representar su resultado, pero la aplicación debe distinguir rechazo del usuario, fallo de conexión y transacción revertida. Recibir un hash indica que se ha enviado una transacción; no acredita que la operación haya terminado correctamente.
Las wallets pueden exponerse mediante proveedores compatibles con EIP-1193 y mecanismos de descubrimiento como EIP-6963. La integración debe reaccionar a cambios de cuenta y de red. Ethers y Viem ofrecen abstracciones distintas para esos proveedores; sus clases y métodos no son intercambiables.
Qué aporta JavaScript
En una compra con tokens, la interfaz puede leer saldo y autorización, explicar el permiso solicitado y preparar la llamada al contrato. Después muestra las etapas de firma, envío y confirmación, conserva la referencia de la operación y permite recuperar su estado al recargar la página. Esto evita que un retraso visual se interprete como una invitación a pagar otra vez.
Los importes de contratos se manejan como enteros, utilizando bigint cuando corresponde. La conversión a unidades legibles ocurre en un punto controlado y respeta los decimales del activo. Convertir indiscriminadamente a Number puede perder precisión en cantidades perfectamente válidas on-chain.
Limitaciones y criterios de elección
El tipado dinámico exige disciplina en los límites entre componentes. Una dirección recibida de un formulario o una respuesta de API necesita validación; una cadena de texto que parece correcta no demuestra que el contrato exista en la red seleccionada. TypeScript puede añadir comprobaciones durante el desarrollo sin sustituir estas verificaciones en ejecución.
La elección de librerías incluye revisar mantenimiento, soporte de wallets y manejo de errores. Web3.js y Truffle tienen anuncios de retirada que importan al mantener proyectos heredados. Para código nuevo se evalúan alternativas mantenidas y se prueban los flujos completos con cancelaciones, reconexiones y cambios de red.
También conocido como
- JS
- ECMAScript
- ES6+





