p-sdk-wallet
Version:
A comprehensive wallet SDK for React Native (pwc), supporting multi-chain and multi-account features.
58 lines (57 loc) • 1.67 kB
TypeScript
import { NFTMetadata } from '../../types/nft';
/**
* Service for resolving NFT metadata from various sources (IPFS, HTTP)
*/
export declare class MetadataResolver {
private static readonly IPFS_GATEWAYS;
private static readonly CACHE_DURATION;
private static metadataCache;
/**
* Resolves metadata from a URI (IPFS or HTTP)
* @param uri - The metadata URI to resolve
* @returns Promise resolving to NFT metadata
*/
resolveMetadata(uri: string): Promise<NFTMetadata>;
/**
* Resolves IPFS URI to HTTP URL using multiple gateways
* @param ipfsUri - IPFS URI (ipfs://...)
* @returns Promise resolving to HTTP URL
*/
private resolveIPFS;
/**
* Fetches metadata from HTTP URL
* @param url - HTTP URL to fetch metadata from
* @returns Promise resolving to NFT metadata
*/
private fetchMetadata;
/**
* Parses raw metadata into standardized format
* @param rawData - Raw metadata from contract
* @returns Parsed NFT metadata
*/
private parseMetadata;
/**
* Gets cached metadata if available and not expired
* @param uri - Metadata URI
* @returns Cached metadata or null if not found/expired
*/
private getCachedMetadata;
/**
* Caches metadata for future use
* @param uri - Metadata URI
* @param metadata - Metadata to cache
*/
private cacheMetadata;
/**
* Clears the metadata cache
*/
static clearCache(): void;
/**
* Gets cache statistics
* @returns Cache statistics
*/
static getCacheStats(): {
size: number;
entries: number;
};
}