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.ListCollectibleListingsWithLowestPricedListingsFirstse 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).
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.
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.
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.
CollectibleOrder. Tenga cuidado de usarlo solo en colecciones con pocos listados (al igual que con otros métodos auxiliares que manejan la paginación) para no consumir demasiada memoria. La implementación de este método también puede servirle 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.ListCollectibleOffersWithHighestPricedOfferFirstse 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).
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.
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.
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 Orders 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.
CollectibleOrders. 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 CollectiblesFilters.
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étodosListCollectibleListingsWithLowestPricedListingsFirst 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.