Volver a la página principal
lunes 29 julio 2024
65

Cómo enviar transacciones en Solana usando Python ✨

Para esto, no necesitas conocer ninguna complejidad ni qué sucede detrás de escena. Utilizaremos Solathon, que es un SDK para Solana en Python fácil de usar y con muchas funcionalidades.

Asegúrate de tener Python 3.7 o superior instalado, ahora instala el paquete usando el siguiente comando:

pip install solathon

Primero necesitamos crear un cliente, que utilizaremos para interactuar con el JSON RPC de Solana. Para propósitos de prueba, utilizaremos devnet ya que no requiere tener saldo real en SOL. El siguiente código crea un cliente en devnet junto con todas las importaciones que necesitaremos más adelante:

from solathon.core.instructions import transfer
from solathon import Client, Transaction, PublicKey, Keypair

client = Client("https://api.devnet.solana.com")

Ahora, necesitamos definir tres cosas: primero, la cuenta que enviará la transacción; segundo, la cuenta que recibirá la transacción; y tercero, la cantidad de dinero que queremos enviar en lamports (que es la unidad estándar para cantidades en transacciones en la blockchain de Solana). Observa el código a continuación:

sender = Keypair.from_private_key("your_private_key_here")
receiver = PublicKey("receiver_public_key")
amount = 100

Aquí, el remitente debe ser un par de claves (keypair), que es una combinación de clave pública y clave privada. Necesitarás obtener tu clave privada de tu billetera para inicializar tu objeto Keypair. Luego necesitamos la clave pública de la cuenta a la que deseamos enviar la transacción. Finalmente, tenemos la cantidad que queremos transferir en lamports. Puedes usar la función sol_to_lamport proporcionada por Solathon para conversiones fáciles.

Ahora, cada transacción requiere que definas ciertas instrucciones que deben ser ejecutadas. Aquí solo necesitamos una instrucción y esa es transferir:

instruction = transfer(
        from_public_key=sender.public_key,
        to_public_key=receiver, 
        lamports=100
    )

Ahora, necesitamos inicializar nuestro objeto de transacción con nuestra lista de instrucciones y firmantes (que en este caso será solo el remitente):

transaction = Transaction(instructions=[instruction], signers=[sender])

Finalmente, podemos enviar esta transacción e imprimir los resultados:

result = client.send_transaction(transaction)
print("Transaction result: ", result)

Aquí está el código completo:

from solathon.core.instructions import transfer
from solathon import Client, Transaction, PublicKey, Keypair

client = Client("https://api.devnet.solana.com")

sender = Keypair.from_private_key("your_private_key")
receiver = PublicKey("receiver_public_key")
amount = 100  

instruction = transfer(
        from_public_key=sender.public_key,
        to_public_key=receiver, 
        lamports=100
    )

transaction = Transaction(instructions=[instruction], signers=[sender])

result = client.send_transaction(transaction)
print("Transaction response: ", result)

También puedes consultar la documentación oficial para más detalles: Documentación de Solathon para enviar transacciones

¿Qué tan fácil fue eso? Espero haber podido aclarar las cosas y que el tutorial haya sido útil. ¡Nos vemos pronto!

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer