{"version":3,"file":"ProtocolPdasClient.cjs","sources":["../../../../src/plugins/protocolModule/ProtocolPdasClient.ts"],"sourcesContent":["import { Buffer } from 'buffer';\n\nimport type { Convergence } from '../../Convergence';\nimport { Pda, Program, PublicKey } from '../../types';\n\nfunction toLittleEndian(value: number, bytes: number) {\n  const buf = Buffer.allocUnsafe(bytes);\n  buf.writeUIntLE(value, 0, bytes);\n  return buf;\n}\n\n/**\n * This client allows you to build PDAs related to the protocol module.\n *\n * @see {@link ProtocolClient}\n * @group Module Pdas\n */\nexport class ProtocolPdasClient {\n  constructor(protected readonly convergence: Convergence) {}\n\n  /** Finds the Protocol PDA. */\n  protocol(): Pda {\n    const programId = this.programId();\n\n    return Pda.find(programId, [Buffer.from('protocol', 'utf8')]);\n  }\n\n  /** Finds the PDA of a given base asset. */\n  baseAsset({ index }: BaseAssetInput): Pda {\n    const programId = this.programId();\n    return Pda.find(programId, [\n      Buffer.from('base_asset', 'utf8'),\n      toLittleEndian(index, 2),\n    ]);\n  }\n\n  /** Finds the PDA of a given mint. */\n  mintInfo({ mint }: MintInfoInput): Pda {\n    const programId = this.programId();\n    return Pda.find(programId, [\n      Buffer.from('mint_info', 'utf8'),\n      mint.toBuffer(),\n    ]);\n  }\n\n  private programId(programs?: Program[]) {\n    return this.convergence.programs().getRfq(programs).address;\n  }\n}\n\ntype BaseAssetInput = {\n  /** The base asset index. */\n  index: number;\n};\n\ntype MintInfoInput = {\n  /** The address of the mint account. */\n  mint: PublicKey;\n\n  /** An optional set of programs that override the registered ones. */\n  programs?: Program[];\n};\n"],"names":["toLittleEndian","value","bytes","buf","Buffer","allocUnsafe","writeUIntLE","ProtocolPdasClient","convergence","_classCallCheck","_createClass","key","protocol","programId","Pda","find","from","baseAsset","_ref","index","mintInfo","_ref2","mint","toBuffer","programs","getRfq","address"],"mappings":";;;;;;;;AAKA,SAASA,cAAcA,CAACC,KAAa,EAAEC,KAAa,EAAE;AACpD,EAAA,IAAMC,GAAG,GAAGC,aAAM,CAACC,WAAW,CAACH,KAAK,CAAC,CAAA;EACrCC,GAAG,CAACG,WAAW,CAACL,KAAK,EAAE,CAAC,EAAEC,KAAK,CAAC,CAAA;AAChC,EAAA,OAAOC,GAAG,CAAA;AACZ,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAaI,kBAAkB,gBAAA,YAAA;EAC7B,SAAAA,kBAAAA,CAA+BC,WAAwB,EAAE;AAAAC,IAAAA,wCAAA,OAAAF,kBAAA,CAAA,CAAA;IAAA,IAA1BC,CAAAA,WAAwB,GAAxBA,WAAwB,CAAA;AAAG,GAAA;;AAE1D;AAAAE,EAAAA,qCAAA,CAAAH,kBAAA,EAAA,CAAA;IAAAI,GAAA,EAAA,UAAA;IAAAV,KAAA,EACA,SAAAW,QAAAA,GAAgB;AACd,MAAA,IAAMC,SAAS,GAAG,IAAI,CAACA,SAAS,EAAE,CAAA;AAElC,MAAA,OAAOC,OAAG,CAACC,IAAI,CAACF,SAAS,EAAE,CAACT,aAAM,CAACY,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/D,KAAA;;AAEA;AAAA,GAAA,EAAA;IAAAL,GAAA,EAAA,WAAA;AAAAV,IAAAA,KAAA,EACA,SAAAgB,SAAAC,CAAAA,IAAA,EAA0C;AAAA,MAAA,IAA9BC,KAAK,GAAAD,IAAA,CAALC,KAAK,CAAA;AACf,MAAA,IAAMN,SAAS,GAAG,IAAI,CAACA,SAAS,EAAE,CAAA;MAClC,OAAOC,OAAG,CAACC,IAAI,CAACF,SAAS,EAAE,CACzBT,aAAM,CAACY,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EACjChB,cAAc,CAACmB,KAAK,EAAE,CAAC,CAAC,CACzB,CAAC,CAAA;AACJ,KAAA;;AAEA;AAAA,GAAA,EAAA;IAAAR,GAAA,EAAA,UAAA;AAAAV,IAAAA,KAAA,EACA,SAAAmB,QAAAC,CAAAA,KAAA,EAAuC;AAAA,MAAA,IAA5BC,IAAI,GAAAD,KAAA,CAAJC,IAAI,CAAA;AACb,MAAA,IAAMT,SAAS,GAAG,IAAI,CAACA,SAAS,EAAE,CAAA;MAClC,OAAOC,OAAG,CAACC,IAAI,CAACF,SAAS,EAAE,CACzBT,aAAM,CAACY,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAChCM,IAAI,CAACC,QAAQ,EAAE,CAChB,CAAC,CAAA;AACJ,KAAA;AAAC,GAAA,EAAA;IAAAZ,GAAA,EAAA,WAAA;AAAAV,IAAAA,KAAA,EAED,SAAAY,SAAkBW,CAAAA,QAAoB,EAAE;AACtC,MAAA,OAAO,IAAI,CAAChB,WAAW,CAACgB,QAAQ,EAAE,CAACC,MAAM,CAACD,QAAQ,CAAC,CAACE,OAAO,CAAA;AAC7D,KAAA;AAAC,GAAA,CAAA,CAAA,CAAA;AAAA,EAAA,OAAAnB,kBAAA,CAAA;AAAA,CAAA;;;;"}