Hilo técnico de Solana y otras cadenas. Nuestras aplicaciones, bots y trucos.

Lo de Bonfida que te dije antes no vale, cuando hago la petición me sale un mensaje confuso diciendo 'Serum Swap has been deprecated'.

La propia página en algunas peticiones lo te dice "This endpoint is deprecated", pero obtener el orderbook si es posible por ejemplo.En cuanto a Luna he encontrado que si existe la versión wrapped ,lo que me parece raro que hay 2 roto2



Ahora una pregunta , ¿Solana tiene soporte para tokens ERC20 ? ¿Alguien conoce un bridge entre Solana y BSC?
 
La propia página en algunas peticiones lo te dice "This endpoint is deprecated", pero obtener el orderbook si es posible por ejemplo

Lo puedes conseguir todo, pero hay que meterse en la web del dapp ( en bonfida, por ejemplo), pulsar F12 en el navegador, filtrar las conexiones de red por XHR en el botoncejo que hay para eso y ver cómo saca la lista.

Yo lo he hecho y la REST resulta ser https://wallet-api.bonfida.com/cached/market-table

Es decir, no tienen API oficial, pero sí que usan internamente eso en su dapp, que se correspondería con lo que hace la función de la API que ahora te devuelve lo de 'deprecated'.

El resultado es:

json_markets.png

Con esos address, que son los del market, sí que luego por otra consulta puedes ver los libros de órdenes.

Pues lo que te decía antes en otros posts es que esta forma de listar cambia de bonfida a dexlab, es diferente, además de que dexlab en la misma consulta te da también los mint de las dos monedas y bonfida eso lo omite (necesita otra consulta adicional).

Dada una moneda, puedes tener todos los mercados en los que está y todos sus pares, pero antes de tener eso, has de conectar las tablas.
Voy a intentar ésto:
1635594511968.png
Dos nuevas tablas, tradedexs y tradepairs.

En la tabla tradedexs meteré los dapps (bonfida, dexlabs, etc..). Como se comportan diferente en cuanto a la manera de funcionar, tendré que usar una clase abstracta para el procesado (controller) y el nombre de su implementación la guardaré como 'classControllerName'.

Voy a usar otra tabla, tradepairs, donde se metan los pares de ese dapp, pero de manera que se una a la otra tabla, Tradecoins, debido a su mintado ('address' es el mintado en la tabla Tradecoins). Tendré una FK para la moneda base (basemint) y otra para la moneda que se tradea (quotemint).

Al hacer esto, podré generar una consulta tal que, a partir de un objeto Tradecoin (moneda), tengamos:
'contains' => [ 'Pairmints', 'Pairmints.Tradedexs', 'Pairquotes', 'Pairquotes.Tradedexs'] ,
'conditions'=>['address' => $moneda->address],

donde Pairmints es la asociación de la tabla Tradecoins con el FK basemint y Pairquotes lo es con la FK quotemint.

Esta consulta con esas asociaciones darían toda la estructura de mercado para una moneda. De forma automática, encontraríamos todos los mercados y todas las monedas implicadas.

Con esto creo que se resolvería el tema de seguir las monedas en los diferentes markets, pero necesita el trabajo previo de ir por los dapps uno a uno para recabar primero la info de qué markets contiene y luego sacar sus pares debidamente relacionados con la tabla donde tenemos todas las coins. Es un proceso de construccióon inversa.
 
Volver