Guía de Omniston (Python)

Aprende a crear un cliente de terminal basado en Python para intercambiar tokens en la blockchain TON usando el protocolo Omniston. Cubre la configuración de la wallet, la integración de la API y los swaps entre DEX en STON.fi y DeDust.

Esta guía te llevará a crear un basado en terminal cliente de intercambio de tokens usando el Omniston protocolo para intercambiar activos entre diferentes DEXes (STON.fi V1, STON.fi V2, DeDust, etc.). En lugar de una interfaz web y TonConnect, usaremos una billetera local de TON (creada con tonsdk) y enviaremos transacciones mediante Toncenter. La guía es apta para principiantes y asume una experiencia mínima con TON.

Nota: Este inicio rápido usa intencionalmente un CLI de un solo archivo por claridad. Más adelante puedes modularizarlo o empaquetarlo (consulta Aplicación de ejemplo avanzada).

Nota: Para mayor confiabilidad al transmitir transacciones, establece una TONCENTER_API_KEY (consulta Configurar activos y red).


Índice


1. Introducción

En este inicio rápido, construirás un CLI de Python mínimo que puede:

  • Crear o reutilizar una billetera local de TON (mediante tonsdk).

  • Cargar la red y la configuración de tokens desde .env y swap_config.json.

  • Solicitar un RFQ (cotización) de Omniston a través de WebSockets.

  • Construir una transferencia usando el generador de transacciones de Omniston.

  • Enviar la transacción a Toncenter para ejecutar el intercambio.

Usarás:

  • tonsdk – generación de billeteras, firma y BOCs.

  • websockets – para comunicarte con Omniston.

  • python-dotenv – para cargar variables de entorno.

  • API de Toncenter – para transmitir la transacción firmada.


2. Configuración del proyecto

2.1 Crea el espacio de trabajo

2.2 Crea el entorno virtual

2.3 Instala las dependencias

  1. Crea requirements.txt y agrega:

  2. Instala los paquetes:

  3. Crea un script CLI de un solo archivo:


3. Configuración de la billetera

El CLI guarda de forma persistente una billetera en data/wallet.json y muestra una frase mnemónica una sola vez—guárdala de forma segura.

3.1 Genera o carga una billetera

En este paso pegarás las definiciones principales y los ayudantes de la billetera (mantenidos en la parte superior de omniston_cli.py).

Consejo: Los bloques de código a continuación son exactamente los de la implementación funcional; pégalos tal cual y en el orden indicado.

3.2 Financia e implementa la billetera

Debes financiar la dirección e implementar el contrato de la billetera antes de enviar un intercambio. Los ayudantes de abajo se encargan de consultar Toncenter y enviar el BOC de inicialización cuando sea necesario.


4. Configurar activos y red

Definirás los extremos RPC y el par de intercambio predeterminado localmente.

4.1 Crea el archivo .env

Crea .env en la raíz del proyecto:

Obtener una clave de API de Toncenter: Usar la API sin una clave de API está limitado a 1 solicitud por segundo. Para obtener límites de velocidad más altos:

  1. Contacta a @toncenterarrow-up-right en Telegram

  2. Solicita una clave de API para tu proyecto

  3. Copia la clave y pégala en tu .env archivo

TONCENTER_API_KEY es necesario si quieres ejecutar transacciones. Sin él, te enfrentarás a problemas de limitación de velocidad y la transmisión de transacciones fallará.

4.2 Define el swap_config.json

Crea swap_config.json:

Direcciones comunes de tokens:

  • TON nativo: EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c

  • USDT: EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs

  • STON: EQA2kCVNwVsil2EM2mB0SkXytxCqQjS4mttjDpnXmwG9T6bO

gasless_mode acepta "GASLESS_SETTLEMENT_UNSPECIFIED", "GASLESS_SETTLEMENT_POSSIBLE", "GASLESS_SETTLEMENT_REQUIRED", o sus equivalentes numéricos 0/1/2.

flexible_referrer_fee permite que Omniston reduzca la comisión real del referidor por debajo de referrer_fee_bps cuando un resolutor puede ofrecer un mejor precio. Déjalo false para imponer la comisión exacta.


5. Implementación del CLI (paso a paso)

Abre omniston_cli.py y pega los bloques de ayudantes restantes a continuación exactamente como se muestran.

5.1 Define los tipos de dominio

5.2 Ayudantes de la billetera

5.3 Ayudantes de Toncenter

5.4 Ayudantes de cotización

5.5 Ayudantes de transferencia

5.6 Punto de entrada del comando


6. Solicitar una cotización

Ejecuta la CLI y sigue la indicación:

Cuando aceptes "¿Solicitar una cotización ahora?", la CLI:

  • Construirá una solicitud usando tu par y cantidad configurados.

  • Se conectará a Omniston a través de WebSockets (v1beta7.quote).

  • Mostrará un resumen legible por humanos (por ejemplo, Intercambiar 0.01 -> 12.34).

Si no se puede producir una cotización a tiempo (predeterminado: ~15s), verás un mensaje de tiempo de espera o de error.


7. Construir una transacción y enviarla

