¿Qué es Ethers.js? Un análisis profundo de la biblioteca de JavaScript de Ethereum

Principiante3/18/2024, 8:47:39 AM
Ethereum es un protocolo de cadena de bloques conocido por su conjunto de herramientas, contratos inteligentes y ecosistema alineado con el código, que depende en gran medida de ethers.js (una biblioteca de Javascript) para proporcionar la potencia necesaria para su enfoque centrado en el desarrollador.

Si estás considerando Ether (ETH) sobre otros jugadores de criptomonedas, deberías tomarte un momento para entender Ethereum desde una perspectiva más técnica. Un protocolo de blockchain conocido por su conjunto de herramientas, contratos inteligentes y ecosistema alineado con el código, Ethereum depende en gran medida de ethers.js, una biblioteca de Javascript, para darle a su enfoque centrado en el desarrollador la potencia requerida.

Si bien ethers.js no es la única biblioteca JavaScript nativa de Ethereum, es la mejor opción para DApps más pequeñas. En esta guía, profundizamos en los aspectos de ethers.js, ayudándote a entender este concepto técnico.

En esta guía:

  1. Desempaquetando ethers.js
  2. ¿Por qué es importante ethers.js?
  3. Todas las versiones de Ethers.js explicadas
  4. Empezando con ethers.js
  5. Características principales
  6. Cómo las publicaciones de criptomonedas pueden aprovechar Ethers.js
  7. Aplicaciones del mundo real de Ethers.js
  8. Consideraciones de seguridad
  9. Ethers.js: una herramienta versátil
  10. Preguntas frecuentes

Desempaquetando ethers.js

ethers.js es una biblioteca de JavaScript, un conjunto de código preescrito que automatiza varias funciones. El uso de bibliotecas de JavaScript para el desarrollo puede minimizar el esfuerzo de escritura de código. El proceso se vuelve más amigable para el usuario y, para los desarrolladores de DApp, estas bibliotecas ayudan a ofrecer funcionalidades básicas específicas de la cadena de bloques como paquetes.

Ethers.js y el ciclo de desarrollo: BeInCrypto

Aquí está el GitHubrepositoriopara la biblioteca.

¿Qué son las bibliotecas de JavaScript?

Antes de adentrarnos más en ethers.js, echemos un vistazo más de cerca a las bibliotecas de JavaScript. Estas bibliotecas son conjuntos preescritos de código JavaScript que pueden automatizar tareas comunes específicas. El uso de bibliotecas como ethers.js puede acelerar el proceso de creación de DApps e incluso agilizar otras interacciones específicas de la cadena de bloques.

¿Por qué necesitamos bibliotecas de JavaScript en Ethereum?

Ethereum ha evolucionado hacia una plataforma descentralizada de desarrollo de software. From contratos inteligentesaDeDesde las aplicaciones financieras hasta las DApps, la codificación es fundamental para el ecosistema de Ethereum. Es precisamente por eso que existen bibliotecas de JavaScript adaptadas a Ethereum como ethers.js. Utilizando estas bibliotecas, los desarrolladores pueden conectarse a la red, implementar e interactuar con contratos inteligentes, y gestionar fácilmente cadena de bloquesdatos.

¿Sabías? Ethers.js no es la única biblioteca de JavaScript de Ethereum conocida. Otro prominente es Web3.js, fundado por la Fundación Ethereum. Web3.js es conocido por su amplia colección de documentación y está destinado a las DApps más complejas.

¿Por qué es importante ethers.js?

Como se mencionó anteriormente, ethers.js está dirigido a desarrolladores que interactúan con la cadena de bloques de Ethereum. En cuanto a la importancia, esta biblioteca desarrollada por Richard Moore, comercializada bajo el nombre de "Ethers", es útil para los siguientes trabajos:

  1. Simplificando varias transacciones de Ethereum
  2. Ofrece acceso a una documentación y recursos completos
  3. Facilitando el desarrollo de DApp


El ecosistema Ethers.js y los roles que puede asumir: BeInCrypto

Aquí hay un ejemplo rápido del fragmento de código utilizado para obtener el saldo actual de una cuenta de Ethereum. Leamos el código primero y entendamos cómo ethers.js hace la vida más fácil:

const { ethers } = require(‘ethers’);

// Conéctese a la red Ethereum

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’Error: No se puede traducir el texto proporcionado.

// Especifique la dirección de la cuenta

const accountAddress = ‘0xABC123…’;

// Obtener y mostrar el saldo

provider.getBalance(accountAddress).then((balance) => {

// Convertir el saldo de Wei a Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Saldo: ${balanceInEther} ETH`);

});

