Cómo convertirse en un Resolver
Guía paso a paso para integrar resolvers de Omniston: implementa enrutamiento inteligente para una ejecución óptima de swaps
Esta guía explica cómo convertirse en un resolver (Market Maker) en el protocolo Omniston e integrarse con su API gRPC.
Resumen
Un resolver es un servicio que proporciona tipos de cambio de tokens y ejecuta operaciones. Para convertirse en un resolver, necesita:
Registrarse obteniendo un Soul-Bound Token (SBT)
Conectarse a la API gRPC
Gestionar solicitudes de cotización y operaciones
Proceso de registro
Paso 1: Generar claves
Primero, genere uno o más pares de claves Ed25519 que se usarán para la autenticación:
Para otros lenguajes, puede usar cualquier biblioteca estándar de implementación Ed25519 disponible en su lenguaje de programación preferido
Paso 2: Preparar metadatos
Cree un documento JSON que contenga:
El nombre de su resolver
Su(s) clave(s) pública(s)
Ejemplo:
Paso 3: Enviar el registro
Sus metadatos se almacenarán en una colección NFT SBT
Recibirá la dirección de participación de su SBT para la autenticación de la API
Conectarse a la API
Autenticación
Cree una carga útil de conexión:
Firme la carga útil:
Serialice el
ConnectPayloaden bytesFirme usando su clave privada Ed25519
Codifique la firma en Base64
Envíe un
ConnectRequest:
Ejemplo de solicitud de conexión:
Flujo de mensajes
La API del resolver usa un flujo gRPC bidireccional. Después de conectarse:
1. Eventos entrantes
Recibirá estos eventos del servidor:
Eventos clave:
QuoteRequestedEvent: Nueva solicitud de cotización de un traderQuoteRequestCancelledEvent: El trader canceló su solicitudQuoteAcceptedEvent: Su cotización fue aceptadaQuoteRejectedEvent: Su cotización fue rechazadaQuoteInvalidatedEvent: Confirmación de invalidación de la cotización
2. Solicitudes salientes
Puede enviar estas solicitudes al servidor:
Solicitudes clave:
UpdateQuoteRequest: Proporcionar o actualizar una cotizaciónInvalidateQuoteRequest: Cancelar una cotización proporcionada previamente
Flujo de cotización
1. Recepción del acuse de recibo de la solicitud de cotización
Cuando un trader envía una solicitud de cotización, primero recibirá un QuoteRequestAck que contiene el rfq_id que identifica de forma única su solicitud.
2. Recepción de solicitudes de cotización
Como resolver, cuando reciba un QuoteRequestedEvent:
3. Proporcionar cotizaciones
Responda con un UpdateQuoteRequest:
Para la liquidación por swap, incluya información de la ruta:
Importante: al especificar el protocolo en un SwapChunk, la API gRPC espera que sea una de las cadenas "StonFiV1", "StonFiV2", "DeDust" o "TonCo". Actualmente, solo extra_version = 1 es compatible.
4. Ciclo de vida de la cotización
Recibe
QuoteRequestedEventEnvía
UpdateQuoteRequestEl servidor valida su cotización y responde con:
QuoteAcceptedEvent: Su cotización fue validada y aceptada, incluyequote_id.QuoteRejectedEvent: Su cotización fue rechazada. El evento incluye un campocodedelQuoteRejectedCodeenum. Las posibles razones incluyen:UNDEFINED(0) - Error no categorizadoINVALID_PARAMETERS(1) - Valor inválido de un parámetroINVALID_AMOUNTS(2) - Las restricciones de cantidad de activos no cumplen los requisitos del RFQROUTE_PROHIBITED(3) - La ruta usa un activo intermedio prohibidoPOOL_PROHIBITED(4) - La ruta usa un pool de liquidez no verificado o prohibidoEMULATION_RESULT_MISMATCH(5) - La emulación de la transacción produjo un resultado diferente al de la cotizaciónINTERNAL_ERROR(101) - Errores del servidor
En cualquier momento, puede:
Enviar nuevo
UpdateQuoteRequestpara actualizar la cotizaciónEnviar
InvalidateQuoteRequestpara cancelar la cotización
Buenas prácticas
Números de secuencia
Use
seqnomonótonamente crecientes para sus solicitudesEmpareje
reply_tocon el eventoseqnoal responderRealice el seguimiento de la correlación solicitud/respuesta usando
seqno
Gestión de cotizaciones
Respete sus cotizaciones hasta
trade_start_deadlineInvalide las cotizaciones que no pueda cumplir
Incluya todas las comisiones en los importes cotizados
Gestión de errores
Reconéctese si se pierde la conexión
Gestione todos los tipos de evento
Registre las cotizaciones rechazadas para monitoreo
Rendimiento
Mantenga una única conexión gRPC
Procese los eventos de forma asíncrona
Almacene en búfer las solicitudes salientes
Puntos finales de la API
Producción:
WebSocket (JSON-RPC):
wss://omni-ws.ston.figRPC (TLS):
omni-grpc.ston.fi:443Sitio de demostración: omniston.ston.fi
Sandbox:
WebSocket (JSON-RPC):
wss://omni-ws-sandbox.ston.figRPC (TLS):
omni-grpc-sandbox.ston.fi:443Sitio de demostración: omniston-sandbox.ston.fi
⚠️ Los endpoints gRPC son host:puerto destinos sobre TLS y no son URL REST HTTP. No uses
https://...como si fuera una API REST.
Ver también
Última actualización