| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | /** *  ENS is a service which allows easy-to-remember names to map to *  network addresses. * *  @_section: api/providers/ens-resolver:ENS Resolver  [about-ens-rsolver] */import type { BytesLike } from "../utils/index.js";import type { AbstractProvider, AbstractProviderPlugin } from "./abstract-provider.js";import type { Provider } from "./provider.js";/** *  The type of data found during a steip during avatar resolution. */export type AvatarLinkageType = "name" | "avatar" | "!avatar" | "url" | "data" | "ipfs" | "erc721" | "erc1155" | "!erc721-caip" | "!erc1155-caip" | "!owner" | "owner" | "!balance" | "balance" | "metadata-url-base" | "metadata-url-expanded" | "metadata-url" | "!metadata-url" | "!metadata" | "metadata" | "!imageUrl" | "imageUrl-ipfs" | "imageUrl" | "!imageUrl-ipfs";/** *  An individual record for each step during avatar resolution. */export interface AvatarLinkage {    /**     *  The type of linkage.     */    type: AvatarLinkageType;    /**     *  The linkage value.     */    value: string;}/** *  When resolving an avatar for an ENS name, there are many *  steps involved, fetching metadata, validating results, et cetera. * *  Some applications may wish to analyse this data, or use this data *  to diagnose promblems, so an **AvatarResult** provides details of *  each completed step during avatar resolution. */export interface AvatarResult {    /**     *  How the [[url]] was arrived at, resolving the many steps required     *  for an avatar URL.     */    linkage: Array<AvatarLinkage>;    /**     *  The avatar URL or null if the avatar was not set, or there was     *  an issue during validation (such as the address not owning the     *  avatar or a metadata error).     */    url: null | string;}/** *  A provider plugin super-class for processing multicoin address types. */export declare abstract class MulticoinProviderPlugin implements AbstractProviderPlugin {    /**     *  The name.     */    readonly name: string;    /**     *  Creates a new **MulticoinProviderPluing** for %%name%%.     */    constructor(name: string);    connect(proivder: Provider): MulticoinProviderPlugin;    /**     *  Returns ``true`` if %%coinType%% is supported by this plugin.     */    supportsCoinType(coinType: number): boolean;    /**     *  Resolves to the encoded %%address%% for %%coinType%%.     */    encodeAddress(coinType: number, address: string): Promise<string>;    /**     *  Resolves to the decoded %%data%% for %%coinType%%.     */    decodeAddress(coinType: number, data: BytesLike): Promise<string>;}/** *  A **BasicMulticoinProviderPlugin** provides service for common *  coin types, which do not require additional libraries to encode or *  decode. */export declare class BasicMulticoinProviderPlugin extends MulticoinProviderPlugin {    /**     *  Creates a new **BasicMulticoinProviderPlugin**.     */    constructor();}/** *  A connected object to a resolved ENS name resolver, which can be *  used to query additional details. */export declare class EnsResolver {    #private;    /**     *  The connected provider.     */    provider: AbstractProvider;    /**     *  The address of the resolver.     */    address: string;    /**     *  The name this resolver was resolved against.     */    name: string;    constructor(provider: AbstractProvider, address: string, name: string);    /**     *  Resolves to true if the resolver supports wildcard resolution.     */    supportsWildcard(): Promise<boolean>;    /**     *  Resolves to the address for %%coinType%% or null if the     *  provided %%coinType%% has not been configured.     */    getAddress(coinType?: number): Promise<null | string>;    /**     *  Resolves to the EIP-634 text record for %%key%%, or ``null``     *  if unconfigured.     */    getText(key: string): Promise<null | string>;    /**     *  Rsolves to the content-hash or ``null`` if unconfigured.     */    getContentHash(): Promise<null | string>;    /**     *  Resolves to the avatar url or ``null`` if the avatar is either     *  unconfigured or incorrectly configured (e.g. references an NFT     *  not owned by the address).     *     *  If diagnosing issues with configurations, the [[_getAvatar]]     *  method may be useful.     */    getAvatar(): Promise<null | string>;    /**     *  When resolving an avatar, there are many steps involved, such     *  fetching metadata and possibly validating ownership of an     *  NFT.     *     *  This method can be used to examine each step and the value it     *  was working from.     */    _getAvatar(): Promise<AvatarResult>;    static getEnsAddress(provider: Provider): Promise<string>;    /**     *  Resolve to the ENS resolver for %%name%% using %%provider%% or     *  ``null`` if unconfigured.     */    static fromName(provider: AbstractProvider, name: string): Promise<null | EnsResolver>;}//# sourceMappingURL=ens-resolver.d.ts.map
 |