En este ejemplo, puedes ver claramente cómo el comando — ethers.providers.JsonRpcProvider — invoca un punto final de Infura, y getBalance obtiene el saldo. No necesitas tratar directamente con el JSON RPC de Ethereum o la Llamada de Procedimiento Remoto. En este caso, puedes pensar en ethers.js como un traductor que hace que Ethereum sea más fácil y familiar para ti.

¿Todavía no está seguro de la importancia de ethers.js? Aquí tiene una rápida analogía.

Piensa en ethers.js como una vieja tarjeta de biblioteca. ¿Recuerdas que esas tarjetas tenían catálogos, lo que te permitía encontrar el libro correcto ubicando el pasillo y luego el número de estante? Esto es lo que ethers.js pretende hacer. Simplifica y organiza las enormes capacidades de Ethereum, permitiendo a los desarrolladores encontrar exactamente lo que necesitan.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Todas las versiones de Ethers.js explicadas

Con el paso de los años, han aparecido varias versiones de Ethers.js, cada una introduciendo una nueva característica o una corrección de errores. Además, el versionado sigue la semántica estándar, como v1.2.3, donde el primer número significa el principal y los números segundo y tercero denotan menor y parche. Por ahora, solo consideraremos las actualizaciones de la versión principal: cambios que podrían no ser compatibles hacia atrás.

  1. Versión 1.x (Legacy): Esta fue la versión inicial, seguida de características relacionadas con la firma de transacciones, gestión de billetera y más.
  2. Versión 2.x (Cartera de Ether): Enfocado en utilidades y características de la cartera, incluido el almacenamiento seguro de claves privadas.
  3. Versión 3.x (proveedor de Ethers): Se introdujeron abstracciones para conectarse a nodos de Ethereum. Se acomodaron diferentes tipos de jugadores, incluidos Infura, WebSockets y más.
  4. Versión 4.x (contrato Ethers): Las propiedades lideradas por contratos inteligentes se ampliaron, con más utilidades para codificar y decodificar datos, filtros de eventos y más.
  5. Versión 5.x: Ofrece una arquitectura modular, soporte mejorado para ENS, manejo de errores completo y más.
  6. Versión 6.x: Inclusión de características ES6, introducción de BigInt, accesibilidad de sobrecarga y más.


Arquitectura y componentes de Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Puede encontrar más detalles sobre cada versión al ver Ethers.js’documentación original.

“Ethers.js brilla con una interoperabilidad superior de blockchain, soporte nativo de TypeScript y herramientas avanzadas de depuración. Es una biblioteca ágil y eficiente que se integra perfectamente en marcos populares como React, Vue, Angular, etc.”

Redbelly Intern, Builder: X

Empezando con ethers.js

Antes de que planees aprovechar el potencial de ethers.js, es necesario saber en qué etapa del desarrollo de DApp o contratos inteligentes se invoca. Aquí tienes un resumen rápido para aquellos que necesitan conocer y comprender estos elementos desde cero.

Web3.js es fácil de usar para principiantes y más conciso que ethers.js.

Por otro lado, Ethers.js ofrece más opciones y es nuevo; es un poco más complejo que Web3.js.”

degenBRo, desarrollador de blockchain y Fundador de Solidity Finance: Como le contó a BeInCrypto

Para empezar, primero necesitas abrir la computadora y configurar el entorno de desarrollo. Esto incluye Node.js y el Entorno de Desarrollo Integrado. Ten en cuenta que JavaScript suele ejecutarse en el navegador, pero con Node.js, lo mismo se puede ejecutar en la computadora. Es el entorno de ejecución de Node.js el que instala bibliotecas de JavaScript como ethers.js.

En cuanto a IDE, que un desarrollador de software necesita probar, puedes considerar VS Code, Sublime Text, o cualquier otra cosa.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Instalación de soporte ethers.js

El siguiente paso es instalar Ethers, la biblioteca que aloja ethers.js.

npm install ethers

Entonces, necesitas usar Ethers para conectarte al cartera Ethereum, ya que la interacción con la cadena de bloques requerirá este paso para validar las credenciales. Puedes usar la biblioteca Ethers instalada para esto. Aquí tienes el comando de muestra:

/Related

MÁS ARTÍCULOS

Ethereum ETF Explained: What It Is and How It Works

14 mins 15 de marzo de 2024 hace 3 días

Cómo recibir pagos en Bitcoin (BTC): Todo lo que necesitas saber

25 mins 15 de marzo de 2024 hace 2 días

const { ethers } = require(‘ethers’);

// Conectar al MetaMaskcartera

const provider = new ethers.providers.Web3Provider(window.ethereum);

Una vez hecho, puedes usar el IDE para escribir el código de solidez y crear contratos inteligentes para DApps. Ethers.js se utilizará para implementar lo mismo. Incluso puedes probar la DApp o el contrato localmente, utilizando entornos como Trufa y Hardhat. Luego, despliegas los contratos en la red de Ethereum, para lo cual se necesita ethers.js.

