Solana Web3.js version 2.x : mise à niveau majeure d'une bibliothèque JavaScript riche en fonctionnalités
La bibliothèque JavaScript riche en fonctionnalités, Solana Web3.js, a officiellement publié la version 2.x en novembre de cette année. Par rapport à la version 1.x, la nouvelle version présente des changements significatifs dans sa structure et son utilisation. Cet article résumera ces principaux changements pour aider les développeurs à se préparer pour les migrations futures.
Comparaison des versions
La bibliothèque Web3.js version 1.x est relativement simple et directe à utiliser. Elle ne comporte qu'un seul package principal : @solana/web3.js, toutes les fonctionnalités étant regroupées dans ce package. Elle adopte un design orienté objet, encapsulant de nombreuses opérations courantes. Par exemple, la classe Connection offre des dizaines de méthodes, couvrant presque toutes les fonctionnalités nécessaires aux développeurs.
Cependant, ce design entraîne également certains problèmes. Bien que les fonctionnalités réellement utilisées par les développeurs ne soient qu'une petite partie de la bibliothèque, l'ensemble du code sera téléchargé sur l'appareil de l'utilisateur, ce qui peut entraîner un temps de chargement prolongé.
La version 2.x adopte une approche différente. L'équipe de développement a divisé l'ancien code source en plusieurs petits modules, tels que @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers et @solana/transactions. La nouvelle version abandonne également l'implémentation basée sur des classes, au profit d'une approche basée davantage sur des fonctions individuelles. Cette méthode favorise l'optimisation lors de la construction du code JavaScript, permettant de supprimer le code inutilisé afin qu'il ne soit pas téléchargé sur les appareils des utilisateurs.
Selon les statistiques, l'utilisation de la nouvelle version des applications décentralisées (DApp) permet généralement d'obtenir environ 30 % d'optimisation de la taille du code. Si seules quelques fonctionnalités sont utilisées, le taux d'optimisation peut être encore plus élevé.
Une autre caractéristique importante de la version 2.x est l'absence de dépendances. Cette caractéristique peut ne pas sembler significative pour de nombreux utilisateurs, mais compte tenu des récentes attaques de la chaîne d'approvisionnement sur les versions 1.95.5 et 1.95.6 de @solana/web3.js, réduire les dépendances externes peut considérablement diminuer les risques de sécurité. L'équipe de développement de Web3.js a décidé d'utiliser davantage les fonctionnalités natives, supprimant ainsi les dépendances externes et l'introduction de Polyfills.
Points de changement importants
connexion
Dans la version 2.x, le mode de connexion devient plus fonctionnel :
javascript
import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("");
Lors de l'appel de sendAndConfirmTransaction pour envoyer une transaction, le système initie automatiquement une requête HTTPS et établit une connexion WSS pour s'abonner à l'état de la transaction, renvoyant le hash de la transaction après confirmation.
paire de clés
Dans la version 2.x, les classes Keypair et PublicKey précédentes ont été remplacées par une série de fonctions. Par exemple, vous pouvez utiliser await generateKeyPair() pour générer une paire de clés, au lieu de l'ancienne méthode Keypair.generate(). La nouvelle implémentation utilise l'API Web Crypto de JavaScript et s'appuie sur l'implémentation native d'Ed25519.
envoyer la transaction
La version 2.x n'utilise plus les classes Transaction et VersionedTransaction. Les méthodes liées au System Program doivent également être importées d'autres endroits. Par exemple, l'instruction transfer doit maintenant appeler la fonction getTransferSolInstruction dans @solana-program/system.
La nouvelle version propose une forme de pipe couramment utilisée en programmation fonctionnelle. Voici un exemple d'implémentation de la fonctionnalité de transfert en utilisant la fonction pipe :
javascript
import { pipe } from "@solana/web3.js";
Il convient de noter que le projet @solana/web3.js comprend également une bibliothèque appelée @solana/react, qui fournit quelques hooks React et intègre des fonctionnalités telles que signIn.
Résumé
La publication de la version 2.x de @solana/web3.js démontre l'engagement de l'équipe Solana envers le développement et l'amélioration continue. La nouvelle version offre aux développeurs un moyen plus efficace, flexible et personnalisable d'interagir avec le réseau Solana, ce qui devrait favoriser une adoption et un développement supplémentaires de la plateforme.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
14 J'aime
Récompense
14
5
Partager
Commentaire
0/400
rekt_but_resilient
· 07-11 16:59
Enfin une mise à jour, le développement était trop douloureux.
Voir l'originalRépondre0
ThatsNotARugPull
· 07-08 18:57
J'ai enfin réussi à perdre du poids.
Voir l'originalRépondre0
CompoundPersonality
· 07-08 18:57
Ouf, enfin je n'ai plus besoin de coder autant de lignes de code.
Publication de la version 2.x de Solana Web3.js, optimisant la taille du code avec une Goutte de 30%.
Solana Web3.js version 2.x : mise à niveau majeure d'une bibliothèque JavaScript riche en fonctionnalités
La bibliothèque JavaScript riche en fonctionnalités, Solana Web3.js, a officiellement publié la version 2.x en novembre de cette année. Par rapport à la version 1.x, la nouvelle version présente des changements significatifs dans sa structure et son utilisation. Cet article résumera ces principaux changements pour aider les développeurs à se préparer pour les migrations futures.
Comparaison des versions
La bibliothèque Web3.js version 1.x est relativement simple et directe à utiliser. Elle ne comporte qu'un seul package principal : @solana/web3.js, toutes les fonctionnalités étant regroupées dans ce package. Elle adopte un design orienté objet, encapsulant de nombreuses opérations courantes. Par exemple, la classe Connection offre des dizaines de méthodes, couvrant presque toutes les fonctionnalités nécessaires aux développeurs.
Cependant, ce design entraîne également certains problèmes. Bien que les fonctionnalités réellement utilisées par les développeurs ne soient qu'une petite partie de la bibliothèque, l'ensemble du code sera téléchargé sur l'appareil de l'utilisateur, ce qui peut entraîner un temps de chargement prolongé.
La version 2.x adopte une approche différente. L'équipe de développement a divisé l'ancien code source en plusieurs petits modules, tels que @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers et @solana/transactions. La nouvelle version abandonne également l'implémentation basée sur des classes, au profit d'une approche basée davantage sur des fonctions individuelles. Cette méthode favorise l'optimisation lors de la construction du code JavaScript, permettant de supprimer le code inutilisé afin qu'il ne soit pas téléchargé sur les appareils des utilisateurs.
Selon les statistiques, l'utilisation de la nouvelle version des applications décentralisées (DApp) permet généralement d'obtenir environ 30 % d'optimisation de la taille du code. Si seules quelques fonctionnalités sont utilisées, le taux d'optimisation peut être encore plus élevé.
Une autre caractéristique importante de la version 2.x est l'absence de dépendances. Cette caractéristique peut ne pas sembler significative pour de nombreux utilisateurs, mais compte tenu des récentes attaques de la chaîne d'approvisionnement sur les versions 1.95.5 et 1.95.6 de @solana/web3.js, réduire les dépendances externes peut considérablement diminuer les risques de sécurité. L'équipe de développement de Web3.js a décidé d'utiliser davantage les fonctionnalités natives, supprimant ainsi les dépendances externes et l'introduction de Polyfills.
Points de changement importants
connexion
Dans la version 2.x, le mode de connexion devient plus fonctionnel :
javascript import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("");
Lors de l'appel de sendAndConfirmTransaction pour envoyer une transaction, le système initie automatiquement une requête HTTPS et établit une connexion WSS pour s'abonner à l'état de la transaction, renvoyant le hash de la transaction après confirmation.
paire de clés
Dans la version 2.x, les classes Keypair et PublicKey précédentes ont été remplacées par une série de fonctions. Par exemple, vous pouvez utiliser await generateKeyPair() pour générer une paire de clés, au lieu de l'ancienne méthode Keypair.generate(). La nouvelle implémentation utilise l'API Web Crypto de JavaScript et s'appuie sur l'implémentation native d'Ed25519.
envoyer la transaction
La version 2.x n'utilise plus les classes Transaction et VersionedTransaction. Les méthodes liées au System Program doivent également être importées d'autres endroits. Par exemple, l'instruction transfer doit maintenant appeler la fonction getTransferSolInstruction dans @solana-program/system.
La nouvelle version propose une forme de pipe couramment utilisée en programmation fonctionnelle. Voici un exemple d'implémentation de la fonctionnalité de transfert en utilisant la fonction pipe :
javascript import { pipe } from "@solana/web3.js";
const transaction = pipe( createTransaction({ version: 0 }), addInstruction(getTransferSolInstruction({ de : expéditeur, à: destinataire, montant: transferAmount, })), setTransactionFeePayer(sender), );
const signature = await sendAndConfirmTransaction(rpc, transaction, [senderKeypair]);
React support
Il convient de noter que le projet @solana/web3.js comprend également une bibliothèque appelée @solana/react, qui fournit quelques hooks React et intègre des fonctionnalités telles que signIn.
Résumé
La publication de la version 2.x de @solana/web3.js démontre l'engagement de l'équipe Solana envers le développement et l'amélioration continue. La nouvelle version offre aux développeurs un moyen plus efficace, flexible et personnalisable d'interagir avec le réseau Solana, ce qui devrait favoriser une adoption et un développement supplémentaires de la plateforme.