
Solana Dev 101 - Comment créer une transaction Solana
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 :
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.
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.
solana-keygen newDans 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
Ne partagez jamais votre clé privée avec qui que ce soit.
Nous pouvons ensuite importer ce portefeuille dans notre 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.
// 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 :
fromPubkey: la clé publique du compte de l'expéditeur.toPubkey: la clé publique du compte du destinataire.lamports: le nombre de lamports (la plus petite unité monétaire de Solana) à transférer.solanaWeb3.LAMPORTS_PER_SOLcorrespond à 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.
// 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 :
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.transaction: il s'agit de l'objet de transaction que nous venons de créer et qui contient l'instruction de transfert.[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
Articles associés
Abonnez-vous à Helius
Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication


