Lectura de órdenes
La lectura de órdenes desde la API del marketplace se realiza con la interfaz IMarketplaceReader
, implementada por MarketplaceReader
.
La interfaz IMarketplaceReader cuenta con resúmenes IntelliSense que ayudan a entender para qué sirve cada método, pero aquí también destacaremos algunos de ellos.
Uso
Todos los métodos de IMarketplaceReader son Tasks asíncronos y se pueden esperar directamente y/o es posible suscribirse a los eventos asociados.
Métodos
ListCurrencies
Obtenga un arreglo de Monedas permitidas que pueden usarse en el marketplace del juego.
Obteniendo listados
Existen varias formas de obtener listados.
ListCollectibleListingsWithLowestPricedListingsFirst
se utiliza para obtener los listados asociados a una dirección de contrato dada. Los listados estarán ordenados del precio más bajo al más alto. Además, solo se devolverá el listado de menor precio para cada coleccionable (es decir, cada token id).
Opcionalmente, puede proporcionar un CollectiblesFilter
para aplicar filtros a su consulta.
Esta solicitud utiliza paginación. Si está trabajando con una colección pequeña y no quiere lidiar con la paginación, puede usar la función auxiliar ListAllCollectibleListingsWithLowestPricedListingsFirst
; esta manejará la paginación por usted y continuará haciendo solicitudes hasta que se hayan recuperado todos los CollectibleOrder
relevantes.
También puede suscribirse opcionalmente a los eventos OnListCollectibleOrdersReturn
y OnListCollectibleOrdersError
para manejar las respuestas en otra parte.
2. GetLowestPriceListingForCollectible
y GetHighestPriceListingForCollectible
pueden usarse para obtener respectivamente el listado de menor y mayor precio para un coleccionable.
Opcionalmente, puede proporcionar un OrderFilter
para aplicar filtros a su consulta.
Adicionalmente, tiene la opción de suscribirse a los eventos OnGetCollectibleOrderReturn
y OnGetCollectibleOrderError
para manejar la respuesta en otro lugar.
3. ListListingsForCollectible
se utiliza para obtener todos los listados de un coleccionable determinado.
Opcionalmente, puede proporcionar un OrderFilter
para aplicar filtros a su consulta.
Esta solicitud utiliza paginación. Si se maneja un conjunto pequeño de listados y no se desea lidiar con la paginación, se puede usar la función auxiliar ListAllListingsForCollectible
; se encargará de la paginación y continuará haciendo solicitudes hasta obtener todas las Order
relevantes.
Adicionalmente, tiene la opción de suscribirse a los eventos OnListCollectibleListingsReturn
y OnListCollectibleListingsError
para manejar la respuesta en otro lugar.
4. ListAllPurchasableListings
es un método auxiliar conveniente que puede usarse para ListAllCollectibleListingsWithLowestPricedListingsFirst
, filtrando los listados que no fueron creados por purchasableBy
. Luego, usando un ChainIndexer
para la cadena configurada, obtiene los balances de tokens de purchasableBy
y elimina los listados que no se pueden comprar sin realizar un swap.
Este método se encargará de la paginación, continuando con las solicitudes hasta que se hayan obtenido todos los CollectibleOrder
. Se recomienda usarlo solo en colecciones con pocos listados (como con otros métodos auxiliares que manejan la paginación) para no usar demasiada memoria. La implementación de este método también puede servir como ejemplo de cómo trabajar con el Indexer junto con los marketplaces peer to peer.
Obteniendo ofertas
Existen varias formas de obtener ofertas. Todas funcionan de manera similar a sus métodos equivalentes para listados.
ListCollectibleOffersWithHighestPricedOfferFirst
se utiliza para obtener las ofertas asociadas a una dirección de contrato dada. Las ofertas estarán ordenadas del precio más alto al más bajo. Además, solo se devolverá la oferta de mayor precio para cada coleccionable (es decir, cada token id).
Opcionalmente, puede proporcionar un CollectiblesFilter
para aplicar filtros a su consulta.
Esta solicitud utiliza paginación. Si se maneja una colección pequeña y no se desea lidiar con la paginación, se puede usar la función auxiliar ListAllCollectibleOffersWithHighestPricedOfferFirst
; se encargará de la paginación y continuará haciendo solicitudes hasta obtener todos los CollectibleOrder
relevantes.
También puede suscribirse opcionalmente a los eventos OnListCollectibleOrdersReturn
y OnListCollectibleOrdersError
para manejar las respuestas en otra parte.
2. GetLowestPriceOfferForCollectible
y GetHighestPriceOfferForCollectible
pueden usarse para obtener respectivamente la oferta de menor y mayor precio para un coleccionable.
Opcionalmente, puede proporcionar un OrderFilter
para aplicar filtros a su consulta.
Adicionalmente, tiene la opción de suscribirse a los eventos OnGetCollectibleOrderReturn
y OnGetCollectibleOrderError
para manejar la respuesta en otro lugar.
3. ListOffersForCollectible
se utiliza para obtener todas las ofertas de un coleccionable determinado.
Opcionalmente, puede proporcionar un OrderFilter
para aplicar filtros a su consulta.
Esta solicitud utiliza paginación. Si está manejando un conjunto pequeño de ofertas y no desea lidiar con la paginación, puede usar la función auxiliar ListAllOffersForCollectible
; esta se encargará de la paginación por usted y continuará haciendo solicitudes hasta que se hayan obtenido todas las Order
s relevantes.
Adicionalmente, tiene la opción de suscribirse a los eventos OnListCollectibleOffersReturn
y OnListCollectibleOffersError
para manejar la respuesta en otro lugar.
4. ListAllSellableOffers
es un método auxiliar conveniente que puede usarse para ListAllCollectibleOffersWithHighestPricedOfferFirst
, filtrando las ofertas que no fueron creadas por sellableBy
y donde sellableBy
posea al menos uno de los coleccionables solicitados.
Este método manejará la paginación por usted, continuando con las solicitudes hasta que se hayan obtenido todos los CollectibleOrder
s. Tenga cuidado de usarlo solo en colecciones con pocas ofertas (como con otros métodos auxiliares que manejan la paginación) para no usar demasiada memoria. La implementación de este método también puede servirle como ejemplo de cómo trabajar con CollectiblesFilter
s.
Conclusión
Usando el IMarketplaceReader, debería tener suficientes herramientas para consultar la API del marketplace y armar una interfaz de marketplace para que sus usuarios puedan explorar. En general, la mayoría de los marketplaces dependerán principalmente de los métodos ListCollectibleListingsWithLowestPricedListingsFirst
y ListCollectibleOffersWithHighestPricedOfferFirst
y de CollectiblesFilter
para consultar/filtrar listados y órdenes respectivamente, mientras que los métodos restantes serán útiles principalmente durante el proceso de checkout.