{"version":3,"file":"getSnsDomainOwner.cjs","sources":["../../../src/domain/getSnsDomainOwner.ts"],"sourcesContent":["import {\r\n  GetAccountInfoApi,\r\n  GetTokenLargestAccountsApi,\r\n  Rpc,\r\n} from \"@solana/kit\";\r\n\r\nimport { getSnsNftOwner } from \"../nft/getSnsNftOwner\";\r\nimport { RegistryState } from \"../states/registry\";\r\nimport { getSnsDomainAddress } from \"./getSnsDomainAddress\";\r\n\r\ninterface GetSnsDomainOwnerParams {\r\n  rpc: Rpc<GetAccountInfoApi & GetTokenLargestAccountsApi>;\r\n  domain: string;\r\n}\r\n\r\n/**\r\n * Resolves the owner of a TLD-trimmed SNS domain without applying public\r\n * TLD-support or legacy `.sol` cutoff policy.\r\n *\r\n * This internal helper is intended for public read methods that have already\r\n * validated and trimmed the full domain name.\r\n *\r\n * @param params Owner retrieval parameters\r\n * @param params.rpc RPC client implementing account and token-largest-account APIs\r\n * @param params.domain TLD-trimmed SNS domain name\r\n * @returns The tokenized domain owner when present, otherwise the registry owner\r\n */\r\nexport const _getSnsDomainOwner = async ({\r\n  rpc,\r\n  domain,\r\n}: GetSnsDomainOwnerParams) => {\r\n  const { domainAddress } = await getSnsDomainAddress({ domain });\r\n  const [registry, nftOwner] = await Promise.all([\r\n    RegistryState.retrieve(rpc, domainAddress),\r\n    getSnsNftOwner({ rpc, domainAddress }),\r\n  ]);\r\n  return nftOwner || registry.owner;\r\n};\r\n"],"names":["getSnsDomainAddress","registry","RegistryState","getSnsNftOwner"],"mappings":";;;;;;;;AAeA;;;;;;;;;;;AAWG;AACI,MAAM,kBAAkB,GAAG,OAAO,EACvC,GAAG,EACH,MAAM,GACkB,KAAI;IAC5B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAMA,uCAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/D,MAAM,CAACC,UAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC7C,QAAAC,sBAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;AAC1C,QAAAC,6BAAc,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AACvC,KAAA,CAAC;AACF,IAAA,OAAO,QAAQ,IAAIF,UAAQ,CAAC,KAAK;AACnC;;;;"}