{"version":3,"file":"plugin.cjs","sources":["../../../../src/plugins/printTradeModule/plugin.ts"],"sourcesContent":["import {\n  Leg as SolitaLeg,\n  QuoteAsset as SolitaQuoteAsset,\n} from '@convergence-rfq/rfq';\nimport { PrintTrade, PrintTradeParser } from './types';\nimport type { Convergence } from '@/Convergence';\nimport { ConvergencePlugin, PublicKey } from '@/types';\n\n/** @group Plugins */\nexport const printTradeModule = (): ConvergencePlugin => ({\n  install(cvg: Convergence) {\n    const printTradeParsers = new Map<String, PrintTradeParser>();\n\n    cvg.addPrintTradeParser = function (\n      printTradeProviderProgramId: PublicKey,\n      factory: PrintTradeParser\n    ) {\n      if (printTradeParsers.has(printTradeProviderProgramId.toBase58())) {\n        throw new Error(\n          `Print trade provider for program ${printTradeProviderProgramId} is already added!`\n        );\n      }\n\n      printTradeParsers.set(printTradeProviderProgramId.toBase58(), factory);\n    };\n\n    cvg.parsePrintTrade = function (\n      printTradeProviderProgramId: PublicKey,\n      legs: SolitaLeg[],\n      quoteAsset: SolitaQuoteAsset\n    ) {\n      const factory = printTradeParsers.get(\n        printTradeProviderProgramId.toBase58()\n      );\n\n      if (!factory) {\n        throw new Error(\n          `Missing print trade provider for program ${printTradeProviderProgramId}`\n        );\n      }\n\n      return factory.parsePrintTrade(cvg, legs, quoteAsset);\n    };\n  },\n});\n\ndeclare module '../../Convergence' {\n  interface Convergence {\n    addPrintTradeParser(\n      printTradeProviderProgramId: PublicKey,\n      factory: PrintTradeParser\n    ): void;\n    parsePrintTrade(\n      printTradeProviderProgramId: PublicKey,\n      legs: SolitaLeg[],\n      quoteAsset: SolitaQuoteAsset\n    ): PrintTrade;\n  }\n}\n"],"names":["printTradeModule","install","cvg","printTradeParsers","Map","addPrintTradeParser","printTradeProviderProgramId","factory","has","toBase58","Error","concat","set","parsePrintTrade","legs","quoteAsset","get"],"mappings":";;;;AAQA;AACaA,IAAAA,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAA;EAAA,OAA6B;IACxDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,GAAgB,EAAE;AACxB,MAAA,IAAMC,iBAAiB,GAAG,IAAIC,GAAG,EAA4B,CAAA;AAE7DF,MAAAA,GAAG,CAACG,mBAAmB,GAAG,UACxBC,2BAAsC,EACtCC,OAAyB,EACzB;QACA,IAAIJ,iBAAiB,CAACK,GAAG,CAACF,2BAA2B,CAACG,QAAQ,EAAE,CAAC,EAAE;AACjE,UAAA,MAAM,IAAIC,KAAK,CAAA,mCAAA,CAAAC,MAAA,CACuBL,2BAA2B,uBACjE,CAAC,CAAA;AACH,SAAA;QAEAH,iBAAiB,CAACS,GAAG,CAACN,2BAA2B,CAACG,QAAQ,EAAE,EAAEF,OAAO,CAAC,CAAA;OACvE,CAAA;MAEDL,GAAG,CAACW,eAAe,GAAG,UACpBP,2BAAsC,EACtCQ,IAAiB,EACjBC,UAA4B,EAC5B;QACA,IAAMR,OAAO,GAAGJ,iBAAiB,CAACa,GAAG,CACnCV,2BAA2B,CAACG,QAAQ,EACtC,CAAC,CAAA;QAED,IAAI,CAACF,OAAO,EAAE;AACZ,UAAA,MAAM,IAAIG,KAAK,CAAA,2CAAA,CAAAC,MAAA,CAC+BL,2BAA2B,CACzE,CAAC,CAAA;AACH,SAAA;QAEA,OAAOC,OAAO,CAACM,eAAe,CAACX,GAAG,EAAEY,IAAI,EAAEC,UAAU,CAAC,CAAA;OACtD,CAAA;AACH,KAAA;GACD,CAAA;AAAA;;;;"}