{"version":3,"file":"reverseLookup.mjs","sources":["../../../src/utils/reverseLookup.ts"],"sourcesContent":["import { Address, GetAccountInfoApi, Rpc } from \"@solana/kit\";\r\n\r\nimport { NoAccountDataError } from \"../errors\";\r\nimport { RegistryState } from \"../states/registry\";\r\nimport { deserializeReverse } from \"./deserializers/deserializeReverse\";\r\nimport { getReverseAddressFromDomainAddress } from \"./getReverseAddressFromDomainAddress\";\r\n\r\n/**\r\n * Parameters for reverse lookup.\r\n *\r\n * @example\r\n * ```ts\r\n * const params: ReverseLookupParams = { rpc, domainAddress };\r\n * ```\r\n */\r\nexport interface ReverseLookupParams {\r\n  /** RPC client. */\r\n  rpc: Rpc<GetAccountInfoApi>;\r\n  /** Domain account address. */\r\n  domainAddress: Address;\r\n  /** Parent domain address for a subdomain. */\r\n  parentAddress?: Address;\r\n}\r\n\r\n/**\r\n * Performs a reverse lookup for a domain address.\r\n *\r\n * @param params Reverse lookup parameters\r\n * @param params.rpc RPC client implementing account lookup\r\n * @param params.domainAddress Domain address to reverse look up\r\n * @param params.parentAddress Optional parent domain address for subdomain reverse lookups\r\n * @returns Human-readable domain name.\r\n * @throws NoAccountDataError If the registry data is empty.\r\n *\r\n * @example\r\n * ```ts\r\n * const name = await reverseLookup({ rpc, domainAddress });\r\n * ```\r\n */\r\nexport async function reverseLookup({\r\n  rpc,\r\n  domainAddress,\r\n  parentAddress,\r\n}: ReverseLookupParams): Promise<string> {\r\n  const reverseAddress = await getReverseAddressFromDomainAddress({\r\n    domainAddress,\r\n    parentAddress,\r\n  });\r\n\r\n  const registry = await RegistryState.retrieve(rpc, reverseAddress);\r\n  if (!registry.data) {\r\n    throw new NoAccountDataError(\"The registry data is empty\");\r\n  }\r\n\r\n  return deserializeReverse({\r\n    data: registry.data,\r\n    trimFirstNullByte: !!parentAddress,\r\n  });\r\n}\r\n"],"names":[],"mappings":";;;;;AAwBA;;;;;;;;;;;;;;AAcG;AACI,eAAe,aAAa,CAAC,EAClC,GAAG,EACH,aAAa,EACb,aAAa,GACO,EAAA;AACpB,IAAA,MAAM,cAAc,GAAG,MAAM,kCAAkC,CAAC;QAC9D,aAAa;QACb,aAAa;AACd,KAAA,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;AAClE,IAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClB,QAAA,MAAM,IAAI,kBAAkB,CAAC,4BAA4B,CAAC;;AAG5D,IAAA,OAAO,kBAAkB,CAAC;QACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,iBAAiB,EAAE,CAAC,CAAC,aAAa;AACnC,KAAA,CAAC;AACJ;;;;"}