
Solana Dev 101 - Cómo crear una transacción en Solana
Tabla de contenido
Introducción
¡GM! En este blog veremos cómo crear y enviar una transacción con JavaScript en Solana como parte de la serie Solana Dev 101. Esta guía es ideal para principiantes, así que no te preocupes si Solana o la tecnología blockchain son algo nuevo para ti.
Si tienes alguna pregunta, únete al Discord de Helius o etiqueta a Helius en X para obtener ayuda.
Requisitos previos
Para comenzar, debes tener Node.js y npm instalados en tu equipo. Si es necesario, puedes descargarlos aquí.
También tendrás que instalar la biblioteca web3.js de Solana, un conjunto de herramientas y bibliotecas de JavaScript diseñadas para interactuar con la blockchain de Solana.
Puedes instalarla con npm. Abre tu terminal y ejecuta el siguiente código:
npm install @solana/web3.jsPaso 1: Configurar la conexión
Primero, crea una conexión con el clúster de Solana. Usaremos Helius para conectarnos a un clúster de devnet. Tendrás que crear una cuenta de Helius y una clave de API. Puedes hacerlo gratis desde tu panel.
const solanaWeb3 = require('@solana/web3.js');
const connection = new solanaWeb3.Connection('<https://rpc-devnet.helius.xyz/?api-key=><api_key>','confirmed',);Paso 2: Crear una billetera nueva
Ahora necesitas una billetera desde la cual enviar transacciones. Una billetera es simplemente un par de claves pública y privada, y puedes crearla fácilmente. La clave pública es la dirección de tu billetera, mientras que la clave privada se utiliza para firmar transacciones. Puedes obtener más información sobre la criptografía de clave pública aquí.
Puedes crear una nueva billetera en el sistema de archivos. El par de claves de esta billetera se almacenará en tu equipo local. Si ya instalaste las herramientas de Solana CLI, ejecuta el siguiente comando en la terminal para obtener una billetera nueva.
solana-keygen newSi aún no las tienes, deberás instalar el conjunto de herramientas de Solana CLI. Encontrarás más información sobre cómo hacerlo en la documentación de Solana: https://docs.solana.com/cli/install-solana-cli-tools
Nunca compartas tu clave privada con nadie.
Luego, puedes importar esta billetera en tu código:
const sender=solanaWeb3.Keypair.fromSecretKey(new Uint8Array([61,23,....,60,49]));Copia tu clave secreta desde el archivo JSON de la billetera que creaste en el paso anterior y úsala.
Paso 3: Agregar fondos a la billetera
Para enviar transacciones, necesitarás SOL en tu billetera. Cada transacción en Solana requiere una pequeña comisión para procesarse.
Para las pruebas, usaremos nuestro faucet de Devnet para agregar fondos a la billetera. Usa el faucet de Helius en tu panel o sigue estas instrucciones para solicitar SOL de Devnet desde la CLI. Ingresa la clave pública de la billetera que acabas de crear y solicita SOL.
Paso 4: Crear una transacción
Ahora que tu billetera tiene fondos, puedes crear una transacción. En este ejemplo, crearemos la transacción y le agregaremos la instrucción de transferencia. La usaremos para transferir 0.1 SOL a una billetera de nuestra elección.
Una transacción puede realizar muchas acciones según la instrucción que le proporciones. En este ejemplo, enviaremos SOL mediante la instrucción de transferencia.
// 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,}),);En el código anterior, creamos un objeto PublicKey con una billetera de nuestra elección. Para crear una transacción, necesitas el objeto PublicKey, no solo la dirección. La instrucción de transferencia también recibe 3 parámetros:
fromPubkey: la clave pública de la cuenta del remitente.toPubkey: la clave pública de la cuenta del destinatario.lamports: la cantidad de lamports (la unidad monetaria más pequeña de Solana) que se transferirá.solanaWeb3.LAMPORTS_PER_SOLrepresenta 1 SOL.
Paso 5: Firmar y enviar la transacción
Una vez creada la transacción, tendrás que firmarla y enviarla a la red.
La biblioteca Solana Web3 incluye una función llamada sendAndConfirmTransaction() que permite hacer todo esto fácilmente.
El método sendAndConfirmTransaction envía la transacción a la red, espera su confirmación y devuelve la firma de la transacción.
// Sign and confirm the transaction
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);
console.log('Transaction: ', signature);El método sendAndConfrimTransaction recibe tres parámetros:
connection: es el objeto de conexión a la red de Solana que creamos mediante una conexión RPC de Helius. Este parámetro especifica la conexión por la que se enviará y confirmará la transacción.transaction: es el objeto de transacción que acabamos de crear y contiene la instrucción de transferencia.[sender]: es un arreglo que contiene todas las cuentas firmantes de la transacción. En este caso, contiene un único elemento,sender, que representa la cuenta que firma y autoriza la transacción.
¡Y listo!
Acabamos de crear y enviar una transacción en Solana mediante JavaScript.
Puedes usar node sendTransaction.js para ejecutar el script.
Conclusión
Crear y enviar una transacción en Solana con JavaScript es un proceso sencillo gracias a la completa biblioteca de JavaScript de Solana. Con solo unas líneas de código, puedes interactuar con la blockchain de Solana y acceder a un mundo de posibilidades.
Este ejemplo básico muestra la estructura y el flujo para crear y enviar una transacción. Las aplicaciones del mundo real pueden incluir transacciones más complejas y requerir medidas de seguridad adicionales.
Espero que esta guía te haya resultado útil. ¡Disfruta programando!
Puedes encontrar el código completo aquí.
Recursos
Artículos relacionados
Suscríbete a Helius
Mantente al día con las novedades del desarrollo en Solana y recibe actualizaciones cuando publiquemos