const contrato = new ethers.ContractFactory(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Para los no iniciados, Abi, Código de bytes y Firmante son términos necesarios para el desarrollo sin problemas de contratos inteligentes. Abi o la interfaz binaria de la aplicación es más como la etiqueta que ayuda a la red a reconocer sus contratos inteligentes. El código de bytes es la versión compilada o más bien lista para la red del contrato inteligente y el firmante es la entidad que genera la firma.

Ethers.js para el front-end

Una vez que se implementa el contrato inteligente, debe crear el front-end o la interfaz de usuario de la DApp. Para ello, puedes utilizar Angular o React. Incluso puede integrar Ethers.js dentro del front-end para asegurarse de que pueda interactuar con los contratos inteligentes de Ethereum. Aquí está el código de muestra para el mismo:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contrato = nuevo ethers.Contract(contractAddress, contractABI, provider.getSigner());

Después de esto, necesitas probar la DApp en una red de prueba, como Rinkeby o Ropsten. Una vez que estés satisfecho, puedes lanzar la DApp en la mainnet. Observa cuántas veces a lo largo del proceso necesitas interactuar con Ether o ethers.js.

Características principales

Ethers.js se presenta como una biblioteca Ethereum completa. Aquí hay algunas de las ofertas exclusivas que pueden facilitar la vida de los desarrolladores:

Proveedores

Los proveedores de Ethers.js actúan como puentes entre la red Ethereum y la DApp en la que estás trabajando. Esto implica simplificar la consulta de datos de la cadena de bloques y también ayuda a difundir transacciones. Infura es uno de los proveedores que utiliza Ethers.js.

Aquí está el código de muestra para lo mismo:

const { ethers } = require('ethers');

// Conéctese usando Infura

const proveedor = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Compruebe el número de bloque actual

provider.getBlockNumber().then((blockNumber) => {

console.log(“Número de bloque actual:”, blockNumber);

});

Billeteras

Ethers.js te permite gestionar carteras, lo que te permite crear nuevas cuentas, importar cuentas existentes, gestionar de forma segura claves privadas para firmar transacciones y mucho más.

Contratos

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Este componente de la existencia de Ethers.js admite la instanciación de objetos. Esto facilita llamar funciones de contrato específicas, más parecido a los métodos nativos de Javascript.


Ethers.js y la interacción con contratos inteligentes: BeInCrypto

Integración ENS

Ethers.js puede resolver nombres ENS a sus direcciones de Ethereum y viceversa. Esta función reduce el riesgo de errores.

Aquí hay un fragmento de código de ejemplo para esto:

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} se resuelve a ${address}`);

});

Además de las características mencionadas, Ethers.js también cuenta con los siguientes aspectos o características, ayudando a los desarrolladores con acceso directo específico de Ethereum:

  1. Firmantes
  2. Utilidades
  3. Escuchas de eventos y filtros (destinados a activar respuestas en tiempo real a acciones de blockchain)
  4. Transacciones
  5. Soporte de llamadas múltiples
  6. Soporte de TypeScript (destinado a mejorar la fiabilidad del código y la experiencia general del desarrollador)

Un puñado de ventajas de usar Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Cómo las publicaciones de criptomonedas pueden aprovechar Ethers.js

Publicaciones de medios como BeInCrypto pueden aprovechar Ethers.js para crear herramientas web3 avanzadas y útiles desde cero. De esta manera, se vuelve posible utilizar características impulsadas por la blockchain o, más bien, por Ethereum, para mejorar la usabilidad. Aquí están las opciones que uno puede considerar:

Fuentes de datos

Las funciones de Ethers.js se pueden utilizar para integrar feeds de datos criptográficos en tiempo real, como estadísticas de red, tasas de gas, y más, para mantener los artículos y recursos siempre actualizados. Aquí tienes un código de muestra para obtener el número de bloque más reciente, digamos para Bitcoin, y así hacer un seguimiento del halving en tiempo real.

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’Error: texto de origen no válido

provider.getBlockNumber().then((blockNumber) => {

console.log("Número de bloque actual:", blockNumber);// Integra estos datos en la plataforma de tu publicación para un feed de datos en tiempo real

});

Contenido interactivo

Las publicaciones pueden crear fragmentos de contenido interactivo, lo que permite a los usuarios interactuar directamente con contratos inteligentes, participar en encuestas o incluso jugar pequeños juegos si es necesario.

Aquí hay un fragmento de código de muestra para recuperar un saludo específico del hito de un contrato inteligente:

const { ethers } = require('ethers');

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

"function getGreeting() view returns (string)"

];

const contrato = new ethers.Contract(contractAddress, contractABI, proveedor);

función asincrónica displayGreeting() {

const saludo = await contrato.getSaludo();document.getElementById(‘saludo’).innerText = saludo;

}

Abre una cuenta en KuCoin y obtén un bono garantizado de hasta 700 USDT.

  1. ¡Comienza tu viaje de trading de criptomonedas con KuCoin y obtén una ventaja inicial!
  2. ¡Opera con confianza en KuCoin! ¡Nuestra plataforma prioriza tu seguridad, ofreciendo protección de primer nivel para tus activos digitales.
  3. ¡Explora el vasto mundo de las criptomonedas con KuCoin!

¡Regístrate ahora!

Un ejemplo del mundo real de cómo se implementa Ethers.js:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Faprende%2Fethers-js-explained%2F

Publicación descentralizada

Las publicaciones de medios de comunicación también pueden considerar la publicación descentralizada, donde se publica un fragmento de un artículo en la red de blockchain. Esto puede ayudar con la resistencia a la censura e incluso la integridad del contenido.

Aquí hay un código de ejemplo donde el hash del artículo se almacena en línea como prueba de publicación:

const { ethers } = require(‘ethers’);

const wallet = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, proveedor);

const contentHash = ethers.utils.id("Article content here");

const tx = await wallet.sendTransaction({

a: ‘0xDirecciónDelContratoDeAlmacenamiento’, datos: contentHash // Suponiendo que el contrato acepta y almacena estos datos

});

console.log("Hash de transacción (prueba de publicación):", tx.hash);

Estos son solo algunos ejemplos de casos de uso para publicaciones de medios. Pero hay otros sectores que pueden aprovechar el poder de ethers.js. Estos incluyen:

  1. Desarrolladores de blockchain (esperado)
  2. Analistas financieros trabajando con DeFimétricas
  3. Desarrolladores de juegos
  4. Creadores de contenido
  5. Gerentes de cadena de suministro

Y más.

Aplicaciones del mundo real de Ethers.js

Además de ser útil en DeFi, proyectos NFT y de juegos, hay algunos DApps existentes que admiten el uso de Ethers.js. Estos incluyen lo siguiente:

  1. Uniswap: Ether.js interactúa con los contratos inteligentes inherentes de Uniswap para ejecutar operaciones, añadir liquidez e incluso consultar estadísticas de piscinas. En este caso, los desarrolladores de DApp planean construir herramientas que interactúen con Uniswap, como bots de trading, herramientas de gestión de carteras y más.
  2. Aave: Los desarrolladores de DApp y otras partes interesadas pueden aprovechar las funcionalidades de Ether.js para interactuar con contratos inteligentes específicos de Aave. De esta manera, pueden preparar el front end para pedir prestados activos, depositar colaterales y hacer más.

Desmitificando algunos mitos de Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Consideraciones de seguridad

Usar Ethers.js viene con un conjunto bastante extenso de seguridadconsideraciones. Aquí hay algunas para seguir:

  1. Es recomendable no codificar en duro claves privadas dentro del código base de su aplicación.
  2. Cada interacción con contratos inteligentes debe ir precedida de pruebas exhaustivas y una auditoría extensa de los contratos.
  3. Siempre que interactúes con contratos inteligentes, utiliza patrones seguros como "llamar" para tareas de solo lectura.
  4. Para optimizar el uso de ethers.js, podría considerar la agrupación de solicitudes. Aquí es donde puede agrupar, digamos, solicitudes de solo lectura para minimizar la cantidad de llamadas a la red. No hace falta decir que estas técnicas de optimización pueden hacer que la aplicación sea altamente escalable y rentable.

Aquí tienes un ejemplo de cómo funciona:

// Pseudocódigo para agrupar llamadas de contrato con Ethers.js (ejemplo conceptual)

const contrato = new ethers.Contract(dirección, abi, proveedor);

const [valor1, valor2, valor3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: una herramienta versátil

Patrocinado

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Como se demuestra en esta guía, Ethers.js es una herramienta versátil. Si bien hemos echado un vistazo rápido a sus capacidades, la mejor manera de entender completamente Ethers.js es adentrarse más en el mundo de los contratos inteligentes, JavaScript, IDE, DApps y más. Además, unirse a las comunidades de Ethereum y Ethers también puede ser útil.

Preguntas frecuentes

¿Cómo pueden los desarrolladores usar los eventos de Ethers.js?

¿Cuáles son las utilidades clave ofrecidas por Ethers.js?

¿Cuál es la conexión entre Ethers.js y Web3.js?

Descargo de responsabilidad:

  1. Este artículo ha sido reimpreso de [ beincrypto], Todos los derechos de autor pertenecen al autor original [Ananda Banerjee]. Si hay objeciones a esta reimpresión, por favor contacte al Aprender sobre Gateequipo y lo resolverán rápidamente.
  2. Descargo de responsabilidad por responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen asesoramiento de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

¿Qué es Ethers.js? Un análisis profundo de la biblioteca de JavaScript de Ethereum

Principiante3/18/2024, 8:47:39 AM
Ethereum es un protocolo de cadena de bloques conocido por su conjunto de herramientas, contratos inteligentes y ecosistema alineado con el código, que depende en gran medida de ethers.js (una biblioteca de Javascript) para proporcionar la potencia necesaria para su enfoque centrado en el desarrollador.

Si estás considerando Ether (ETH) sobre otros jugadores de criptomonedas, deberías tomarte un momento para entender Ethereum desde una perspectiva más técnica. Un protocolo de blockchain conocido por su conjunto de herramientas, contratos inteligentes y ecosistema alineado con el código, Ethereum depende en gran medida de ethers.js, una biblioteca de Javascript, para darle a su enfoque centrado en el desarrollador la potencia requerida.

Si bien ethers.js no es la única biblioteca JavaScript nativa de Ethereum, es la mejor opción para DApps más pequeñas. En esta guía, profundizamos en los aspectos de ethers.js, ayudándote a entender este concepto técnico.

En esta guía:

  1. Desempaquetando ethers.js
  2. ¿Por qué es importante ethers.js?
  3. Todas las versiones de Ethers.js explicadas
  4. Empezando con ethers.js
  5. Características principales
  6. Cómo las publicaciones de criptomonedas pueden aprovechar Ethers.js
  7. Aplicaciones del mundo real de Ethers.js
  8. Consideraciones de seguridad
  9. Ethers.js: una herramienta versátil
  10. Preguntas frecuentes

Desempaquetando ethers.js

ethers.js es una biblioteca de JavaScript, un conjunto de código preescrito que automatiza varias funciones. El uso de bibliotecas de JavaScript para el desarrollo puede minimizar el esfuerzo de escritura de código. El proceso se vuelve más amigable para el usuario y, para los desarrolladores de DApp, estas bibliotecas ayudan a ofrecer funcionalidades básicas específicas de la cadena de bloques como paquetes.

Ethers.js y el ciclo de desarrollo: BeInCrypto

Aquí está el GitHubrepositoriopara la biblioteca.

¿Qué son las bibliotecas de JavaScript?

Antes de adentrarnos más en ethers.js, echemos un vistazo más de cerca a las bibliotecas de JavaScript. Estas bibliotecas son conjuntos preescritos de código JavaScript que pueden automatizar tareas comunes específicas. El uso de bibliotecas como ethers.js puede acelerar el proceso de creación de DApps e incluso agilizar otras interacciones específicas de la cadena de bloques.

¿Por qué necesitamos bibliotecas de JavaScript en Ethereum?

Ethereum ha evolucionado hacia una plataforma descentralizada de desarrollo de software. From contratos inteligentesaDeDesde las aplicaciones financieras hasta las DApps, la codificación es fundamental para el ecosistema de Ethereum. Es precisamente por eso que existen bibliotecas de JavaScript adaptadas a Ethereum como ethers.js. Utilizando estas bibliotecas, los desarrolladores pueden conectarse a la red, implementar e interactuar con contratos inteligentes, y gestionar fácilmente cadena de bloquesdatos.

¿Sabías? Ethers.js no es la única biblioteca de JavaScript de Ethereum conocida. Otro prominente es Web3.js, fundado por la Fundación Ethereum. Web3.js es conocido por su amplia colección de documentación y está destinado a las DApps más complejas.

¿Por qué es importante ethers.js?

Como se mencionó anteriormente, ethers.js está dirigido a desarrolladores que interactúan con la cadena de bloques de Ethereum. En cuanto a la importancia, esta biblioteca desarrollada por Richard Moore, comercializada bajo el nombre de "Ethers", es útil para los siguientes trabajos:

  1. Simplificando varias transacciones de Ethereum
  2. Ofrece acceso a una documentación y recursos completos
  3. Facilitando el desarrollo de DApp


El ecosistema Ethers.js y los roles que puede asumir: BeInCrypto

Aquí hay un ejemplo rápido del fragmento de código utilizado para obtener el saldo actual de una cuenta de Ethereum. Leamos el código primero y entendamos cómo ethers.js hace la vida más fácil:

const { ethers } = require(‘ethers’);

// Conéctese a la red Ethereum

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’Error: No se puede traducir el texto proporcionado.

// Especifique la dirección de la cuenta

const accountAddress = ‘0xABC123…’;

// Obtener y mostrar el saldo

provider.getBalance(accountAddress).then((balance) => {

// Convertir el saldo de Wei a Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Saldo: ${balanceInEther} ETH`);

});

