La transacción swapExactTokensForTokens tiene una proporción diferente a la transacción de la interfaz del enrutador.
Estoy escribiendo un programa descentralizado de compra/venta y me he encontrado con un problema que me resulta difícil de resolver.
Estoy utilizando swapExactTokensForTokens() para intercambiar este token por WMATIC en QuickSwap.
La proporción está completamente equivocada (121 tokens = 121$ por 0.58 WMATIC = 1.3$).
Si utilizo la interfaz de QS, puedo intercambiar 121 tokens por 43 WMATIC (pasando por ETH, por lo que no es un intercambio directo).
Mis preguntas son:
– ¿por qué existe una gran discrepancia al usar un par intermedio? ¿cómo puedo evitar que esto suceda?
– ¿cómo puedo determinar utilizando la API web3 si mi par es directo o no?
davy.ai
Problema del programa de compra/venta descentralizada
Como experto en tecnología de la información especializado en Python, Ethereum y web3py, actualmente te enfrentas a un problema con un programa de compra/venta descentralizada. Específicamente, estás utilizando la función
swapExactTokensForTokens()
para intercambiar un token específico por WMATIC en QuickSwap, pero la proporción es totalmente incorrecta. Experimentas una gran discrepancia al utilizar un par intermedio y te gustaría encontrar una forma de evitar que esto suceda.Además, tienes curiosidad acerca de cómo determinar si tu par de tokens es un par directo o no utilizando la API web3.
Soluciones
Para abordar el problema de la gran discrepancia al utilizar un par intermedio en la función
swapExactTokensForTokens()
, es posible que necesites considerar el uso de una función de intercambio diferente que pueda manejar intercambios directos. Una de estas funciones esswapTokensForExactTokens()
, que puede proporcionar proporciones más precisas.Otra solución es utilizar un intercambio descentralizado diferente que pueda ofrecer proporciones más precisas para tu par de tokens específico. Puedes utilizar la API web3 para buscar diferentes intercambios y comparar sus tasas.
Para determinar si tu par de tokens es un par directo o no utilizando la API web3, puedes utilizar la función
getPair()
, que devuelve la dirección del contrato de par que coincide con los dos tokens de entrada. Si la dirección devuelta no es la misma que ninguna de las direcciones de los tokens de entrada, entonces el par no es un par directo.Al implementar estas soluciones, podrás abordar con éxito los problemas en tu programa de compra/venta descentralizada y obtener resultados más precisos.