UNPKG

@poprank/sdk

Version:

PopRank API client and types

26 lines (25 loc) 1.16 kB
import { Chain } from "./general"; export declare const marketplaceIdentifiers: readonly ["opensea", "magiceden"]; export declare type MarketplaceIdentifier = typeof marketplaceIdentifiers[number]; export interface MarketplaceInfo { /** * Display name for marketplace, ie: "OpenSea" */ name: string; /** * OpenSea for EVM chains has an `/address/id` structure, * whereas MagicEden for Solana only requires the NFT's ID * (it's mint address) */ nftUrlFormatter: (id: string, address?: string) => string; collectionUrlFormatter: (address: string) => string; } declare type ChainMarketplace<C extends Chain, M extends MarketplaceIdentifier> = Record<C, Record<M, MarketplaceInfo>>; export declare type EthereumMarketplace = ChainMarketplace<'ethereum', 'opensea'>; export declare type PolygonMarketplace = ChainMarketplace<'polygon', 'opensea'>; export declare type SolanaMarketplace = ChainMarketplace<'solana', 'magiceden' | 'opensea'>; /** * Map of chain to all its marketplaces' info. */ export declare type ChainMarketplaceMap = EthereumMarketplace & PolygonMarketplace & SolanaMarketplace; export {};