En este ejemplo, puedes ver claramente cómo el comando — ethers.providers.JsonRpcProvider — invoca un punto final de Infura, y getBalance obtiene el saldo. No necesitas tratar directamente con el JSON RPC de Ethereum o la Llamada de Procedimiento Remoto. En este caso, puedes pensar en ethers.js como un traductor que hace que Ethereum sea más fácil y familiar para ti.

¿Todavía no está seguro de la importancia de ethers.js? Aquí tiene una rápida analogía.

Piensa en ethers.js como una vieja tarjeta de biblioteca. ¿Recuerdas que esas tarjetas tenían catálogos, lo que te permitía encontrar el libro correcto ubicando el pasillo y luego el número de estante? Esto es lo que ethers.js pretende hacer. Simplifica y organiza las enormes capacidades de Ethereum, permitiendo a los desarrolladores encontrar exactamente lo que necesitan.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Todas las versiones de Ethers.js explicadas

Con el paso de los años, han aparecido varias versiones de Ethers.js, cada una introduciendo una nueva característica o una corrección de errores. Además, el versionado sigue la semántica estándar, como v1.2.3, donde el primer número significa el principal y los números segundo y tercero denotan menor y parche. Por ahora, solo consideraremos las actualizaciones de la versión principal: cambios que podrían no ser compatibles hacia atrás.

  1. Versión 1.x (Legacy): Esta fue la versión inicial, seguida de características relacionadas con la firma de transacciones, gestión de billetera y más.
  2. Versión 2.x (Cartera de Ether): Enfocado en utilidades y características de la cartera, incluido el almacenamiento seguro de claves privadas.
  3. Versión 3.x (proveedor de Ethers): Se introdujeron abstracciones para conectarse a nodos de Ethereum. Se acomodaron diferentes tipos de jugadores, incluidos Infura, WebSockets y más.
  4. Versión 4.x (contrato Ethers): Las propiedades lideradas por contratos inteligentes se ampliaron, con más utilidades para codificar y decodificar datos, filtros de eventos y más.
  5. Versión 5.x: Ofrece una arquitectura modular, soporte mejorado para ENS, manejo de errores completo y más.
  6. Versión 6.x: Inclusión de características ES6, introducción de BigInt, accesibilidad de sobrecarga y más.


