{"version":3,"file":"getRecordV2Address.mjs","sources":["../../../src/record/getRecordV2Address.ts"],"sourcesContent":["import { Address } from \"@solana/kit\";\r\n\r\nimport { CENTRAL_STATE_DOMAIN_RECORDS } from \"../constants/addresses\";\r\nimport { getSnsDomainAddress } from \"../domain/getSnsDomainAddress\";\r\nimport { Record } from \"../types/record\";\r\nimport { _deriveAddress } from \"../utils/deriveAddress\";\r\n\r\n/**\r\n * Parameters for deriving a V2 record address.\r\n *\r\n * @example\r\n * ```ts\r\n * const params: GetRecordV2AddressParams = { domain: \"example\", record: Record.Url };\r\n * ```\r\n */\r\nexport interface GetRecordV2AddressParams {\r\n  /** TLD-less domain name. */\r\n  domain: string;\r\n  /** Record type. */\r\n  record: Record;\r\n}\r\n\r\n/**\r\n * Derives the address of a V2 record account.\r\n *\r\n * @param params Record address derivation parameters\r\n * @param params.domain TLD-trimmed SNS domain name\r\n * @param params.record Record type\r\n * @returns The derived V2 record account address.\r\n *\r\n * @example\r\n * ```ts\r\n * const address = await getRecordV2Address({ domain: \"example\", record: Record.Url });\r\n * ```\r\n */\r\nexport const getRecordV2Address = async ({\r\n  domain,\r\n  record,\r\n}: GetRecordV2AddressParams): Promise<Address> => {\r\n  const { domainAddress } = await getSnsDomainAddress({ domain });\r\n\r\n  return await _deriveAddress(\r\n    `\\x02${record}`,\r\n    domainAddress,\r\n    CENTRAL_STATE_DOMAIN_RECORDS\r\n  );\r\n};\r\n"],"names":[],"mappings":";;;;AAsBA;;;;;;;;;;;;AAYG;AACI,MAAM,kBAAkB,GAAG,OAAO,EACvC,MAAM,EACN,MAAM,GACmB,KAAsB;IAC/C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/D,OAAO,MAAM,cAAc,CACzB,CAAO,IAAA,EAAA,MAAM,CAAE,CAAA,EACf,aAAa,EACb,4BAA4B,CAC7B;AACH;;;;"}