import { ContractAbstraction, ContractProvider, Wallet, Context } from '@taquito/taquito'; import { MetadataInterface } from './metadata-interface'; import { MetadataContext } from './tzip16-contract-abstraction'; export interface MetadataProviderInterface { provideMetadata(contractAbstraction: ContractAbstraction, uri: string, context: MetadataContext): Promise; } export interface MetadataEnvelope { uri: string; integrityCheckResult?: boolean; sha256Hash?: string; metadata: MetadataInterface; } export interface Handler { getMetadata(contractAbstraction: ContractAbstraction, uri: Tzip16Uri, context: Context): Promise; } export interface Tzip16Uri { sha256hash: string | undefined; protocol: string; location: string; } /** \* Metadata Provider */ export declare class MetadataProvider implements MetadataProviderInterface { private handlers; constructor(handlers: Map); /** * Fetch the metadata by using the appropriate handler based on the protcol found in the URI * @returns an object which contains the uri, the metadata, an optional integrity check result and an optional SHA256 hash * @param contractAbstraction the contract abstraction which contains the URI in its storage * @param uri the decoded uri found in the storage * @param context the TezosToolkit Context */ provideMetadata(contractAbstraction: ContractAbstraction, uri: string, context: Context): Promise; private extractProtocolInfo; }