Después de que apruebes el resumen de la cotización, la CLI:

  1. Llama al constructor de transacciones de Omniston (v1beta7.transaction.build_transfer) para obtener mensajes TON.

  2. Firma un mensaje externo con tu wallet.

  3. Envía el BOC resultante a Toncenter.

Importante: El envío automático requiere TONCENTER_API_KEY en .env. Sin ello, la CLI omite la transmisión.


8. Probar tu intercambio

  1. Activa tu entorno virtual y asegúrate de que .env y swap_config.json existan.

  2. Financia tu wallet y ejecuta:

  3. Confirma:

    • La wallet se crea/carga y se imprime el saldo.

    • El despliegue se completa (o ya está desplegado).

    • Se recibe una cotización y se resume.

    • Al aprobarla, la transacción se envía y ves "Swap enviado.".

    • Revisa tu wallet en un explorador de TON para confirmar el swap.

Si algo falla, la CLI muestra un mensaje claro (por ejemplo, tiempo de espera, clave API faltante, problema de seqno).


9. Conclusión

Ahora tienes una CLI mínima de Python que:

  • Genera o reutiliza una wallet TON.

  • Carga la configuración local de activos y red.

  • Solicita cotizaciones en tiempo real desde Omniston.

  • Construye y envía el swap a través de Toncenter.

Ideas para ampliar:

  • Banderas personalizadas de CLI (cantidad/par) con argparse.

  • Mejor reporte de errores y reintentos/backoff.

  • Enlaces al explorador después del envío.

  • Seguimiento de operaciones con comprobaciones periódicas de estado.

10. Demostración en vivo

Ejecuta la CLI de Python de Omniston directamente en tu navegador a través de Replit:

  • Abre el proyecto en Replit

  • Haz un fork en tu cuenta para guardar los cambios

  • Añade una TONCENTER_API_KEY en los secretos de Replit

  • Ejecuta python omniston_cli.py en la shell de Replit

  • Explora y modifica el código libremente


11. Uso de agentes de IA para la implementación automatizada

También puedes seguir una guía grabada:

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 intercambio de Omniston 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.

11.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

11.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.

11.2.1 Instalación de Gemini CLI

  1. Instala Gemini CLI siguiendo las instrucciones en: https://github.com/google-gemini/gemini-cliarrow-up-right

  2. 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

11.2.2 Configuración de la guía de implementación

  1. Descarga el archivo de guía adecuado desde el gist: https://gist.github.com/mrruby/a6fba69716fc0d5b8eaafd43998b36c0arrow-up-right

    • Para Claude Code: Descarga AGENTS.md y cámbiale el nombre a CLAUDE.md

    • Para otros agentes de IA (Gemini CLI, GitHub Copilot, Cursor, etc.): Usa AGENTS.md tal cual

  2. Crea un nuevo directorio para tu proyecto y coloca el archivo de guía dentro de él:

11.2.3 Ejecución de la implementación automatizada

  1. Desde el directorio de tu proyecto, ejecuta Gemini CLI:

  2. Cuando se abra la interfaz de la CLI, escribe:

  3. El agente de IA:

    • Pedirá permiso para usar comandos como python3, pip, etc.

    • Creará automáticamente la estructura del proyecto

    • Instalará todas las dependencias necesarias

    • Implementa la funcionalidad completa de intercambio

    • Configurar archivos de configuración

  4. Importante: Después de que la implementación se complete, debes configurar manualmente tu clave API de Toncenter:

    • Ve a TON Centerarrow-up-right y obtén tu clave de API

    • Crea un .env archivo en la raíz de tu proyecto

    • Añade tu clave de API: TONCENTER_API_KEY=tu_api_key_aqui

    • Los agentes de IA no pueden encargarse de este paso, ya que requiere tus credenciales personales de API

  5. 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

11.3 Uso de otros agentes de IA

El mismo enfoque funciona con otros asistentes de programación de IA:

  • Claude Code: Descarga AGENTS.md y cámbiale el nombre a CLAUDE.md, luego colócalo en tu proyecto y pide a Claude Code que implemente la guía

  • GitHub Copilot: Usa el AGENTS.md archivo tal cual, abre la guía en tu editor y usa Copilot Chat para implementar paso a paso

  • Cursor Agent: Usa el AGENTS.md archivo tal cual, carga la documentación y solicita la implementación completa mediante el modo agente de Cursor

  • Herramientas personalizadas: Cualquier asistente de IA con acceso a archivos y capacidad de ejecutar comandos puede seguir la guía usando el AGENTS.md archivo

Nota: El AGENTS.md archivo contiene instrucciones compatibles con todos los agentes de IA (Gemini CLI, GitHub Copilot, Cursor, etc.). Sin embargo, Claude Code requiere que el archivo se llame CLAUDE.md para ser reconocido automáticamente, así que debes renombrar AGENTS.md to CLAUDE.md cuando uses Claude Code.

11.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

11.5 Mejores prácticas

  1. Revisar el código: Revisa siempre el código generado por IA antes de usarlo en producción

  2. Entender el flujo: Usa el código generado como una herramienta de aprendizaje para comprender el protocolo de Omniston

  3. Personalizar: Adapta el código generado a tus requisitos específicos

  4. Probar a fondo: Prueba la implementación con cantidades pequeñas antes de procesar transacciones más grandes

  5. 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


¡Feliz intercambio!

Última actualización