@poprank/sdk
Version:
PopRank API client and types
26 lines (25 loc) • 1.16 kB
TypeScript
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 {};