Swap (v2)

Ejecuta swaps en STON.fi v2: enrutamiento mejorado con mecánica de vault para obtener las mejores tasas

circle-info

Más información

El patrón listo para producción es basado en API. Deja siempre que la API de STON.fi dicte qué router usar y trabaja con el endpoint de mainnet. Esto mantiene tu integración compatible con futuras actualizaciones del router y evita codificar direcciones de contrato de forma fija.

Flujo de trabajo primero para mainnet

La API REST de STON.fi (api.ston.fi) solo sirve datos de mainnet, así que cada swap en producción debe seguir este flujo:

  1. Simula el swap para obtener metadatos de enrutamiento (cantidades esperadas, información de la bóveda y el objeto completo del router).

  2. Pase simulationResult.router directamente a dexFactory() para crear contratos dinámicamente.

  3. Genera los parámetros de la transacción de swap con los helpers del router.

import { dexFactory, Client } from "@ston-fi/sdk";
import { StonApiClient } from "@ston-fi/api";

const tonClient = new Client({
  endpoint: "https://toncenter.com/api/v2/jsonRPC",
});

const apiClient = new StonApiClient();

// 1. Simula el swap para descubrir los detalles de enrutamiento
const simulationResult = await apiClient.simulateSwap({
  offerAddress: "<dirección del activo de origen o 'ton'>",
  askAddress: "<dirección del activo de destino>",
  offerUnits: "<cantidad en unidades de blockchain>",
  slippageTolerance: "0.01",
});

// 2. Los metadatos del router vienen con el resultado de la simulación
const { router: routerInfo } = simulationResult;
const dexContracts = dexFactory(routerInfo);

// 3. Abra el contrato del router
const router = tonClient.open(
  dexContracts.Router.create(routerInfo.address)
);

// Helper opcional cuando TON forma parte de la ruta
const proxyTon = dexContracts.pTON.create(routerInfo.ptonMasterAddress);

El simulationResult el objeto contiene offerUnits, minAskUnits, offerAddress, askAddress, y router. Reutiliza esos valores al construir la transacción real de swap para asegurar que la transacción firmada coincida con la ruta simulada.

Comisiones por referidos: Puedes especificar una comisión de referido en tu swap si es necesario. Para más contexto, consulta la guía de comisiones de referido de Omniston (aunque está orientado a Omniston, el párrafo enlazado detalla cómo funcionan las comisiones de referido de DEX V2).

Swap de TON a jetton

Envía los parámetros resultantes usando tu integración de billetera preferida. Consulta nuestro guía para enviar transacciones para ejemplos específicos de billeteras.

Swap de jetton a jetton

Swap de jetton a TON

Usa el guía para enviar transacciones para transmitir la transacción. TonConnect, Tonkeeper SDK, firmantes custodiales y otras bibliotecas aceptan todos el txParams generados arriba.

Swaps en testnet (configuración manual)

Si realmente necesitas ejecutar swaps v2 en la testnet de TON, debes recurrir a contratos codificados de forma fija porque api.ston.fi solo sirve para mainnet. La liquidez es escasa, así que planifica obtener o acuñar los jettons tú mismo, crear los pools de liquidez necesarios y financiarlos antes de intentar hacer el swap.

Para reflejar los tres tipos de swap del ejemplo de mainnet, los testers suelen ejecutar la siguiente secuencia en testnet:

  1. swap 1 TON por TesREED (ton -> jetton)

  2. swap TesREED por TestBlue (jetton -> jetton)

  3. swap TestBlue de vuelta a TON (jetton -> ton)

Este enfoque manual es estrictamente para pruebas. Vuelva al flujo de trabajo impulsado por la API para cualquier cosa orientada a mainnet.

Última actualización