UNPKG

@metamask/snaps-sdk

Version:

A library containing the core functionality for building MetaMask Snaps

81 lines 2.51 kB
import type { CaipChainId, NonEmptyArray } from "@metamask/utils"; type BaseOnNameLookupArgs = { chainId: CaipChainId; }; /** * The arguments for a domain lookup. * * @property domain - The human-readable domain name that is to be resolved. */ export type DomainLookupArgs = BaseOnNameLookupArgs & { domain: string; address?: never; }; /** * The arguments for an address lookup. * * @property address - The address that is to be resolved. */ export type AddressLookupArgs = BaseOnNameLookupArgs & { address: string; domain?: never; }; /** * The address resolution object. * * @property protocol - The protocol that resolved the domain. * @property resolvedAddress - The resolved address. */ export type AddressResolution = { protocol: string; resolvedAddress: string; domainName: string; }; /** * The domain resolution object. * * @property protocol - The protocol that resolved the address. * @property resolvedDomain - The resolved domain. */ export type DomainResolution = { protocol: string; resolvedDomain: string; }; /** * The result of a domain lookup. * * @property resolvedAddress - The resolved address. */ export type DomainLookupResult = { resolvedAddresses: NonEmptyArray<AddressResolution>; resolvedDomains?: never; }; /** * The result of an address lookup. * * @property resolvedDomain - The resolved domain name. */ export type AddressLookupResult = { resolvedDomains: NonEmptyArray<DomainResolution>; resolvedAddresses?: never; }; /** * The `onNameLookup` handler, which is called when MetaMask needs to resolve an * address or domain. * * Note that using this handler requires the `endowment:name-lookup` permission. * * @param args - The request arguments. * @param args.chainId - The CAIP-2 {@link CaipChainId} of the network the * transaction is being submitted to. * @param args.domain - The human-readable address that is to be resolved. This * is mutually exclusive with `args.address`. * @param args.address - The address that is to be resolved. This is mutually * exclusive with `args.domain`. * @returns The resolved domain or address from the lookup. Must be either * {@link AddressLookupResult}, {@link DomainLookupResult}, or `null` if the * address or domain could not be resolved. */ export type OnNameLookupHandler = (args: AddressLookupArgs | DomainLookupArgs) => Promise<AddressLookupResult | DomainLookupResult | null>; export {}; //# sourceMappingURL=name-lookup.d.cts.map