{"version":3,"sources":["../src/EngineExecuteClient.ts"],"sourcesContent":["import { EngineBaseClient, EngineClientOpts } from './EngineBaseClient';\nimport { EngineExecuteBuilder } from './EngineExecuteBuilder';\nimport {\n  EngineExecuteRequestParamsByType,\n  EnginePlaceIsolatedOrderResult,\n  EnginePlaceOrderResult,\n} from './types';\n\nexport class EngineExecuteClient extends EngineBaseClient {\n  readonly payloadBuilder: EngineExecuteBuilder;\n\n  constructor(opts: EngineClientOpts) {\n    super(opts);\n    this.payloadBuilder = new EngineExecuteBuilder(this);\n  }\n\n  async liquidateSubaccount(\n    params: EngineExecuteRequestParamsByType['liquidate_subaccount'],\n  ) {\n    return this.execute(\n      'liquidate_subaccount',\n      await this.payloadBuilder.buildLiquidateSubaccountPayload(params),\n    );\n  }\n\n  async withdrawCollateral(\n    params: EngineExecuteRequestParamsByType['withdraw_collateral'],\n  ) {\n    return this.execute(\n      'withdraw_collateral',\n      await this.payloadBuilder.buildWithdrawCollateralPayload(params),\n    );\n  }\n\n  async mintLp(params: EngineExecuteRequestParamsByType['mint_lp']) {\n    return this.execute(\n      'mint_lp',\n      await this.payloadBuilder.buildMintLpPayload(params),\n    );\n  }\n\n  async burnLp(params: EngineExecuteRequestParamsByType['burn_lp']) {\n    return this.execute(\n      'burn_lp',\n      await this.payloadBuilder.buildBurnLpPayload(params),\n    );\n  }\n\n  async placeOrder(\n    params: EngineExecuteRequestParamsByType['place_order'],\n  ): Promise<EnginePlaceOrderResult> {\n    const placeOrderPayload =\n      await this.payloadBuilder.buildPlaceOrderPayload(params);\n    return {\n      ...(await this.execute('place_order', placeOrderPayload.payload)),\n      orderParams: placeOrderPayload.orderParams,\n    };\n  }\n\n  async placeIsolatedOrder(\n    params: EngineExecuteRequestParamsByType['place_isolated_order'],\n  ): Promise<EnginePlaceIsolatedOrderResult> {\n    const placeOrderPayload =\n      await this.payloadBuilder.buildIsolatedPlaceOrderPayload(params);\n    return {\n      ...(await this.execute(\n        'place_isolated_order',\n        placeOrderPayload.payload,\n      )),\n      orderParams: placeOrderPayload.orderParams,\n    };\n  }\n\n  async cancelOrders(\n    params: EngineExecuteRequestParamsByType['cancel_orders'],\n  ) {\n    return this.execute(\n      'cancel_orders',\n      await this.payloadBuilder.buildCancelOrdersPayload(params),\n    );\n  }\n\n  async cancelAndPlace(\n    params: EngineExecuteRequestParamsByType['cancel_and_place'],\n  ) {\n    const cancelOrdersPayload =\n      await this.payloadBuilder.buildCancelOrdersPayload(params.cancelOrders);\n    const placeOrderPayload = await this.payloadBuilder.buildPlaceOrderPayload(\n      params.placeOrder,\n    );\n    return this.execute('cancel_and_place', {\n      cancel_tx: cancelOrdersPayload.tx,\n      cancel_signature: cancelOrdersPayload.signature,\n      place_order: placeOrderPayload.payload,\n    });\n  }\n\n  async cancelProductOrders(\n    params: EngineExecuteRequestParamsByType['cancel_product_orders'],\n  ) {\n    return this.execute(\n      'cancel_product_orders',\n      await this.payloadBuilder.buildCancelProductOrdersPayload(params),\n    );\n  }\n\n  async linkSigner(params: EngineExecuteRequestParamsByType['link_signer']) {\n    return this.execute(\n      'link_signer',\n      await this.payloadBuilder.buildLinkSignerPayload(params),\n    );\n  }\n\n  async transferQuote(\n    params: EngineExecuteRequestParamsByType['transfer_quote'],\n  ) {\n    return this.execute(\n      'transfer_quote',\n      await this.payloadBuilder.buildTransferQuotePayload(params),\n    );\n  }\n\n  async mintVlp(params: EngineExecuteRequestParamsByType['mint_vlp']) {\n    return this.execute(\n      'mint_vlp',\n      await this.payloadBuilder.buildMintVlpPayload(params),\n    );\n  }\n\n  async burnVlp(params: EngineExecuteRequestParamsByType['burn_vlp']) {\n    return this.execute(\n      'burn_vlp',\n      await this.payloadBuilder.buildBurnVlpPayload(params),\n    );\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAmD;AACnD,kCAAqC;AAO9B,IAAM,sBAAN,cAAkC,yCAAiB;AAAA,EAGxD,YAAY,MAAwB;AAClC,UAAM,IAAI;AACV,SAAK,iBAAiB,IAAI,iDAAqB,IAAI;AAAA,EACrD;AAAA,EAEA,MAAM,oBACJ,QACA;AACA,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,gCAAgC,MAAM;AAAA,IAClE;AAAA,EACF;AAAA,EAEA,MAAM,mBACJ,QACA;AACA,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,+BAA+B,MAAM;AAAA,IACjE;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,QAAqD;AAChE,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,mBAAmB,MAAM;AAAA,IACrD;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,QAAqD;AAChE,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,mBAAmB,MAAM;AAAA,IACrD;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,QACiC;AACjC,UAAM,oBACJ,MAAM,KAAK,eAAe,uBAAuB,MAAM;AACzD,WAAO;AAAA,MACL,GAAI,MAAM,KAAK,QAAQ,eAAe,kBAAkB,OAAO;AAAA,MAC/D,aAAa,kBAAkB;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAM,mBACJ,QACyC;AACzC,UAAM,oBACJ,MAAM,KAAK,eAAe,+BAA+B,MAAM;AACjE,WAAO;AAAA,MACL,GAAI,MAAM,KAAK;AAAA,QACb;AAAA,QACA,kBAAkB;AAAA,MACpB;AAAA,MACA,aAAa,kBAAkB;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAM,aACJ,QACA;AACA,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,yBAAyB,MAAM;AAAA,IAC3D;AAAA,EACF;AAAA,EAEA,MAAM,eACJ,QACA;AACA,UAAM,sBACJ,MAAM,KAAK,eAAe,yBAAyB,OAAO,YAAY;AACxE,UAAM,oBAAoB,MAAM,KAAK,eAAe;AAAA,MAClD,OAAO;AAAA,IACT;AACA,WAAO,KAAK,QAAQ,oBAAoB;AAAA,MACtC,WAAW,oBAAoB;AAAA,MAC/B,kBAAkB,oBAAoB;AAAA,MACtC,aAAa,kBAAkB;AAAA,IACjC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,oBACJ,QACA;AACA,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,gCAAgC,MAAM;AAAA,IAClE;AAAA,EACF;AAAA,EAEA,MAAM,WAAW,QAAyD;AACxE,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,uBAAuB,MAAM;AAAA,IACzD;AAAA,EACF;AAAA,EAEA,MAAM,cACJ,QACA;AACA,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,0BAA0B,MAAM;AAAA,IAC5D;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,QAAsD;AAClE,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,oBAAoB,MAAM;AAAA,IACtD;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,QAAsD;AAClE,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,oBAAoB,MAAM;AAAA,IACtD;AAAA,EACF;AACF;","names":[]}