{"version":3,"file":"reverseLookup.cjs","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\ninterface ReverseLookupParams {\r\n  rpc: Rpc<GetAccountInfoApi>;\r\n  domainAddress: Address;\r\n  parentAddress?: Address;\r\n}\r\n\r\n/**\r\n * Perform a reverse lookup for a given domain address.\r\n *\r\n * @param params - An object containing the following properties:\r\n *   - `rpc`: The RPC client to interact with the blockchain.\r\n *   - `address`: The domain address to perform the reverse lookup on.\r\n *   - `parentAddress`: (Optional) The parent domain address, if applicable.\r\n * @returns A promise that resolves to the human-readable domain name associated with the given address.\r\n * @throws {NoAccountDataError} If the registry data is empty.\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":["async","rpc","domainAddress","parentAddress","reverseAddress","getReverseAddressFromDomainAddress","registry","RegistryState","retrieve","data","NoAccountDataError","deserializeReverse","trimFirstNullByte"],"mappings":"gNAuBOA,gBAA6BC,IAClCA,EAAGC,cACHA,EAAaC,cACbA,IAEA,MAAMC,QAAuBC,qCAAmC,CAC9DH,gBACAC,kBAGIG,QAAiBC,EAAAA,cAAcC,SAASP,EAAKG,GACnD,IAAKE,EAASG,KACZ,MAAM,IAAIC,EAAkBA,mBAAC,8BAG/B,OAAOC,qBAAmB,CACxBF,KAAMH,EAASG,KACfG,oBAAqBT,GAEzB"}