Publicación de la versión 2.x de Solana Web3.js, optimizando el tamaño del código en un 30%

robot
Generación de resúmenes en curso

Solana Web3.js versión 2.x: Actualización importante de una biblioteca JavaScript rica en funciones

Solana Web3.js, como una biblioteca de JavaScript rica en funciones, lanzó oficialmente la versión 2.x este noviembre. En comparación con la versión 1.x, la nueva versión ha tenido cambios significativos en su estructura y forma de uso. Este artículo ofrecerá un resumen de estos cambios principales para ayudar a los desarrolladores a prepararse para la migración futura.

Serie para principiantes de Web3: Actualiza ahora @solana/web3.js 2.x para habilitar la programación funcional

Comparación de versiones

La biblioteca Web3.js versión 1.x es relativamente simple y directa de usar. Solo tiene un paquete principal: @solana/web3.js, donde se concentran todas las funcionalidades. Utiliza un diseño basado en clases y encapsula una gran cantidad de operaciones comunes. Por ejemplo, la clase Connection ofrece decenas de métodos que cubren casi todas las funcionalidades necesarias para los desarrolladores.

Sin embargo, este diseño también trae algunos problemas. A pesar de que las funciones que los desarrolladores realmente utilizan pueden ser solo una pequeña parte de la biblioteca, toda la biblioteca de código se descarga en el dispositivo del usuario, lo que puede provocar tiempos de carga más largos.

La versión 2.x adoptó un enfoque diferente. El equipo de desarrollo dividió la biblioteca de código original en varios módulos pequeños, como @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers y @solana/transactions, entre otros. La nueva versión también abandonó la implementación basada en clases, adoptando en su lugar un enfoque más funcional. Este método favorece la optimización del código de JavaScript durante la construcción, ya que el código no utilizado puede ser eliminado y, por lo tanto, no se descargará en el dispositivo del usuario.

Según estadísticas, el uso de una nueva versión de aplicaciones descentralizadas (DApp) puede lograr una optimización del tamaño del código de aproximadamente el 30%. Si solo se utilizan unas pocas funciones, el porcentaje de optimización puede ser aún mayor.

Otra característica importante de la versión 2.x es la ausencia de dependencias. Esta característica puede no ser significativa para muchos usuarios, pero considerando el reciente ataque a la cadena de suministro en las versiones 1.95.5 y 1.95.6 de @solana/web3.js, reducir las dependencias externas puede disminuir significativamente los riesgos de seguridad. El equipo de desarrollo de Web3.js decidió utilizar más funciones nativas y eliminar la introducción de dependencias externas y Polyfills.

Puntos de cambio importantes

conexión

En la versión 2.x, la forma de conexión se vuelve más funcional:

javascript import { createSolanaRpc } from "@solana/web3.js";

const rpc = createSolanaRpc("");

Al llamar a sendAndConfirmTransaction para enviar una transacción, el sistema iniciará automáticamente una solicitud HTTPS y establecerá una conexión WSS para suscribirse al estado de la transacción, devolviendo el hash de la transacción después de la confirmación.

par de claves

En la versión 2.x, las clases Keypair y PublicKey han sido reemplazadas por una serie de funciones. Por ejemplo, se puede usar await generateKeyPair() para generar un par de claves, en lugar de la anterior Keypair.generate(). La nueva implementación utiliza la API Web Crypto de JavaScript, aprovechando la implementación nativa de Ed25519.

enviar transacción

La versión 2.x ya no utiliza las clases Transaction y VersionedTransaction. Los métodos relacionados con el System Program también deben importarse desde otros lugares. Por ejemplo, la instrucción transfer ahora requiere llamar a la función getTransferSolInstruction en @solana-program/system.

La nueva versión ofrece la forma pipe comúnmente utilizada en la programación funcional. A continuación se muestra un ejemplo de implementación de la funcionalidad de transferencia utilizando la función pipe:

javascript import { pipe } from "@solana/web3.js";

const transaction = pipe( createTransaction({ version: 0 }), addInstruction(getTransferSolInstruction({ de: remitente, para: destinatario, cantidad: transferAmount, })), setTransactionFeePayer(sender), );

const signature = await sendAndConfirmTransaction(rpc, transaction, [senderKeypair]);

Soporte de React

Cabe destacar que el proyecto @solana/web3.js también incluye una biblioteca llamada @solana/react, que ofrece algunos Hooks de React y tiene funciones integradas como signIn.

Resumen

La publicación de la versión 2.x de @solana/web3.js demuestra el compromiso del equipo de Solana con el desarrollo y la mejora continua. La nueva versión ofrece a los desarrolladores una forma más eficiente, flexible y personalizable de interactuar con la red Solana, lo que se espera impulse la adopción y el desarrollo adicional de la plataforma.

Serie para principiantes de Web3: Actualiza ahora @solana/web3.js 2.x para habilitar la programación funcional

SOL-3.8%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 5
  • Compartir
Comentar
0/400
rekt_but_resilientvip
· 07-11 16:59
Finalmente se ha actualizado, desarrollar ha sido demasiado doloroso.
Ver originalesResponder0
ThatsNotARugPullvip
· 07-08 18:57
Finalmente he logrado adelgazar.
Ver originalesResponder0
CompoundPersonalityvip
· 07-08 18:57
¡Vaya, finalmente no tengo que escribir tanto código para minar!
Ver originalesResponder0
BtcDailyResearchervip
· 07-08 18:45
Confiable, modular es lo correcto.
Ver originalesResponder0
gas_fee_traumavip
· 07-08 18:30
Solana se ha vuelto más fuerte otra vez
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)