AnhellO /
DAS_Sistemas
Repositorio para las prácticas y proyectos de la materia de Diseño y Arquitectura de Software
63/100 healthLoading repository data…
Pamela-Limon / repository
Proyecto de práctica para aprender a realizar transacciones masivas (airdrop) en la red de prueba de Stellar usando JavaScript y el SDK oficial.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Proyecto de práctica para aprender a realizar transacciones masivas (airdrop) en la red de prueba de Stellar usando JavaScript y el SDK oficial.
Este script permite enviar 10 XLM a 5 cuentas diferentes de forma automatizada. El programa es capaz de:
Objetivo: Enviar 10 XLM a 5 cuentas diferentes en la red de prueba (Testnet) de Stellar.
Requisitos:
proyecto-stellar/
│
├── generar-5-cuentas.js # Genera 5 pares de llaves válidos
├── airdrop-crear-cuentas.js # Script principal del airdrop
├── verificar-cuenta.js # Verifica balance de una cuenta
├── package.json # Dependencias del proyecto
└── README.md # Este archivo
git clone https://github.com/tu-usuario/stellar-airdrop.git
cd stellar-airdrop
npm install @stellar/stellar-sdk
node generar-5-cuentas.js
Este script generará 5 pares de llaves (pública/secreta) válidas para usar como destinatarios.
Salida esperada:
🔑 GENERANDO 5 CUENTAS PARA AIRDROP
===================================
✅ 5 cuentas generadas correctamente:
--- Cuenta 1 ---
Pública: GBXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Secreta: SBXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Abre airdrop-crear-cuentas.js y configura:
// Tu cuenta que enviará los fondos
const CLAVE_SECRETA_ORIGEN = 'TU_CLAVE_SECRETA_AQUI';
const CLAVE_PUBLICA_ORIGEN = 'TU_CLAVE_PUBLICA_AQUI';
// Cuentas destino generadas en el paso anterior
const destinatarios = [
'GB..... '// Cuenta 1
'GC..... ', // Cuenta 2
'GB..... '', // Cuenta 3
'GU..... ', // Cuenta 4
'GE...' // Cuenta 5
];
node airdrop-crear-cuentas.js
Salida esperada:
🔍 Verificando balance...
💰 Balance actual: 9989.9999900 XLM
✅ Balance suficiente!
🎁 INICIANDO AIRDROP (Con creación de cuentas)
===================
💰 Cantidad por cuenta: 10 XLM
📊 Total de cuentas: 5
💸 Total a enviar: 50 XLM
📤 Procesando cuenta 1/5...
Destino: GBXXXXXXXX...
ℹ️ La cuenta no existe, se creará
✅ Cuenta creada exitosamente!
📝 Hash: a1b2c3d4e5f6...
[... se repite para las 5 cuentas ...]
===================
📊 RESUMEN DEL AIRDROP
===================
✅ Exitosos: 5/5
❌ Fallidos: 0/5
💰 Total enviado: 50 XLM
createAccount y payment// createAccount - Para cuentas que NO existen
StellarSdk.Operation.createAccount({
destination: cuenta,
startingBalance: '10' // Debe ser mínimo 1 XLM
})
// payment - Para cuentas que YA existen
StellarSdk.Operation.payment({
destination: cuenta,
asset: StellarSdk.Asset.native(),
amount: '10'
})
¿Por qué? En Stellar, todas las cuentas deben mantener un balance mínimo de 1 XLM (reserva base). La operación createAccount crea la cuenta y la financia en un solo paso.
Cada transacción debe ser firmada con tu clave secreta:
const parLlaves = StellarSdk.Keypair.fromSecret(CLAVE_SECRETA);
transaccion.sign(parLlaves);
Esto demuestra criptográficamente que tú autorizas la transacción sin revelar tu clave secreta.
Cada cuenta tiene un número de secuencia que aumenta con cada transacción:
const cuentaOrigen = await server.loadAccount(CLAVE_PUBLICA_ORIGEN);
Esto previene:
El script verifica si las cuentas existen antes de decidir qué operación usar:
try {
await server.loadAccount(cuenta);
cuentaExiste = true; // Usar payment
} catch (error) {
if (error.response && error.response.status === 404) {
cuentaExiste = false; // Usar createAccount
}
}
⚠️ IMPORTANTE:
const CLAVE_SECRETA = process.env.STELLAR_SECRET_KEY;
.env a tu .gitignoreEste proyecto usa Testnet (red de prueba):
networkPassphrase: StellarSdk.Networks.TESTNET
Para usar la red principal (con dinero real), cambia a:
networkPassphrase: StellarSdk.Networks.PUBLIC
const server = new StellarSdk.Horizon.Server('https://horizon.stellar.org');
⚠️ Advertencia: En la red principal usas dinero real. Practica siempre en Testnet primero.
Causa: Las claves públicas no son válidas o están incompletas.
Solución: Genera nuevas claves con generar-5-cuentas.js
Causa: Intentaste usar payment en una cuenta que no existe.
Solución: Usa createAccount para cuentas nuevas.
Causa: No tienes suficiente XLM en tu cuenta origen.
Solución: Financia tu cuenta con Friendbot.
Pamela Limón teniendo como referencia codigo futura un programa de las tiburonas builders
⭐ Si este proyecto te ayudó a aprender sobre Stellar, ¡no olvides darle una estrella!
Después de dominar este script, puedes intentar:
Selected from shared topics, language and repository description—not editorial ratings.
AnhellO /
Repositorio para las prácticas y proyectos de la materia de Diseño y Arquitectura de Software
63/100 healthCrisRuedaP /
💟 Curso de accesibilidad web: HTML semántico, ARIA y buenas prácticas.
60/100 healthysamano /
Proyecto semanal de visualización de datos poniendo en práctica las herramientas del ecosistema Tidyverse
/100 healthjocrugon /
Proyecto de práctica springboot, es un API con arquitectura hexagonal, exceptions, swagger y 2 base de datos en conjunto, MySQL y MongoDB usando Docker
57/100 healthdickson7 /
Proyectos y ejercicios de practica en golang
40/100 healthEste CRUD integral ofrece una solución práctica y educativa para dominar PHP y MySQL, ideal para proyectos de aprendizaje y gestión escolar.
63/100 health