{"version":3,"file":"updateNameRegistry.mjs","sources":["../../../src/bindings/updateNameRegistry.ts"],"sourcesContent":["import { Address, GetAccountInfoApi, Instruction, Rpc } from \"@solana/kit\";\r\n\r\nimport { NAME_PROGRAM_ADDRESS } from \"../constants/addresses\";\r\nimport { UpdateNameRegistryInstruction } from \"../instructions/updateNameRegistryInstruction\";\r\nimport { RegistryState } from \"../states/registry\";\r\nimport { _deriveAddress } from \"../utils/deriveAddress\";\r\n\r\n/**\r\n * Input for updating bytes in a raw SNS name-registry account.\r\n *\r\n * @example\r\n * ```ts\r\n * const params: UpdateNameRegistryParams = {\r\n *   rpc,\r\n *   domain: \"example\",\r\n *   offset: 0,\r\n *   data: new TextEncoder().encode(\"data\"),\r\n * };\r\n * ```\r\n */\r\nexport interface UpdateNameRegistryParams {\r\n  /** RPC client used to retrieve the registry owner. */\r\n  rpc: Rpc<GetAccountInfoApi>;\r\n\r\n  /** Raw registry seed/name to update. */\r\n  domain: string;\r\n\r\n  /** Byte offset where the update begins. */\r\n  offset: number;\r\n\r\n  /** Bytes to write to the registry. */\r\n  data: Uint8Array;\r\n\r\n  /** Optional class address for the registry. */\r\n  classAddress?: Address;\r\n  /**\r\n   * Optional parent name-account address.\r\n   */\r\n  parentAddress?: Address;\r\n}\r\n\r\n/**\r\n * Updates the data of a raw SPL Name Registry account.\r\n *\r\n * This low-level helper accepts a raw registry seed/name as `domain` and does\r\n * not parse `.sns` or `.sol` suffixes.\r\n *\r\n * @param params Update parameters\r\n * @param params.rpc RPC client implementing account lookup\r\n * @param params.domain Raw registry seed/name whose account will be updated\r\n * @param params.offset Offset in bytes where the update should begin\r\n * @param params.data Data to write to the registry\r\n * @param params.classAddress Optional class address for the registry\r\n * @param params.parentAddress Optional parent registry address\r\n * @returns Transaction instruction.\r\n *\r\n * @example\r\n * ```ts\r\n * const instruction = await updateNameRegistry({\r\n *   rpc,\r\n *   domain: \"example\",\r\n *   offset: 0,\r\n *   data: new TextEncoder().encode(\"data\"),\r\n * });\r\n * ```\r\n */\r\nexport async function updateNameRegistry({\r\n  rpc,\r\n  domain,\r\n  offset,\r\n  data,\r\n  classAddress,\r\n  parentAddress,\r\n}: UpdateNameRegistryParams): Promise<Instruction> {\r\n  const domainAddress = await _deriveAddress(\r\n    domain,\r\n    parentAddress,\r\n    classAddress\r\n  );\r\n\r\n  const signer =\r\n    classAddress || (await RegistryState.retrieve(rpc, domainAddress)).owner;\r\n\r\n  const ix = new UpdateNameRegistryInstruction({\r\n    offset,\r\n    inputData: data,\r\n  }).getInstruction(NAME_PROGRAM_ADDRESS, domainAddress, signer);\r\n\r\n  return ix;\r\n}\r\n"],"names":[],"mappings":";;;;;AAyCA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,eAAe,kBAAkB,CAAC,EACvC,GAAG,EACH,MAAM,EACN,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,aAAa,GACY,EAAA;IACzB,MAAM,aAAa,GAAG,MAAM,cAAc,CACxC,MAAM,EACN,aAAa,EACb,YAAY,CACb;AAED,IAAA,MAAM,MAAM,GACV,YAAY,IAAI,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK;AAE1E,IAAA,MAAM,EAAE,GAAG,IAAI,6BAA6B,CAAC;QAC3C,MAAM;AACN,QAAA,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC,cAAc,CAAC,oBAAoB,EAAE,aAAa,EAAE,MAAM,CAAC;AAE9D,IAAA,OAAO,EAAE;AACX;;;;"}