Arquitectura y componentes de Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Puede encontrar más detalles sobre cada versión al ver Ethers.js’documentación original.

“Ethers.js brilla con una interoperabilidad superior de blockchain, soporte nativo de TypeScript y herramientas avanzadas de depuración. Es una biblioteca ágil y eficiente que se integra perfectamente en marcos populares como React, Vue, Angular, etc.”

Redbelly Intern, Builder: X

Empezando con ethers.js

Antes de que planees aprovechar el potencial de ethers.js, es necesario saber en qué etapa del desarrollo de DApp o contratos inteligentes se invoca. Aquí tienes un resumen rápido para aquellos que necesitan conocer y comprender estos elementos desde cero.

Web3.js es fácil de usar para principiantes y más conciso que ethers.js.

Por otro lado, Ethers.js ofrece más opciones y es nuevo; es un poco más complejo que Web3.js.”

degenBRo, desarrollador de blockchain y Fundador de Solidity Finance: Como le contó a BeInCrypto

Para empezar, primero necesitas abrir la computadora y configurar el entorno de desarrollo. Esto incluye Node.js y el Entorno de Desarrollo Integrado. Ten en cuenta que JavaScript suele ejecutarse en el navegador, pero con Node.js, lo mismo se puede ejecutar en la computadora. Es el entorno de ejecución de Node.js el que instala bibliotecas de JavaScript como ethers.js.

