{"version":3,"file":"calculateCollateralForRfq.mjs","sources":["../../../../../src/plugins/riskEngineModule/operations/calculateCollateralForRfq.ts"],"sourcesContent":["import {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport { Convergence } from '../../../Convergence';\nimport { LegInstrument } from '../../../plugins/instrumentModule';\nimport { FixedSize, OrderType } from '../../../plugins/rfqModule';\nimport { PrintTradeLeg } from '@/plugins/printTradeModule';\n\nconst Key = 'CalculateCollateralForRfqOperation' as const;\n\n/**\n * Calculates the required collateral for a taker to create a particular RFQ\n *\n * ```ts\n * await cvg.riskEngine().calculateCollateralForRfq({\n      legs,\n      quoteAsset,\n      size: {\n        type: 'fixed',\n        amount: 2.1,\n      },\n      orderType: 'two-way',\n      settlementPeriod: 60, // 1 minute\n    });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const calculateCollateralForRfqOperation =\n  useOperation<CalculateCollateralForRfqOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type CalculateCollateralForRfqOperation = Operation<\n  typeof Key,\n  CalculateCollateralForRfqInput,\n  CalculateCollateralForRfqOutput\n>;\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type CalculateCollateralForRfqOutput = {\n  /** Collateral required as a floating point number */\n  requiredCollateral: number;\n};\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type CalculateCollateralForRfqInput = {\n  /**\n   * Size restriction of the RFQ being created.\n   */\n  size: FixedSize;\n\n  /**\n   * Order type of the RFQ being created.\n   */\n  orderType: OrderType;\n\n  /**\n   * Legs of the RFQ being created.\n   */\n  legs: LegInstrument[] | PrintTradeLeg[];\n\n  /**\n   * Settlement period of the RFQ being created in seconds.\n   */\n  settlementPeriod: number;\n};\n\nexport type CalculateCollateralForRfqBuilderParams =\n  CalculateCollateralForRfqInput;\n\nexport const calculateCollateralForRfqOperationHandler: OperationHandler<CalculateCollateralForRfqOperation> =\n  {\n    handle: async (\n      _operation: CalculateCollateralForRfqOperation,\n      _convergence: Convergence,\n      _scope: OperationScope\n    ): Promise<CalculateCollateralForRfqOutput> => {\n      return { requiredCollateral: 0 };\n    },\n  };\n"],"names":["Key","calculateCollateralForRfqOperation","useOperation","calculateCollateralForRfqOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_operation","_convergence","_scope","wrap","_callee$","_context","prev","next","abrupt","requiredCollateral","stop","_x","_x2","_x3","apply","arguments"],"mappings":";;;AAWA,IAAMA,GAAG,GAAG,oCAA6C,CAAA;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,kCAAkC,GAC7CC,YAAY,CAAqCF,GAAG,EAAC;;AAEvD;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AA0BO,IAAMG,yCAA+F,GAC1G;EACEC,MAAM,EAAA,YAAA;AAAA,IAAA,IAAAC,OAAA,GAAAC,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAE,SAAAC,OACNC,CAAAA,UAA8C,EAC9CC,YAAyB,EACzBC,MAAsB,EAAA;AAAA,MAAA,OAAAL,mBAAA,EAAA,CAAAM,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,CAEf,QAAA,EAAA;AAAEC,cAAAA,kBAAkB,EAAE,CAAA;aAAG,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAJ,QAAA,CAAAK,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAX,OAAA,CAAA,CAAA;KACjC,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAL,MAAAiB,CAAAA,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAlB,OAAA,CAAAmB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAArB,MAAA,CAAA;AAAA,GAAA,EAAA;AACH;;;;"}