{"version":3,"file":"deleteRecord.cjs","sources":["../../../src/bindings/deleteRecord.ts"],"sourcesContent":["import { Address, IInstruction } from \"@solana/kit\";\r\n\r\nimport {\r\n  CENTRAL_STATE_DOMAIN_RECORDS,\r\n  NAME_PROGRAM_ADDRESS,\r\n  RECORDS_PROGRAM_ADDRESS,\r\n  SYSTEM_PROGRAM_ADDRESS,\r\n} from \"../constants/addresses\";\r\nimport { getDomainAddress } from \"../domain/getDomainAddress\";\r\nimport { InvalidParentError } from \"../errors\";\r\nimport { deleteRecordInstruction } from \"../instructions/deleteRecordInstruction\";\r\nimport { Record, RecordVersion } from \"../types/record\";\r\n\r\ninterface DeleteRecordParams {\r\n  domain: string;\r\n  record: Record;\r\n  owner: Address;\r\n  payer: Address;\r\n}\r\n\r\n/**\r\n * Deletes a record under the specified domain and refunds the rent to the payer.\r\n *\r\n * @param params - An object containing the following properties:\r\n *   - `domain`: The domain under which the record resides.\r\n *   - `record`: An enumeration representing the type of record to be deleted.\r\n *   - `owner`: The address of the domain's owner.\r\n *   - `payer`: The address funding the record deletion.\r\n * @returns A promise which resolves to the delete record instruction.\r\n */\r\nexport const deleteRecord = async ({\r\n  domain,\r\n  record,\r\n  owner,\r\n  payer,\r\n}: DeleteRecordParams): Promise<IInstruction> => {\r\n  let { domainAddress, parentAddress, isSub } = await getDomainAddress({\r\n    domain: `${record}.${domain}`,\r\n    record: RecordVersion.V2,\r\n  });\r\n\r\n  if (isSub) {\r\n    parentAddress = (await getDomainAddress({ domain })).domainAddress;\r\n  }\r\n\r\n  if (!parentAddress) {\r\n    throw new InvalidParentError(\"Parent could not be found\");\r\n  }\r\n\r\n  const ix = new deleteRecordInstruction().getInstruction(\r\n    RECORDS_PROGRAM_ADDRESS,\r\n    SYSTEM_PROGRAM_ADDRESS,\r\n    NAME_PROGRAM_ADDRESS,\r\n    payer,\r\n    domainAddress,\r\n    parentAddress,\r\n    owner,\r\n    CENTRAL_STATE_DOMAIN_RECORDS\r\n  );\r\n\r\n  return ix;\r\n};\r\n"],"names":["async","domain","record","owner","payer","domainAddress","parentAddress","isSub","getDomainAddress","RecordVersion","V2","InvalidParentError","deleteRecordInstruction","getInstruction","RECORDS_PROGRAM_ADDRESS","SYSTEM_PROGRAM_ADDRESS","NAME_PROGRAM_ADDRESS","CENTRAL_STATE_DOMAIN_RECORDS"],"mappings":"+OA8B4BA,OAC1BC,SAAMC,OACNA,EACAC,QACAC,YAEA,IAAIC,cAAEA,EAAaC,cAAEA,EAAaC,MAAEA,SAAgBC,EAAAA,iBAAiB,CACnEP,OAAQ,GAAGC,KAAUD,IACrBC,OAAQO,EAAaA,cAACC,KAOxB,GAJIH,IACFD,SAAuBE,EAAAA,iBAAiB,CAAEP,YAAWI,gBAGlDC,EACH,MAAM,IAAIK,EAAkBA,mBAAC,6BAc/B,OAXW,IAAIC,EAAAA,yBAA0BC,eACvCC,EAAAA,wBACAC,EAAAA,uBACAC,EAAoBA,qBACpBZ,EACAC,EACAC,EACAH,EACAc,EAAAA,6BAGO"}