En cuanto a IDE, que un desarrollador de software necesita probar, puedes considerar VS Code, Sublime Text, o cualquier otra cosa.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Instalación de soporte ethers.js

El siguiente paso es instalar Ethers, la biblioteca que aloja ethers.js.

npm install ethers

Entonces, necesitas usar Ethers para conectarte al cartera Ethereum, ya que la interacción con la cadena de bloques requerirá este paso para validar las credenciales. Puedes usar la biblioteca Ethers instalada para esto. Aquí tienes el comando de muestra:

/Related

MÁS ARTÍCULOS

Ethereum ETF Explained: What It Is and How It Works

14 mins 15 de marzo de 2024 hace 3 días

Cómo recibir pagos en Bitcoin (BTC): Todo lo que necesitas saber

25 mins 15 de marzo de 2024 hace 2 días

const { ethers } = require(‘ethers’);

// Conectar al MetaMaskcartera

const provider = new ethers.providers.Web3Provider(window.ethereum);

Una vez hecho, puedes usar el IDE para escribir el código de solidez y crear contratos inteligentes para DApps. Ethers.js se utilizará para implementar lo mismo. Incluso puedes probar la DApp o el contrato localmente, utilizando entornos como Trufa y Hardhat. Luego, despliegas los contratos en la red de Ethereum, para lo cual se necesita ethers.js.

