NOUVEAU : Helius acquiert Light Protocol
comment créer une transaction Solana
Blog/Développement

Solana Dev 101 - Comment créer une transaction Solana

Ingénieur en expérience développeurOwen Venter sur XOwen Venter sur LinkedIn
5 min de lecture

Introduction

GM ! Dans cet article, nous allons voir comment créer et envoyer une transaction avec JavaScript sur Solana dans le cadre de la série Solana Dev 101. Ce guide s'adresse aux débutants, alors ne vous inquiétez pas si vous découvrez Solana ou la technologie blockchain.

Si vous avez des questions, n'hésitez pas à rejoindre le Discord de Helius ou à mentionner Helius sur X pour obtenir de l'aide.‍

Prérequis

Pour commencer, Node.js et npm doivent être installés sur votre machine. Si nécessaire, vous pouvez les télécharger ici.

Nous devons également installer la bibliothèque Solana web3.js, une suite d'outils et de bibliothèques JavaScript conçue pour interagir avec la blockchain Solana.

Vous pouvez l'installer avec npm en exécutant le code suivant dans votre terminal :

Code
npm install @solana/web3.js

‍Étape 1 : configurer la connexion

Commençons par créer une connexion au cluster Solana. Nous utiliserons Helius pour nous connecter à un cluster devnet. Vous devrez créer un compte Helius et une clé API, ce que vous pouvez faire gratuitement depuis votre tableau de bord.

Code
const solanaWeb3 = require('@solana/web3.js');
const connection = new solanaWeb3.Connection('<https://rpc-devnet.helius.xyz/?api-key=><api_key>','confirmed',);

Étape 2 : créer un nouveau portefeuille

Nous avons maintenant besoin d'un portefeuille depuis lequel envoyer des transactions. Un portefeuille est simplement une paire de clés publique et privée, facile à créer. La clé publique correspond à l'adresse de votre portefeuille, tandis que la clé privée sert à signer les transactions. Vous pouvez en apprendre davantage sur la cryptographie à clé publique ici.

Nous pouvons créer un nouveau portefeuille dans le système de fichiers. La paire de clés de ce portefeuille sera stockée sur votre machine locale. Si vous avez déjà installé les outils Solana CLI, vous pouvez exécuter la commande suivante dans le terminal pour obtenir un nouveau portefeuille.

Code
solana-keygen new

Dans le cas contraire, vous devrez installer la suite d'outils Solana CLI. Pour savoir comment procéder, consultez la documentation Solana ici : https://docs.solana.com/cli/install-solana-cli-tools

Nous pouvons ensuite importer ce portefeuille dans notre code :

Code
const sender=solanaWeb3.Keypair.fromSecretKey(new Uint8Array([61,23,....,60,49]));

Vous pouvez copier votre clé secrète depuis le portefeuille JSON du système de fichiers créé à l'étape précédente et l'utiliser.

Étape 3 : approvisionner le portefeuille

Pour envoyer des transactions, nous devons disposer de SOL dans notre portefeuille. Chaque transaction sur Solana nécessite le paiement de frais minimes pour être traitée.

À des fins de test, nous utiliserons notre robinet Devnet pour approvisionner notre portefeuille. Utilisez le robinet Helius dans votre tableau de bord ou suivez ces instructions pour demander des SOL Devnet depuis la CLI. Saisissez ensuite la clé publique du portefeuille que vous venez de créer et demandez des SOL.

Étape 4 : créer une transaction

Maintenant que notre portefeuille est approvisionné, nous pouvons créer une transaction. Dans cet exemple, nous allons créer la transaction et y ajouter l'instruction de transfert. Nous l'utiliserons pour transférer 0,1 SOL vers le portefeuille de notre choix.

Une transaction peut effectuer de nombreuses opérations selon l'instruction fournie. Dans cet exemple, nous enverrons des SOL à l'aide de l'instruction de transfert.

Code
// Set up the address to send to
const receiver = new solanaWeb3.PublicKey("86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY");

// Create a transaction    
const transaction = new solanaWeb3.Transaction().add(solanaWeb3.SystemProgram.transfer({
fromPubkey: sender.publicKey,toPubkey: receiver,
lamports: solanaWeb3.LAMPORTS_PER_SOL * 0.01,}),);

‍Dans le code ci-dessus, nous créons un nouvel objet PublicKey avec le portefeuille de notre choix. L'objet PublicKey, et non la simple adresse, est nécessaire pour créer une transaction. L'instruction de transfert accepte également trois paramètres :

  1. fromPubkey : la clé publique du compte de l'expéditeur.
  2. toPubkey : la clé publique du compte du destinataire.
  3. lamports : le nombre de lamports (la plus petite unité monétaire de Solana) à transférer. solanaWeb3.LAMPORTS_PER_SOL correspond à 1 SOL.

Étape 5 : signer et envoyer la transaction

Une fois la transaction créée, nous devons la signer et l'envoyer au réseau.

La bibliothèque Solana Web3 fournit une fonction appelée sendAndConfirmTransaction() qui permet d'effectuer facilement toutes ces opérations.

La méthode sendAndConfirmTransaction envoie la transaction au réseau, attend sa confirmation et renvoie sa signature.

Code
// Sign and confirm the transaction      
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);      
console.log('Transaction: ', signature);

La méthode sendAndConfrimTransaction accepte trois paramètres :

  1. connection : il s'agit de l'objet de connexion au réseau Solana que nous avons créé à l'aide d'une connexion RPC Helius. Ce paramètre définit la connexion par laquelle la transaction sera envoyée et confirmée.
  2. transaction : il s'agit de l'objet de transaction que nous venons de créer et qui contient l'instruction de transfert.
  3. [sender] : il s'agit d'un tableau contenant tous les comptes signataires de la transaction. Dans ce cas, il contient un seul élément, sender, qui représente le compte signant et autorisant la transaction.

Et voilà !

Nous venons de créer et d'envoyer une transaction sur Solana avec JavaScript.

Vous pouvez utiliser node sendTransaction.js pour exécuter le script.

Conclusion

Créer et envoyer une transaction sur Solana avec JavaScript est un processus simple grâce à la bibliothèque JavaScript complète de Solana. Quelques lignes de code suffisent pour interagir avec la blockchain Solana, ce qui ouvre tout un monde de possibilités.

Cet exemple élémentaire illustre la structure et le déroulement de la création et de l'envoi d'une transaction. Les applications réelles peuvent impliquer des transactions plus complexes et nécessiter des mesures de sécurité supplémentaires.

J'espère que ce guide vous a été utile. Bon développement !

Vous trouverez le code complet ici.

Ressources

‍

Abonnez-vous à Helius

Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication