Guía de provisión de liquidez (React)
Guía rápida para proporcionar liquidez en STON.fi: gana comisiones aportando tokens a los pools del DEX
Esta guía te acompañará en la creación de una aplicación básica de provisión de liquidez usando el SDK y la API de STON.fi en un React proyecto. Integraremos la conectividad de la billetera con TonConnect (a través de @tonconnect/ui-react) para permitir que los usuarios conecten su billetera TON y proporcionen liquidez a los pools. La guía está pensada para principiantes y asume una experiencia mínima con React.
Nota: En esta demo, aprovecharemos Tailwind CSS para el estilo en lugar de usar CSS personalizado. La configuración de Tailwind CSS ya está incluida en las instrucciones de abajo, así que no necesitas configurarlo por separado.
Nota: Puedes usar cualquier gestor de paquetes (npm, yarn, pnpm o bun) para configurar tu proyecto React. En este tutorial, lo mostraremos con pnpm.
Índice
1. Introducción
En este inicio rápido, construiremos una aplicación React mínima para:
Conectarse a una billetera TON (a través de TonConnect UI).
Obtener los tokens disponibles de STON.fi (a través de
@ston-fi/api).Simular la provisión de liquidez (para ver los tokens LP esperados).
Ejecutar una transacción de provisión de liquidez en la cadena (a través de
@ston-fi/sdk).
Usaremos:
@ston-fi/sdk– Ayuda a construir la carga útil para la transacción real de provisión de liquidez.@ston-fi/api– Nos permite obtener listas de activos y ejecutar simulaciones de provisión de liquidez.@tonconnect/ui-react– Proporciona un botón de conexión a billetera TON basado en React y utilidades.
2. Configuración del proyecto
2.1 Crear una aplicación React
Primero, comprueba si tienes pnpm instalado:
Si pnpm no está instalado, instálalo globalmente:
Crea un nuevo proyecto React + Vite:
Indica un nombre para el proyecto (por ejemplo, stonfi-liquidity-app) y luego:
2.2 Instalación de los paquetes necesarios
En el directorio de tu proyecto, instala los paquetes necesarios:
Instala Tailwind CSS y el plugin de polyfills de Node.js para Vite:
Configura Vite actualizando vite.config.ts. Esta configuración solo aplica polyfills a buffer, manteniendo el bundle liviano y exponiendo al mismo tiempo Buffer para las bibliotecas de TON:
En src/index.css, importa Tailwind:
También puedes eliminar src/App.css (no lo necesitamos), y eliminar la instrucción de importación import './App.css' de src/App.tsx.
Después de hacer estos cambios, puedes verificar que tu aplicación sigue funcionando correctamente iniciando el servidor de desarrollo:
Abre http://localhost:5173. Si ves una página inicial de Vite/React, todo está funcionando correctamente.
3. Conectar la billetera
3.1 Agregar el proveedor TonConnect
Abre src/main.tsx y envuelve tu aplicación en TonConnectUIProvider:
Nota: Para los propósitos de esta demo, estamos sirviendo el manifiesto desde una fuente estática. En una aplicación real, deberías reemplazar esto con la URL de tu propio manifiesto, que crearás en el siguiente paso.
3.2 Crear el manifiesto de TonConnect
Crea un archivo llamado tonconnect-manifest.json en tu carpeta public :
Actualízalo con el nombre, dominio e icono de tu propia aplicación.
3.3 Agregar el botón de conectar billetera
En src/App.tsx, importa y agrega el TonConnectButton:
4. Obtener los activos disponibles
Vamos a obtener los datos de los tokens desde STON.fi usando StonApiClient. Filtraremos por etiquetas de liquidez para mantener la lista manejable.
Primero, añade nuevas importaciones en la parte superior de src/App.tsx:
Inicializa el cliente de la API de STON.fi:
Añade variables de estado para la gestión de tokens:
Añade la lógica para obtener tokens:
Añade el manejador de cambio de token:
Reemplaza la instrucción return con la interfaz mejorada:
5. Simular la provisión de liquidez
Llamaremos a la función simulateLiquidityProvision en StonApiClient para obtener los resultados de la simulación.
Añade importaciones adicionales en la parte superior del archivo:
Añade funciones de utilidad para convertir cantidades de tokens:
Añade la dirección de la billetera y el estado de la simulación:
Añade useEffect para reiniciar la simulación cuando cambien los tokens:
Añade el manejador de simulación después de la función handleTokenChange existente:
Añade el botón de simulación después de los campos de entrada de cantidades:
Añade la visualización de resultados de la simulación después del botón simular:
6. Construir la transacción
Ve a TON Center y obtén tu clave API.
Luego crea un archivo .env en la raíz de tu proyecto y añade allí tu clave API:
Ahora vamos a construir la transacción usando @ston-fi/sdk:
Añade nuevas importaciones al inicio del archivo e inicializa el cliente JSON-RPC de TON:
Añade handleProvideLiquidityClick después del callback handleSimulationClick :
Añade el botón Proveer liquidez después del div de resultados de la simulación:
7. Ejecutar la provisión
Después de hacer clic en "Proveer liquidez", tu billetera te pedirá que confirmes y firmes. La transacción hará lo siguiente:
Enviar el token A y el token B al contrato del router
Añadir liquidez al pool
Mintear tokens LP en tu billetera LP
8. Probar tu provisión
Inicia el servidor de desarrollo:
Abre http://localhost:5173
Conecta tu billetera TON
Selecciona dos tokens e introduce cantidades
Simula para ver los tokens LP esperados
Haz clic en "Proveer liquidez" para ejecutar la transacción
Comprueba en tu billetera los nuevos tokens LP
9. Conclusión
Has creado una aplicación React mínima que:
Se conecta a una billetera TON
Obtiene tokens de STON.fi
Simula la provisión de liquidez
Gestiona tanto pools nuevos como existentes
Ejecuta la transacción de provisión
10. Demostración en vivo
Con esta demo de Replit, puedes:
Abrir el proyecto directamente en tu navegador
Hacer un fork del Replit para crear tu propia copia
Ejecutar la aplicación para verla en acción
Explorar y modificar el código para aprender cómo funciona
Experimentar con diferentes funciones y cambios en la interfaz
Como alternativa, puedes ejecutar este ejemplo localmente clonando el repositorio de GitHub:
Esto iniciará el servidor de desarrollo y podrás acceder a la app en http://localhost:5173.
También recuerda agregar tu clave de API de TON al .env archivo desde el Construir la transacción paso.
11. Próximos pasos
Para funciones más avanzadas puedes agregar:
Controles dinámicos de deslizamiento
Quemar liquidez lee sobre ello en la documentación del SDK
Consulta la documentación de liquidez del SDK para más detalles
Más información: Pools de liquidez de STON.fi e integración con TON
12. Aplicación de ejemplo avanzada
Para quienes buscan un enfoque más avanzado y con más funciones, también tenemos una demo de Next.js que:
Usa Next.js para un framework escalable
Utiliza hooks y providers para una arquitectura elegante
Demuestra un mejor manejo de errores, una gestión de estado robusta y funciones adicionales de STON.fi
Puedes explorar el código en nuestro repositorio:
Aplicación demo de Next.js del SDK de STON.fi
O verla en acción en nuestra demo en vivo:
13. Uso de agentes de IA para la implementación automatizada
Para los desarrolladores que buscan acelerar su proceso de desarrollo, pueden aprovechar agentes de programación de IA para implementar automáticamente la funcionalidad de provisión de liquidez descrita en esta guía. Aunque mostramos Gemini CLI en nuestro ejemplo (debido a su generoso plan gratuito), puedes usar cualquier asistente de programación de IA como Claude Code, GitHub Copilot, Cursor Agent, o herramientas similares.
13.1 ¿Por qué agentes de IA?
Los modernos agentes de programación de IA pueden:
Entender documentación compleja e implementar funciones completas
Configurar automáticamente la estructura del proyecto y las dependencias
Gestionar errores comunes de configuración y puesta en marcha
Proporcionar implementaciones funcionales en minutos en lugar de horas
13.2 Configuración con Gemini CLI (Ejemplo)
Haremos la demostración con Gemini CLI, pero el enfoque funciona con cualquier agente de IA que pueda leer documentación y ejecutar comandos.
13.2.1 Instalación de Gemini CLI
Instala Gemini CLI siguiendo las instrucciones en: https://github.com/google-gemini/gemini-cli
Autentícate con tu cuenta de Google cuando se te solicite. El nivel gratuito incluye:
60 solicitudes al modelo por minuto
1.000 solicitudes al modelo por día
13.2.2 Configuración de la guía de implementación
Descarga el archivo de guía adecuado desde el gist: https://gist.github.com/mrruby/3de1cedace13457b3fd6964186cfcb2e
Para Claude Code: Descarga
AGENTS.mdy cámbiale el nombre aCLAUDE.mdPara otros agentes de IA (Gemini CLI, GitHub Copilot, Cursor, etc.): Usa
AGENTS.mdtal cual
Crea un nuevo directorio para tu proyecto y coloca el archivo de guía dentro de él:
13.2.3 Ejecución de la implementación automatizada
Desde el directorio de tu proyecto, ejecuta Gemini CLI:
Cuando se abra la interfaz de la CLI, escribe:
El agente de IA:
Pedirá permiso para usar comandos como
pnpm,npm, etc.Creará automáticamente la estructura del proyecto
Instalará todas las dependencias necesarias
Implementará la funcionalidad completa de provisión de liquidez
Configurará los componentes de la interfaz y el estilo
Importante: Después de que la implementación se complete, debes configurar manualmente tu clave de API de TON:
Ve a TON Center y obtén tu clave de API
Crea un
.envarchivo en la raíz de tu proyectoAñade tu clave de API:
VITE_TON_API_KEY=your_api_key_hereLos agentes de IA no pueden encargarse de este paso, ya que requiere tus credenciales personales de API
Si ocurre algún error durante el proceso:
Simplemente vuelve a pegar el mensaje de error al agente de IA
Analizará y corregirá el problema automáticamente
En la mayoría de los casos, la implementación se completa correctamente de una sola vez
13.3 Uso de otros agentes de IA
El mismo enfoque funciona con otros asistentes de programación de IA:
Claude Code: Descarga
AGENTS.mdy cámbiale el nombre aCLAUDE.md, luego colócalo en tu proyecto y pide a Claude Code que implemente la guíaGitHub Copilot: Usa el
AGENTS.mdarchivo tal cual, abre la guía en tu editor y usa Copilot Chat para implementar paso a pasoCursor Agent: Usa el
AGENTS.mdarchivo tal cual, carga la documentación y solicita la implementación completa mediante el modo agente de CursorHerramientas personalizadas: Cualquier asistente de IA con acceso a archivos y capacidad de ejecutar comandos puede seguir la guía usando el
AGENTS.mdarchivo
Nota: El
AGENTS.mdarchivo contiene instrucciones compatibles con todos los agentes de IA (Gemini CLI, GitHub Copilot, Cursor, etc.). Sin embargo, Claude Code requiere que el archivo se llameCLAUDE.mdpara ser reconocido automáticamente, así que debes renombrarAGENTS.mdtoCLAUDE.mdcuando uses Claude Code.
13.4 Beneficios de usar agentes de IA
Velocidad: Obtén una implementación funcional en minutos en lugar de horas
Precisión: Los agentes de IA siguen la guía rápida con exactitud
Gestión de errores: Resuelven automáticamente la mayoría de los problemas comunes de configuración
Herramienta de aprendizaje: Observa cómo se desarrolla la implementación paso a paso
Personalización: Después de la configuración inicial, puedes modificar el código generado para adaptarlo a tus necesidades específicas
Rentable: Muchas herramientas de programación con IA ofrecen niveles gratuitos (como Gemini CLI) o están incluidas en suscripciones existentes
13.5 Mejores prácticas
Revisar el código: Revisa siempre el código generado por IA antes de usarlo en producción
Entender el flujo: Usa el código generado como una herramienta de aprendizaje para entender la provisión de liquidez
Personalizar: Adapta el código generado a tus requisitos específicos
Probar a fondo: Prueba la implementación con cantidades pequeñas antes de procesar transacciones más grandes
Seguridad: Nunca confirmes claves de API ni mnemónicos en el control de versiones
Este enfoque es especialmente útil para:
Desarrolladores nuevos en el ecosistema TON
Prototipado rápido y pruebas de concepto
Aprender con un ejemplo de una implementación funcional
Evitar errores comunes de configuración y problemas de puesta en marcha
Explorar rápidamente diferentes enfoques de implementación
Última actualización