const contrato = new ethers.ContractFactory(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Para los no iniciados, Abi, Código de bytes y Firmante son términos necesarios para el desarrollo sin problemas de contratos inteligentes. Abi o la interfaz binaria de la aplicación es más como la etiqueta que ayuda a la red a reconocer sus contratos inteligentes. El código de bytes es la versión compilada o más bien lista para la red del contrato inteligente y el firmante es la entidad que genera la firma.

Ethers.js para el front-end

Una vez que se implementa el contrato inteligente, debe crear el front-end o la interfaz de usuario de la DApp. Para ello, puedes utilizar Angular o React. Incluso puede integrar Ethers.js dentro del front-end para asegurarse de que pueda interactuar con los contratos inteligentes de Ethereum. Aquí está el código de muestra para el mismo:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contrato = nuevo ethers.Contract(contractAddress, contractABI, provider.getSigner());

Después de esto, necesitas probar la DApp en una red de prueba, como Rinkeby o Ropsten. Una vez que estés satisfecho, puedes lanzar la DApp en la mainnet. Observa cuántas veces a lo largo del proceso necesitas interactuar con Ether o ethers.js.

Características principales

Ethers.js se presenta como una biblioteca Ethereum completa. Aquí hay algunas de las ofertas exclusivas que pueden facilitar la vida de los desarrolladores:

Proveedores

Los proveedores de Ethers.js actúan como puentes entre la red Ethereum y la DApp en la que estás trabajando. Esto implica simplificar la consulta de datos de la cadena de bloques y también ayuda a difundir transacciones. Infura es uno de los proveedores que utiliza Ethers.js.

Aquí está el código de muestra para lo mismo:

const { ethers } = require('ethers');

// Conéctese usando Infura

const proveedor = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Compruebe el número de bloque actual

provider.getBlockNumber().then((blockNumber) => {

console.log(“Número de bloque actual:”, blockNumber);

});

Billeteras

Ethers.js te permite gestionar carteras, lo que te permite crear nuevas cuentas, importar cuentas existentes, gestionar de forma segura claves privadas para firmar transacciones y mucho más.

Contratos

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Este componente de la existencia de Ethers.js admite la instanciación de objetos. Esto facilita llamar funciones de contrato específicas, más parecido a los métodos nativos de Javascript.


Ethers.js y la interacción con contratos inteligentes: BeInCrypto

Integración ENS

Ethers.js puede resolver nombres ENS a sus direcciones de Ethereum y viceversa. Esta función reduce el riesgo de errores.

Aquí hay un fragmento de código de ejemplo para esto:

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} se resuelve a ${address}`);

});

Además de las características mencionadas, Ethers.js también cuenta con los siguientes aspectos o características, ayudando a los desarrolladores con acceso directo específico de Ethereum:

  1. Firmantes
  2. Utilidades
  3. Escuchas de eventos y filtros (destinados a activar respuestas en tiempo real a acciones de blockchain)
  4. Transacciones
  5. Soporte de llamadas múltiples
  6. Soporte de TypeScript (destinado a mejorar la fiabilidad del código y la experiencia general del desarrollador)

Un puñado de ventajas de usar Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Cómo las publicaciones de criptomonedas pueden aprovechar Ethers.js

Publicaciones de medios como BeInCrypto pueden aprovechar Ethers.js para crear herramientas web3 avanzadas y útiles desde cero. De esta manera, se vuelve posible utilizar características impulsadas por la blockchain o, más bien, por Ethereum, para mejorar la usabilidad. Aquí están las opciones que uno puede considerar:

Fuentes de datos

Las funciones de Ethers.js se pueden utilizar para integrar feeds de datos criptográficos en tiempo real, como estadísticas de red, tasas de gas, y más, para mantener los artículos y recursos siempre actualizados. Aquí tienes un código de muestra para obtener el número de bloque más reciente, digamos para Bitcoin, y así hacer un seguimiento del halving en tiempo real.

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’Error: texto de origen no válido

provider.getBlockNumber().then((blockNumber) => {

console.log("Número de bloque actual:", blockNumber);// Integra estos datos en la plataforma de tu publicación para un feed de datos en tiempo real

});

Contenido interactivo

Las publicaciones pueden crear fragmentos de contenido interactivo, lo que permite a los usuarios interactuar directamente con contratos inteligentes, participar en encuestas o incluso jugar pequeños juegos si es necesario.

Aquí hay un fragmento de código de muestra para recuperar un saludo específico del hito de un contrato inteligente:

const { ethers } = require('ethers');

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

"function getGreeting() view returns (string)"

];

const contrato = new ethers.Contract(contractAddress, contractABI, proveedor);

función asincrónica displayGreeting() {

const saludo = await contrato.getSaludo();document.getElementById(‘saludo’).innerText = saludo;

}

Abre una cuenta en KuCoin y obtén un bono garantizado de hasta 700 USDT.

  1. ¡Comienza tu viaje de trading de criptomonedas con KuCoin y obtén una ventaja inicial!
  2. ¡Opera con confianza en KuCoin! ¡Nuestra plataforma prioriza tu seguridad, ofreciendo protección de primer nivel para tus activos digitales.
  3. ¡Explora el vasto mundo de las criptomonedas con KuCoin!

¡Regístrate ahora!

Un ejemplo del mundo real de cómo se implementa Ethers.js:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Faprende%2Fethers-js-explained%2F

Publicación descentralizada

Las publicaciones de medios de comunicación también pueden considerar la publicación descentralizada, donde se publica un fragmento de un artículo en la red de blockchain. Esto puede ayudar con la resistencia a la censura e incluso la integridad del contenido.

Aquí hay un código de ejemplo donde el hash del artículo se almacena en línea como prueba de publicación:

const { ethers } = require(‘ethers’);

const wallet = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, proveedor);

const contentHash = ethers.utils.id("Article content here");

const tx = await wallet.sendTransaction({

a: ‘0xDirecciónDelContratoDeAlmacenamiento’, datos: contentHash // Suponiendo que el contrato acepta y almacena estos datos

});

console.log("Hash de transacción (prueba de publicación):", tx.hash);

Estos son solo algunos ejemplos de casos de uso para publicaciones de medios. Pero hay otros sectores que pueden aprovechar el poder de ethers.js. Estos incluyen:

  1. Desarrolladores de blockchain (esperado)
  2. Analistas financieros trabajando con DeFimétricas
  3. Desarrolladores de juegos
  4. Creadores de contenido
  5. Gerentes de cadena de suministro

Y más.

Aplicaciones del mundo real de Ethers.js

Además de ser útil en DeFi, proyectos NFT y de juegos, hay algunos DApps existentes que admiten el uso de Ethers.js. Estos incluyen lo siguiente:

  1. Uniswap: Ether.js interactúa con los contratos inteligentes inherentes de Uniswap para ejecutar operaciones, añadir liquidez e incluso consultar estadísticas de piscinas. En este caso, los desarrolladores de DApp planean construir herramientas que interactúen con Uniswap, como bots de trading, herramientas de gestión de carteras y más.
  2. Aave: Los desarrolladores de DApp y otras partes interesadas pueden aprovechar las funcionalidades de Ether.js para interactuar con contratos inteligentes específicos de Aave. De esta manera, pueden preparar el front end para pedir prestados activos, depositar colaterales y hacer más.

Desmitificando algunos mitos de Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Consideraciones de seguridad

Usar Ethers.js viene con un conjunto bastante extenso de seguridadconsideraciones. Aquí hay algunas para seguir:

  1. Es recomendable no codificar en duro claves privadas dentro del código base de su aplicación.
  2. Cada interacción con contratos inteligentes debe ir precedida de pruebas exhaustivas y una auditoría extensa de los contratos.
  3. Siempre que interactúes con contratos inteligentes, utiliza patrones seguros como "llamar" para tareas de solo lectura.
  4. Para optimizar el uso de ethers.js, podría considerar la agrupación de solicitudes. Aquí es donde puede agrupar, digamos, solicitudes de solo lectura para minimizar la cantidad de llamadas a la red. No hace falta decir que estas técnicas de optimización pueden hacer que la aplicación sea altamente escalable y rentable.

Aquí tienes un ejemplo de cómo funciona:

// Pseudocódigo para agrupar llamadas de contrato con Ethers.js (ejemplo conceptual)

const contrato = new ethers.Contract(dirección, abi, proveedor);

const [valor1, valor2, valor3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: una herramienta versátil

Patrocinado

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Como se demuestra en esta guía, Ethers.js es una herramienta versátil. Si bien hemos echado un vistazo rápido a sus capacidades, la mejor manera de entender completamente Ethers.js es adentrarse más en el mundo de los contratos inteligentes, JavaScript, IDE, DApps y más. Además, unirse a las comunidades de Ethereum y Ethers también puede ser útil.

Preguntas frecuentes

¿Cómo pueden los desarrolladores usar los eventos de Ethers.js?

¿Cuáles son las utilidades clave ofrecidas por Ethers.js?

¿Cuál es la conexión entre Ethers.js y Web3.js?

Descargo de responsabilidad:

  1. Este artículo ha sido reimpreso de [ beincrypto], Todos los derechos de autor pertenecen al autor original [Ananda Banerjee]. Si hay objeciones a esta reimpresión, por favor contacte al Aprender sobre Gateequipo y lo resolverán rápidamente.
  2. Descargo de responsabilidad por responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen asesoramiento de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!