{"version":3,"sources":["../../src/types/serverExecuteTypes.ts"],"sourcesContent":["import {\n  EIP712BurnLpValues,\n  EIP712BurnVlpValues,\n  EIP712IsolatedOrderParams,\n  EIP712LinkSignerValues,\n  EIP712LiquidateSubaccountValues,\n  EIP712MintLpValues,\n  EIP712MintVlpValues,\n  EIP712OrderCancellationValues,\n  EIP712OrderParams,\n  EIP712OrderValues,\n  EIP712ProductOrdersCancellationValues,\n  EIP712TransferQuoteValues,\n  EIP712WithdrawCollateralValues,\n  SignedTx,\n} from '@vertex-protocol/contracts';\nimport { EngineServerOrderResponse } from './serverQueryTypes';\n\nexport interface EngineServerPlaceOrderResponse {\n  digest: string;\n}\n\nexport interface EngineServerCancelOrdersResponse {\n  cancelled_orders: EngineServerOrderResponse[];\n}\n\nexport interface EngineServerExecuteResponseDataByType {\n  burn_lp: null;\n  burn_vlp: null;\n  cancel_and_place: EngineServerPlaceOrderResponse;\n  cancel_orders: EngineServerCancelOrdersResponse;\n  cancel_product_orders: EngineServerCancelOrdersResponse;\n  link_signer: null;\n  liquidate_subaccount: null;\n  mint_lp: null;\n  mint_vlp: null;\n  place_isolated_order: EngineServerPlaceOrderResponse;\n  place_order: EngineServerPlaceOrderResponse;\n  transfer_quote: null;\n  withdraw_collateral: null;\n}\n\nexport interface EngineServerExecuteSuccessResult<\n  T extends EngineServerExecuteRequestType = EngineServerExecuteRequestType,\n> {\n  status: 'success';\n  data: EngineServerExecuteResponseDataByType[T];\n  signature: string;\n  request_type: EngineServerExecuteResultRequestType;\n  // NOTE: `id` is excluded from the response to avoid parsing issues.\n  // type of `id` on the backend is `u64` which can overflow until we introduce proper parsing on the SDK.\n}\n\nexport interface EngineServerExecuteFailureResult {\n  status: 'failure';\n  signature: string;\n  error: string;\n  error_code: number;\n  request_type: EngineServerExecuteResultRequestType;\n}\n\nexport type EngineServerExecuteResult<\n  T extends EngineServerExecuteRequestType = EngineServerExecuteRequestType,\n> = EngineServerExecuteSuccessResult<T> | EngineServerExecuteFailureResult;\n\ntype EngineServerExecuteResultRequestType = {\n  [K in keyof EngineServerExecuteRequestByType]: `execute_${K}`;\n}[keyof EngineServerExecuteRequestByType];\n\nexport interface EngineServerPlaceOrderParams {\n  id: number | null;\n  product_id: number;\n  order: EIP712OrderValues;\n  // Bytes\n  signature: string;\n  // Engine defaults this to true\n  spot_leverage: boolean | null;\n}\n\nexport interface EngineServerPlaceIsolatedOrderParams {\n  id: number | null;\n  product_id: number;\n  isolated_order: EIP712OrderValues;\n  // Bytes\n  signature: string;\n  // Engine defaults this to false\n  borrow_margin: boolean | null;\n}\n\nexport type EngineServerCancelOrdersParams = SignedTx<\n  Omit<EIP712OrderCancellationValues, 'productIds'> & {\n    // number[] is technically assignable to \"Bytes\", so we need to override the ByteFieldsToHex result here\n    productIds: number[];\n  }\n>;\n\nexport type EngineServiceCancelAndPlaceParams = Omit<\n  EngineServerCancelOrdersParams,\n  'tx' | 'signature'\n> & {\n  cancel_tx: EngineServerCancelOrdersParams['tx'];\n  cancel_signature: EngineServerCancelOrdersParams['signature'];\n  place_order: EngineServerPlaceOrderParams;\n};\n\ntype WithSpotLeverage<T> = T & {\n  spot_leverage: boolean | null;\n};\n\nexport interface EngineServerExecuteRequestByType {\n  burn_lp: SignedTx<EIP712BurnLpValues>;\n  burn_vlp: SignedTx<EIP712BurnVlpValues>;\n  cancel_and_place: EngineServiceCancelAndPlaceParams;\n  cancel_orders: EngineServerCancelOrdersParams;\n  cancel_product_orders: SignedTx<\n    Omit<EIP712ProductOrdersCancellationValues, 'productIds'> & {\n      // number[] is technically assignable to \"Bytes\", so we need to override the ByteFieldsToHex result here\n      productIds: number[];\n    }\n  >;\n  link_signer: SignedTx<EIP712LinkSignerValues>;\n  liquidate_subaccount: SignedTx<EIP712LiquidateSubaccountValues>;\n  mint_lp: WithSpotLeverage<SignedTx<EIP712MintLpValues>>;\n  mint_vlp: WithSpotLeverage<SignedTx<EIP712MintVlpValues>>;\n  place_isolated_order: EngineServerPlaceIsolatedOrderParams;\n  place_order: EngineServerPlaceOrderParams;\n  transfer_quote: SignedTx<EIP712TransferQuoteValues>;\n  withdraw_collateral: WithSpotLeverage<\n    SignedTx<EIP712WithdrawCollateralValues>\n  >;\n}\n\nexport type EngineServerExecuteRequestType =\n  keyof EngineServerExecuteRequestByType;\n\nexport interface EngineServerExecutePlaceOrderPayload {\n  payload: EngineServerExecuteRequestByType['place_order'];\n  orderParams: EIP712OrderParams;\n}\n\nexport interface EngineServerExecutePlaceIsolatedOrderPayload {\n  payload: EngineServerExecuteRequestByType['place_isolated_order'];\n  orderParams: EIP712IsolatedOrderParams;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}