{"version":3,"file":"createSplitV2Instruction.cjs","sources":["../../../src/instructions/createSplitV2Instruction.ts"],"sourcesContent":["import { AccountRole, Address, IAccountMeta, IInstruction } from \"@solana/kit\";\r\nimport { serialize } from \"borsh\";\r\n\r\nexport class createSplitV2Instruction {\r\n  tag: number;\r\n  name: string;\r\n  space: number;\r\n  referrerIdxOpt: number | null;\r\n\r\n  static schema = {\r\n    struct: {\r\n      tag: \"u8\",\r\n      name: \"string\",\r\n      space: \"u32\",\r\n      referrerIdxOpt: { option: \"u16\" },\r\n    },\r\n  };\r\n\r\n  constructor(obj: {\r\n    name: string;\r\n    space: number;\r\n    referrerIdxOpt: number | null;\r\n  }) {\r\n    this.tag = 20;\r\n    this.name = obj.name;\r\n    this.space = obj.space;\r\n    this.referrerIdxOpt = obj.referrerIdxOpt;\r\n  }\r\n\r\n  serialize(): Uint8Array {\r\n    return serialize(createSplitV2Instruction.schema, this);\r\n  }\r\n\r\n  getInstruction(\r\n    programAddress: Address,\r\n    namingServiceProgram: Address,\r\n    rootDomain: Address,\r\n    name: Address,\r\n    reverseLookup: Address,\r\n    systemProgram: Address,\r\n    centralState: Address,\r\n    buyer: Address,\r\n    domainOwner: Address,\r\n    feePayer: Address,\r\n    buyerTokenSource: Address,\r\n    pythFeedAccount: Address,\r\n    vault: Address,\r\n    splTokenProgram: Address,\r\n    rentSysvar: Address,\r\n    state: Address,\r\n    referrerAccountOpt?: Address\r\n  ): IInstruction {\r\n    const data = this.serialize();\r\n    const accounts: IAccountMeta[] = [\r\n      {\r\n        address: namingServiceProgram,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: rootDomain,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: name,\r\n        role: AccountRole.WRITABLE,\r\n      },\r\n      {\r\n        address: reverseLookup,\r\n        role: AccountRole.WRITABLE,\r\n      },\r\n      {\r\n        address: systemProgram,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: centralState,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: buyer,\r\n        role: AccountRole.WRITABLE_SIGNER,\r\n      },\r\n      {\r\n        address: domainOwner,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: feePayer,\r\n        role: AccountRole.WRITABLE_SIGNER,\r\n      },\r\n      {\r\n        address: buyerTokenSource,\r\n        role: AccountRole.WRITABLE,\r\n      },\r\n      {\r\n        address: pythFeedAccount,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: vault,\r\n        role: AccountRole.WRITABLE,\r\n      },\r\n      {\r\n        address: splTokenProgram,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: rentSysvar,\r\n        role: AccountRole.READONLY,\r\n      },\r\n      {\r\n        address: state,\r\n        role: AccountRole.READONLY,\r\n      },\r\n    ];\r\n\r\n    if (referrerAccountOpt) {\r\n      accounts.push({\r\n        address: referrerAccountOpt,\r\n        role: AccountRole.WRITABLE,\r\n      });\r\n    }\r\n\r\n    return {\r\n      programAddress,\r\n      accounts,\r\n      data,\r\n    };\r\n  }\r\n}\r\n"],"names":["createSplitV2Instruction","tag","name","space","referrerIdxOpt","static","struct","option","constructor","obj","this","serialize","schema","getInstruction","programAddress","namingServiceProgram","rootDomain","reverseLookup","systemProgram","centralState","buyer","domainOwner","feePayer","buyerTokenSource","pythFeedAccount","vault","splTokenProgram","rentSysvar","state","referrerAccountOpt","data","accounts","address","role","AccountRole","READONLY","WRITABLE","WRITABLE_SIGNER","push"],"mappings":"qGAGaA,EACXC,IACAC,KACAC,MACAC,eAEAC,cAAgB,CACdC,OAAQ,CACNL,IAAK,KACLC,KAAM,SACNC,MAAO,MACPC,eAAgB,CAAEG,OAAQ,SAI9B,WAAAC,CAAYC,GAKVC,KAAKT,IAAM,GACXS,KAAKR,KAAOO,EAAIP,KAChBQ,KAAKP,MAAQM,EAAIN,MACjBO,KAAKN,eAAiBK,EAAIL,eAG5B,SAAAO,GACE,OAAOA,YAAUX,EAAyBY,OAAQF,MAGpD,cAAAG,CACEC,EACAC,EACAC,EACAd,EACAe,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAOpB,KAAKC,YACZoB,EAA2B,CAC/B,CACEC,QAASjB,EACTkB,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAAShB,EACTiB,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAAS9B,EACT+B,KAAMC,EAAWA,YAACE,UAEpB,CACEJ,QAASf,EACTgB,KAAMC,EAAWA,YAACE,UAEpB,CACEJ,QAASd,EACTe,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAASb,EACTc,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAASZ,EACTa,KAAMC,EAAWA,YAACG,iBAEpB,CACEL,QAASX,EACTY,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAASV,EACTW,KAAMC,EAAWA,YAACG,iBAEpB,CACEL,QAAST,EACTU,KAAMC,EAAWA,YAACE,UAEpB,CACEJ,QAASR,EACTS,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAASP,EACTQ,KAAMC,EAAWA,YAACE,UAEpB,CACEJ,QAASN,EACTO,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAASL,EACTM,KAAMC,EAAWA,YAACC,UAEpB,CACEH,QAASJ,EACTK,KAAMC,EAAWA,YAACC,WAWtB,OAPIN,GACFE,EAASO,KAAK,CACZN,QAASH,EACTI,KAAMC,EAAWA,YAACE,WAIf,CACLtB,iBACAiB,WACAD"}