{"version":3,"file":"burnDomain.cjs","sources":["../../../src/bindings/burnDomain.ts"],"sourcesContent":["import { Address, IInstruction, getProgramDerivedAddress } from \"@solana/kit\";\r\n\r\nimport { addressCodec } from \"../codecs\";\r\nimport {\r\n  NAME_PROGRAM_ADDRESS,\r\n  REGISTRY_PROGRAM_ADDRESS,\r\n  REVERSE_LOOKUP_CLASS,\r\n  SYSTEM_PROGRAM_ADDRESS,\r\n} from \"../constants/addresses\";\r\nimport { getDomainAddress } from \"../domain/getDomainAddress\";\r\nimport { burnDomainInstruction } from \"../instructions/burnDomainInstruction\";\r\nimport { getReverseAddress } from \"../utils/getReverseAddress\";\r\n\r\ninterface BurnDomainParams {\r\n  domain: string;\r\n  owner: Address;\r\n  refundAddress: Address;\r\n}\r\n\r\n/**\r\n * Generates an instruction to burn a domain.\r\n *\r\n * @param params - An object containing the following properties:\r\n *   - `domain`: The domain name to be burned.\r\n *   - `owner`: The address of the current owner of the domain.\r\n *   - `refundAddress`: The address to which rent will be refunded.\r\n * @returns A promise which resolves to the burn domain instruction.\r\n */\r\nexport const burnDomain = async ({\r\n  domain,\r\n  owner,\r\n  refundAddress,\r\n}: BurnDomainParams): Promise<IInstruction> => {\r\n  const { domainAddress } = await getDomainAddress({ domain });\r\n  const encoded = addressCodec.encode(domainAddress);\r\n\r\n  const [pda] = await getProgramDerivedAddress({\r\n    programAddress: REGISTRY_PROGRAM_ADDRESS,\r\n    seeds: [encoded],\r\n  });\r\n\r\n  const [resellingPda] = await getProgramDerivedAddress({\r\n    programAddress: REGISTRY_PROGRAM_ADDRESS,\r\n    seeds: [encoded, Uint8Array.from([1, 1])],\r\n  });\r\n\r\n  const reverseAddress = await getReverseAddress(domain);\r\n\r\n  const ix = new burnDomainInstruction().getInstruction(\r\n    REGISTRY_PROGRAM_ADDRESS,\r\n    NAME_PROGRAM_ADDRESS,\r\n    SYSTEM_PROGRAM_ADDRESS,\r\n    domainAddress,\r\n    reverseAddress,\r\n    resellingPda,\r\n    pda,\r\n    REVERSE_LOOKUP_CLASS,\r\n    owner,\r\n    refundAddress\r\n  );\r\n\r\n  return ix;\r\n};\r\n"],"names":["async","domain","owner","refundAddress","domainAddress","getDomainAddress","encoded","addressCodec","encode","pda","getProgramDerivedAddress","programAddress","REGISTRY_PROGRAM_ADDRESS","seeds","resellingPda","Uint8Array","from","reverseAddress","getReverseAddress","burnDomainInstruction","getInstruction","NAME_PROGRAM_ADDRESS","SYSTEM_PROGRAM_ADDRESS","REVERSE_LOOKUP_CLASS"],"mappings":"+QA4B0BA,OACxBC,SACAC,QACAC,oBAEA,MAAMC,cAAEA,SAAwBC,EAAAA,iBAAiB,CAAEJ,WAC7CK,EAAUC,EAAAA,aAAaC,OAAOJ,IAE7BK,SAAaC,2BAAyB,CAC3CC,eAAgBC,EAAwBA,yBACxCC,MAAO,CAACP,MAGHQ,SAAsBJ,2BAAyB,CACpDC,eAAgBC,EAAwBA,yBACxCC,MAAO,CAACP,EAASS,WAAWC,KAAK,CAAC,EAAG,OAGjCC,QAAuBC,EAAiBA,kBAACjB,GAe/C,OAbW,IAAIkB,EAAqBA,uBAAGC,eACrCR,EAAAA,yBACAS,EAAAA,qBACAC,EAAAA,uBACAlB,EACAa,EACAH,EACAL,EACAc,EAAAA,qBACArB,EACAC,EAGO"}