{"version":3,"file":"plugin.mjs","sources":["../../../../src/plugins/riskEngineModule/plugin.ts"],"sourcesContent":["import { PROGRAM_ID } from '@convergence-rfq/risk-engine';\n\nimport { ConvergencePlugin, Program } from '../../types';\nimport type { Convergence } from '../../Convergence';\nimport { ProgramClient } from '../programModule';\nimport { RiskEngineClient } from './RiskEngineClient';\nimport {\n  calculateCollateralForConfirmationOperation,\n  calculateCollateralForConfirmationOperationHandler,\n  calculateCollateralForResponseOperation,\n  calculateCollateralForResponseOperationHandler,\n  calculateCollateralForRfqOperation,\n  calculateCollateralForRfqOperationHandler,\n} from './operations';\n\n/** @group Plugins */\nexport const riskEngineModule = (): ConvergencePlugin => ({\n  install(convergence: Convergence) {\n    const riskEngineProgram = {\n      name: 'RiskEngineProgram',\n      address: PROGRAM_ID,\n    };\n    convergence.programs().register(riskEngineProgram);\n\n    convergence.programs().getRiskEngine = function (\n      this: ProgramClient,\n      programs?: Program[]\n    ) {\n      return this.get(riskEngineProgram.name, programs);\n    };\n\n    const op = convergence.operations();\n    op.register(\n      calculateCollateralForRfqOperation,\n      calculateCollateralForRfqOperationHandler\n    );\n    op.register(\n      calculateCollateralForResponseOperation,\n      calculateCollateralForResponseOperationHandler\n    );\n    op.register(\n      calculateCollateralForConfirmationOperation,\n      calculateCollateralForConfirmationOperationHandler\n    );\n\n    convergence.riskEngine = function () {\n      return new RiskEngineClient(this);\n    };\n  },\n});\n\ndeclare module '../../Convergence' {\n  interface Convergence {\n    riskEngine(): RiskEngineClient;\n  }\n}\n\ndeclare module '../programModule/ProgramClient' {\n  interface ProgramClient {\n    getRiskEngine(programs?: Program[]): Program;\n  }\n}\n"],"names":["riskEngineModule","install","convergence","riskEngineProgram","name","address","PROGRAM_ID","programs","register","getRiskEngine","get","op","operations","calculateCollateralForRfqOperation","calculateCollateralForRfqOperationHandler","calculateCollateralForResponseOperation","calculateCollateralForResponseOperationHandler","calculateCollateralForConfirmationOperation","calculateCollateralForConfirmationOperationHandler","riskEngine","RiskEngineClient"],"mappings":";;;;;;AAeA;AACaA,IAAAA,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAA;EAAA,OAA6B;IACxDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,WAAwB,EAAE;AAChC,MAAA,IAAMC,iBAAiB,GAAG;AACxBC,QAAAA,IAAI,EAAE,mBAAmB;AACzBC,QAAAA,OAAO,EAAEC,UAAAA;OACV,CAAA;MACDJ,WAAW,CAACK,QAAQ,EAAE,CAACC,QAAQ,CAACL,iBAAiB,CAAC,CAAA;MAElDD,WAAW,CAACK,QAAQ,EAAE,CAACE,aAAa,GAAG,UAErCF,QAAoB,EACpB;QACA,OAAO,IAAI,CAACG,GAAG,CAACP,iBAAiB,CAACC,IAAI,EAAEG,QAAQ,CAAC,CAAA;OAClD,CAAA;AAED,MAAA,IAAMI,EAAE,GAAGT,WAAW,CAACU,UAAU,EAAE,CAAA;AACnCD,MAAAA,EAAE,CAACH,QAAQ,CACTK,kCAAkC,EAClCC,yCACF,CAAC,CAAA;AACDH,MAAAA,EAAE,CAACH,QAAQ,CACTO,uCAAuC,EACvCC,8CACF,CAAC,CAAA;AACDL,MAAAA,EAAE,CAACH,QAAQ,CACTS,2CAA2C,EAC3CC,kDACF,CAAC,CAAA;MAEDhB,WAAW,CAACiB,UAAU,GAAG,YAAY;AACnC,QAAA,OAAO,IAAIC,gBAAgB,CAAC,IAAI,CAAC,CAAA;OAClC,CAAA;AACH,KAAA;GACD,CAAA;AAAA;;;;"}