@nadohq/engine-client 0.1.0-alpha.3 → 0.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/EngineBaseClient.cjs +8 -7
  2. package/dist/EngineBaseClient.cjs.map +1 -1
  3. package/dist/EngineBaseClient.d.cts +1 -2
  4. package/dist/EngineBaseClient.d.ts +1 -2
  5. package/dist/EngineBaseClient.js +7 -5
  6. package/dist/EngineBaseClient.js.map +1 -1
  7. package/dist/EngineClient.d.cts +1 -2
  8. package/dist/EngineClient.d.ts +1 -2
  9. package/dist/EngineExecuteBuilder.cjs +23 -51
  10. package/dist/EngineExecuteBuilder.cjs.map +1 -1
  11. package/dist/EngineExecuteBuilder.d.cts +6 -17
  12. package/dist/EngineExecuteBuilder.d.ts +6 -17
  13. package/dist/EngineExecuteBuilder.js +13 -41
  14. package/dist/EngineExecuteBuilder.js.map +1 -1
  15. package/dist/EngineExecuteClient.cjs +6 -10
  16. package/dist/EngineExecuteClient.cjs.map +1 -1
  17. package/dist/EngineExecuteClient.d.cts +3 -4
  18. package/dist/EngineExecuteClient.d.ts +3 -4
  19. package/dist/EngineExecuteClient.js +6 -10
  20. package/dist/EngineExecuteClient.js.map +1 -1
  21. package/dist/EngineQueryClient.cjs +28 -53
  22. package/dist/EngineQueryClient.cjs.map +1 -1
  23. package/dist/EngineQueryClient.d.cts +2 -13
  24. package/dist/EngineQueryClient.d.ts +2 -13
  25. package/dist/EngineQueryClient.js +6 -31
  26. package/dist/EngineQueryClient.js.map +1 -1
  27. package/dist/EngineWebClient.cjs +0 -2
  28. package/dist/EngineWebClient.cjs.map +1 -1
  29. package/dist/EngineWebClient.d.cts +1 -2
  30. package/dist/EngineWebClient.d.ts +1 -2
  31. package/dist/EngineWebClient.js +0 -2
  32. package/dist/EngineWebClient.js.map +1 -1
  33. package/dist/endpoints.cjs +6 -6
  34. package/dist/endpoints.cjs.map +1 -1
  35. package/dist/endpoints.d.cts +1 -1
  36. package/dist/endpoints.d.ts +1 -1
  37. package/dist/endpoints.js +6 -6
  38. package/dist/endpoints.js.map +1 -1
  39. package/dist/index.d.cts +5 -6
  40. package/dist/index.d.ts +5 -6
  41. package/dist/types/EngineServerFailureError.cjs +1 -1
  42. package/dist/types/EngineServerFailureError.cjs.map +1 -1
  43. package/dist/types/EngineServerFailureError.d.cts +2 -2
  44. package/dist/types/EngineServerFailureError.d.ts +2 -2
  45. package/dist/types/EngineServerFailureError.js +1 -1
  46. package/dist/types/EngineServerFailureError.js.map +1 -1
  47. package/dist/types/clientExecuteTypes.cjs.map +1 -1
  48. package/dist/types/clientExecuteTypes.d.cts +4 -12
  49. package/dist/types/clientExecuteTypes.d.ts +4 -12
  50. package/dist/types/clientQueryTypes.cjs.map +1 -1
  51. package/dist/types/clientQueryTypes.d.cts +12 -23
  52. package/dist/types/clientQueryTypes.d.ts +12 -23
  53. package/dist/types/index.d.cts +5 -6
  54. package/dist/types/index.d.ts +5 -6
  55. package/dist/types/serverExecuteTypes.cjs.map +1 -1
  56. package/dist/types/serverExecuteTypes.d.cts +6 -14
  57. package/dist/types/serverExecuteTypes.d.ts +6 -14
  58. package/dist/types/serverQueryModelTypes.cjs.map +1 -1
  59. package/dist/types/serverQueryModelTypes.d.cts +1 -1
  60. package/dist/types/serverQueryModelTypes.d.ts +1 -1
  61. package/dist/types/serverQueryTypes.cjs.map +1 -1
  62. package/dist/types/serverQueryTypes.d.cts +3 -13
  63. package/dist/types/serverQueryTypes.d.ts +3 -13
  64. package/dist/types/serverSubscriptionEventTypes.d.cts +1 -1
  65. package/dist/types/serverSubscriptionEventTypes.d.ts +1 -1
  66. package/dist/utils/index.d.cts +1 -2
  67. package/dist/utils/index.d.ts +1 -2
  68. package/dist/utils/productEngineTypeMappers.cjs +5 -5
  69. package/dist/utils/productEngineTypeMappers.cjs.map +1 -1
  70. package/dist/utils/productEngineTypeMappers.d.cts +1 -1
  71. package/dist/utils/productEngineTypeMappers.d.ts +1 -1
  72. package/dist/utils/productEngineTypeMappers.js +1 -1
  73. package/dist/utils/productEngineTypeMappers.js.map +1 -1
  74. package/dist/utils/queryDataMappers.cjs +79 -90
  75. package/dist/utils/queryDataMappers.cjs.map +1 -1
  76. package/dist/utils/queryDataMappers.d.cts +1 -2
  77. package/dist/utils/queryDataMappers.d.ts +1 -2
  78. package/dist/utils/queryDataMappers.js +7 -19
  79. package/dist/utils/queryDataMappers.js.map +1 -1
  80. package/package.json +3 -4
  81. package/src/EngineBaseClient.ts +5 -3
  82. package/src/EngineExecuteBuilder.ts +14 -54
  83. package/src/EngineExecuteClient.ts +7 -15
  84. package/src/EngineQueryClient.ts +6 -35
  85. package/src/EngineWebClient.ts +0 -2
  86. package/src/endpoints.ts +4 -5
  87. package/src/types/EngineServerFailureError.ts +2 -2
  88. package/src/types/clientExecuteTypes.ts +5 -17
  89. package/src/types/clientQueryTypes.ts +18 -32
  90. package/src/types/serverExecuteTypes.ts +7 -18
  91. package/src/types/serverQueryModelTypes.ts +1 -1
  92. package/src/types/serverQueryTypes.ts +2 -16
  93. package/src/utils/productEngineTypeMappers.ts +1 -1
  94. package/src/utils/queryDataMappers.ts +7 -20
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/EngineExecuteBuilder.ts"],"sourcesContent":["import {\n EIP712IsolatedOrderParams,\n EIP712OrderParams,\n getNadoEIP712Values,\n getOrderNonce,\n SignableRequestType,\n SignableRequestTypeToParams,\n} from '@nadohq/contracts';\nimport { EngineBaseClient } from './EngineBaseClient';\nimport {\n EngineExecuteRequestParamsByType,\n EngineServerExecutePlaceIsolatedOrderPayload,\n EngineServerExecutePlaceOrderPayload,\n EngineServerExecuteRequestByType,\n SignatureParams,\n WithBaseEngineExecuteParams,\n WithSignature,\n} from './types';\n\n/**\n * Builds execute payloads as expected by the server.\n * @param nonce A nonce is computed when one is not provided.\n * @param signature A signature is computed when one is not provided.\n */\nexport class EngineExecuteBuilder {\n readonly engineClient: EngineBaseClient;\n\n constructor(engineClient: EngineBaseClient) {\n this.engineClient = engineClient;\n }\n\n /**\n * Builds server payload for the `liquidate_subaccount` execute action.\n * @param clientParams Client LiquidateSubaccount params.\n * @returns `liquidate_subaccount` payload\n */\n async buildLiquidateSubaccountPayload(\n clientParams: EngineExecuteRequestParamsByType['liquidate_subaccount'],\n ): Promise<EngineServerExecuteRequestByType['liquidate_subaccount']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('liquidate_subaccount', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'liquidate_subaccount',\n paramsWithNonce,\n );\n\n return {\n signature,\n tx,\n };\n }\n\n /**\n * Builds server payload for the `withdraw_collateral` execute action.\n * @param clientParams Client WithdrawCollateral params.\n * @returns `liquidate_subaccount` payload\n */\n async buildWithdrawCollateralPayload(\n clientParams: EngineExecuteRequestParamsByType['withdraw_collateral'],\n ): Promise<EngineServerExecuteRequestByType['withdraw_collateral']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const signature = await this.getSignatureIfNeeded(\n 'withdraw_collateral',\n paramsWithNonce,\n );\n\n const tx = getNadoEIP712Values('withdraw_collateral', paramsWithNonce);\n return {\n signature,\n tx,\n spot_leverage: clientParams.spotLeverage ?? null,\n };\n }\n\n /**\n * Builds server payload for the `place_order` execute action.\n *\n * @param clientParams Client PlaceOrder params.\n * @returns `place_order` payload\n */\n async buildPlaceOrderPayload(\n clientParams: EngineExecuteRequestParamsByType['place_order'],\n ): Promise<EngineServerExecutePlaceOrderPayload> {\n const nonce = this.getOrderNonceIfNeeded(clientParams);\n const orderWithNonce = { ...clientParams.order, nonce };\n\n const signature = await this.getSignatureIfNeeded('place_order', {\n // Gets expected type\n ...clientParams,\n ...orderWithNonce,\n });\n\n return this.buildPlaceOrderPayloadSync({\n ...clientParams,\n order: orderWithNonce,\n signature,\n });\n }\n\n /**\n * Synchronously builds server payload for the `place_order` execute action.\n *\n * @param clientParams Client PlaceOrder params.\n * @returns `place_order` payload\n */\n buildPlaceOrderPayloadSync(\n clientParams: WithSignature<\n EngineExecuteRequestParamsByType['place_order'] & {\n order: EIP712OrderParams;\n }\n >,\n ): EngineServerExecutePlaceOrderPayload {\n const orderEIP712Values = getNadoEIP712Values(\n 'place_order',\n clientParams.order,\n );\n\n return {\n payload: {\n id: clientParams.id ?? null,\n product_id: clientParams.productId,\n order: orderEIP712Values,\n signature: clientParams.signature,\n spot_leverage: clientParams.spotLeverage ?? null,\n },\n orderParams: clientParams.order,\n };\n }\n\n /**\n * Builds server payload for the `place_isolated_order` execute action.\n *\n * @param clientParams Client PlaceIsolatedOrder params.\n * @returns `place_isolated_order` payload\n */\n async buildIsolatedPlaceOrderPayload(\n clientParams: EngineExecuteRequestParamsByType['place_isolated_order'],\n ): Promise<EngineServerExecutePlaceIsolatedOrderPayload> {\n const nonce = this.getOrderNonceIfNeeded(clientParams);\n const orderWithNonce = { ...clientParams.order, nonce };\n\n const signature = await this.getSignatureIfNeeded('place_isolated_order', {\n // Gets expected type\n ...clientParams,\n ...orderWithNonce,\n });\n\n return this.buildPlaceIsolatedOrderPayloadSync({\n ...clientParams,\n order: orderWithNonce,\n signature,\n });\n }\n\n /**\n * Synchronously builds server payload for the `place_isolated_order` execute action.\n *\n * @param clientParams Client PlaceIsolatedOrder params.\n * @returns `place_isolated_order` payload\n */\n buildPlaceIsolatedOrderPayloadSync(\n clientParams: WithSignature<\n EngineExecuteRequestParamsByType['place_isolated_order'] & {\n order: EIP712IsolatedOrderParams;\n }\n >,\n ): EngineServerExecutePlaceIsolatedOrderPayload {\n const isolatedOrderEIP712Values = getNadoEIP712Values(\n 'place_isolated_order',\n clientParams.order,\n );\n\n return {\n payload: {\n id: clientParams.id ?? null,\n product_id: clientParams.productId,\n isolated_order: isolatedOrderEIP712Values,\n signature: clientParams.signature,\n borrow_margin: clientParams.borrowMargin ?? null,\n },\n orderParams: clientParams.order,\n };\n }\n\n /**\n * Builds server payload for the `cancel_orders` execute action. As such, requires a signature to be given\n *\n * @param clientParams Client CancelOrders params.\n * @returns `cancel_orders` payload\n */\n async buildCancelOrdersPayload(\n clientParams: EngineExecuteRequestParamsByType['cancel_orders'],\n ): Promise<EngineServerExecuteRequestByType['cancel_orders']> {\n const nonce = this.getOrderNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n const signature = await this.getSignatureIfNeeded(\n 'cancel_orders',\n paramsWithNonce,\n );\n\n return this.buildCancelOrdersPayloadSync({\n ...paramsWithNonce,\n signature,\n });\n }\n\n /**\n * Synchronously builds server payload for the `cancel_orders` execute action.\n *\n * @param clientParams Client CancelOrders params.\n * @returns `cancel_orders` payload\n */\n buildCancelOrdersPayloadSync(\n clientParams: WithSignature<\n EngineExecuteRequestParamsByType['cancel_orders'] & { nonce: string }\n >,\n ): EngineServerExecuteRequestByType['cancel_orders'] {\n const tx = getNadoEIP712Values('cancel_orders', clientParams);\n\n return {\n tx,\n signature: clientParams.signature,\n };\n }\n\n /**\n * Builds server payload for the `cancel_product_orders` execute action.\n * @param clientParams Client CancelProductOrders params.\n * @returns `cancel_product_orders` payload\n */\n async buildCancelProductOrdersPayload(\n clientParams: EngineExecuteRequestParamsByType['cancel_product_orders'],\n ): Promise<EngineServerExecuteRequestByType['cancel_product_orders']> {\n const nonce = this.getOrderNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('cancel_product_orders', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'cancel_product_orders',\n paramsWithNonce,\n );\n\n return {\n tx,\n signature,\n };\n }\n\n /**\n * Builds server payload for the `link_signer` execute action.\n *\n * @param clientParams Client LinkSigner params.\n * @returns `link_signer` payload\n */\n async buildLinkSignerPayload(\n clientParams: EngineExecuteRequestParamsByType['link_signer'],\n ): Promise<EngineServerExecuteRequestByType['link_signer']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('link_signer', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'link_signer',\n paramsWithNonce,\n );\n\n return {\n tx,\n signature,\n };\n }\n\n /**\n * Builds server payload for the `transfer_quote` execute action.\n *\n * @param clientParams Client TransferQuote params.\n * @returns `transfer_quote` payload\n */\n async buildTransferQuotePayload(\n clientParams: EngineExecuteRequestParamsByType['transfer_quote'],\n ): Promise<EngineServerExecuteRequestByType['transfer_quote']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('transfer_quote', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'transfer_quote',\n paramsWithNonce,\n );\n\n return {\n tx,\n signature,\n };\n }\n\n /**\n * Builds server payload for the `mint_nlp` execute action.\n * @param clientParams Client MintNlp params.\n * @returns `mint_nlp` payload\n */\n async buildMintNlpPayload(\n clientParams: EngineExecuteRequestParamsByType['mint_nlp'],\n ): Promise<EngineServerExecuteRequestByType['mint_nlp']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('mint_nlp', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'mint_nlp',\n paramsWithNonce,\n );\n\n return {\n signature,\n tx,\n spot_leverage: clientParams.spotLeverage ?? null,\n };\n }\n\n /**\n * Builds server payload for the `burn_nlp` execute action.\n * @param clientParams Client BurnNlp params.\n * @returns `burn_nlp` payload\n */\n async buildBurnNlpPayload(\n clientParams: EngineExecuteRequestParamsByType['burn_nlp'],\n ): Promise<EngineServerExecuteRequestByType['burn_nlp']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('burn_nlp', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'burn_nlp',\n paramsWithNonce,\n );\n\n return {\n signature,\n tx,\n };\n }\n\n protected async getSignatureIfNeeded<T extends SignableRequestType>(\n requestType: T,\n paramsWithNonce: SignatureParams & SignableRequestTypeToParams[T],\n ) {\n if ('signature' in paramsWithNonce) {\n return paramsWithNonce.signature;\n }\n\n return await this.engineClient.sign(\n requestType,\n paramsWithNonce.verifyingAddr,\n paramsWithNonce.chainId,\n paramsWithNonce,\n );\n }\n\n protected async getTxNonceIfNeeded(\n params: WithBaseEngineExecuteParams<{ subaccountOwner: string }>,\n ) {\n if (params.nonce) {\n return params.nonce;\n }\n return await this.engineClient.getTxNonce(params.subaccountOwner);\n }\n\n protected getOrderNonceIfNeeded(\n params: WithBaseEngineExecuteParams<unknown>,\n ) {\n if (params.nonce) {\n return params.nonce;\n }\n return getOrderNonce();\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/EngineExecuteBuilder.ts"],"sourcesContent":["import {\n EIP712OrderParams,\n getNadoEIP712Values,\n getOrderNonce,\n SignableRequestType,\n SignableRequestTypeToParams,\n} from '@nadohq/shared';\nimport { EngineBaseClient } from './EngineBaseClient';\nimport {\n EngineExecuteRequestParamsByType,\n EngineServerExecutePlaceOrderPayload,\n EngineServerExecuteRequestByType,\n SignatureParams,\n WithBaseEngineExecuteParams,\n WithSignature,\n} from './types';\n\n/**\n * Builds execute payloads as expected by the server.\n * @param nonce A nonce is computed when one is not provided.\n * @param signature A signature is computed when one is not provided.\n */\nexport class EngineExecuteBuilder {\n readonly engineClient: EngineBaseClient;\n\n constructor(engineClient: EngineBaseClient) {\n this.engineClient = engineClient;\n }\n\n /**\n * Builds server payload for the `liquidate_subaccount` execute action.\n * @param clientParams Client LiquidateSubaccount params.\n * @returns `liquidate_subaccount` payload\n */\n async buildLiquidateSubaccountPayload(\n clientParams: EngineExecuteRequestParamsByType['liquidate_subaccount'],\n ): Promise<EngineServerExecuteRequestByType['liquidate_subaccount']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('liquidate_subaccount', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'liquidate_subaccount',\n paramsWithNonce,\n );\n\n return {\n signature,\n tx,\n };\n }\n\n /**\n * Builds server payload for the `withdraw_collateral` execute action.\n * @param clientParams Client WithdrawCollateral params.\n * @returns `liquidate_subaccount` payload\n */\n async buildWithdrawCollateralPayload(\n clientParams: EngineExecuteRequestParamsByType['withdraw_collateral'],\n ): Promise<EngineServerExecuteRequestByType['withdraw_collateral']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const signature = await this.getSignatureIfNeeded(\n 'withdraw_collateral',\n paramsWithNonce,\n );\n\n const tx = getNadoEIP712Values('withdraw_collateral', paramsWithNonce);\n return {\n signature,\n tx,\n spot_leverage: clientParams.spotLeverage ?? null,\n };\n }\n\n /**\n * Builds server payload for the `place_order` execute action.\n *\n * @param clientParams Client PlaceOrder params.\n * @returns `place_order` payload\n */\n async buildPlaceOrderPayload(\n clientParams: EngineExecuteRequestParamsByType['place_order'],\n ): Promise<EngineServerExecutePlaceOrderPayload> {\n const nonce = this.getOrderNonceIfNeeded(clientParams);\n const orderWithNonce = { ...clientParams.order, nonce };\n\n const signature = await this.getSignatureIfNeeded('place_order', {\n // Gets expected type (signature params from `clientParams` and order params from `orderWithNonce`)\n ...clientParams,\n ...orderWithNonce,\n });\n\n return this.buildPlaceOrderPayloadSync({\n ...clientParams,\n order: orderWithNonce,\n signature,\n });\n }\n\n /**\n * Synchronously builds server payload for the `place_order` execute action.\n *\n * @param clientParams Client PlaceOrder params.\n * @returns `place_order` payload\n */\n buildPlaceOrderPayloadSync(\n clientParams: WithSignature<\n EngineExecuteRequestParamsByType['place_order'] & {\n order: EIP712OrderParams;\n }\n >,\n ): EngineServerExecutePlaceOrderPayload {\n const orderEIP712Values = getNadoEIP712Values(\n 'place_order',\n clientParams.order,\n );\n\n return {\n payload: {\n id: clientParams.id ?? null,\n product_id: clientParams.productId,\n order: orderEIP712Values,\n signature: clientParams.signature,\n spot_leverage: clientParams.spotLeverage ?? null,\n borrow_margin: clientParams.borrowMargin ?? null,\n },\n orderParams: clientParams.order,\n };\n }\n\n /**\n * Builds server payload for the `place_orders` execute action.\n * @param clientParams Client PlaceOrders params.\n * @returns `place_orders` payload\n */\n async buildPlaceOrdersPayload(\n clientParams: EngineExecuteRequestParamsByType['place_orders'],\n ): Promise<EngineServerExecuteRequestByType['place_orders']> {\n return Promise.all(\n clientParams.map(async (orderParams) => {\n const payload = await this.buildPlaceOrderPayload(orderParams);\n return payload.payload;\n }),\n );\n }\n\n /**\n * Builds server payload for the `cancel_orders` execute action. As such, requires a signature to be given\n *\n * @param clientParams Client CancelOrders params.\n * @returns `cancel_orders` payload\n */\n async buildCancelOrdersPayload(\n clientParams: EngineExecuteRequestParamsByType['cancel_orders'],\n ): Promise<EngineServerExecuteRequestByType['cancel_orders']> {\n const nonce = this.getOrderNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n const signature = await this.getSignatureIfNeeded(\n 'cancel_orders',\n paramsWithNonce,\n );\n\n return this.buildCancelOrdersPayloadSync({\n ...paramsWithNonce,\n signature,\n });\n }\n\n /**\n * Synchronously builds server payload for the `cancel_orders` execute action.\n *\n * @param clientParams Client CancelOrders params.\n * @returns `cancel_orders` payload\n */\n buildCancelOrdersPayloadSync(\n clientParams: WithSignature<\n EngineExecuteRequestParamsByType['cancel_orders'] & { nonce: string }\n >,\n ): EngineServerExecuteRequestByType['cancel_orders'] {\n const tx = getNadoEIP712Values('cancel_orders', clientParams);\n\n return {\n tx,\n signature: clientParams.signature,\n };\n }\n\n /**\n * Builds server payload for the `cancel_product_orders` execute action.\n * @param clientParams Client CancelProductOrders params.\n * @returns `cancel_product_orders` payload\n */\n async buildCancelProductOrdersPayload(\n clientParams: EngineExecuteRequestParamsByType['cancel_product_orders'],\n ): Promise<EngineServerExecuteRequestByType['cancel_product_orders']> {\n const nonce = this.getOrderNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('cancel_product_orders', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'cancel_product_orders',\n paramsWithNonce,\n );\n\n return {\n tx,\n signature,\n };\n }\n\n /**\n * Builds server payload for the `link_signer` execute action.\n *\n * @param clientParams Client LinkSigner params.\n * @returns `link_signer` payload\n */\n async buildLinkSignerPayload(\n clientParams: EngineExecuteRequestParamsByType['link_signer'],\n ): Promise<EngineServerExecuteRequestByType['link_signer']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('link_signer', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'link_signer',\n paramsWithNonce,\n );\n\n return {\n tx,\n signature,\n };\n }\n\n /**\n * Builds server payload for the `transfer_quote` execute action.\n *\n * @param clientParams Client TransferQuote params.\n * @returns `transfer_quote` payload\n */\n async buildTransferQuotePayload(\n clientParams: EngineExecuteRequestParamsByType['transfer_quote'],\n ): Promise<EngineServerExecuteRequestByType['transfer_quote']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('transfer_quote', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'transfer_quote',\n paramsWithNonce,\n );\n\n return {\n tx,\n signature,\n };\n }\n\n /**\n * Builds server payload for the `mint_nlp` execute action.\n * @param clientParams Client MintNlp params.\n * @returns `mint_nlp` payload\n */\n async buildMintNlpPayload(\n clientParams: EngineExecuteRequestParamsByType['mint_nlp'],\n ): Promise<EngineServerExecuteRequestByType['mint_nlp']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('mint_nlp', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'mint_nlp',\n paramsWithNonce,\n );\n\n return {\n signature,\n tx,\n spot_leverage: clientParams.spotLeverage ?? null,\n };\n }\n\n /**\n * Builds server payload for the `burn_nlp` execute action.\n * @param clientParams Client BurnNlp params.\n * @returns `burn_nlp` payload\n */\n async buildBurnNlpPayload(\n clientParams: EngineExecuteRequestParamsByType['burn_nlp'],\n ): Promise<EngineServerExecuteRequestByType['burn_nlp']> {\n const nonce = await this.getTxNonceIfNeeded(clientParams);\n const paramsWithNonce = { ...clientParams, nonce };\n\n const tx = getNadoEIP712Values('burn_nlp', paramsWithNonce);\n const signature = await this.getSignatureIfNeeded(\n 'burn_nlp',\n paramsWithNonce,\n );\n\n return {\n signature,\n tx,\n };\n }\n\n protected async getSignatureIfNeeded<T extends SignableRequestType>(\n requestType: T,\n paramsWithNonce: SignatureParams & SignableRequestTypeToParams[T],\n ) {\n if ('signature' in paramsWithNonce) {\n return paramsWithNonce.signature;\n }\n\n return await this.engineClient.sign(\n requestType,\n paramsWithNonce.verifyingAddr,\n paramsWithNonce.chainId,\n paramsWithNonce,\n );\n }\n\n protected async getTxNonceIfNeeded(\n params: WithBaseEngineExecuteParams<{ subaccountOwner: string }>,\n ) {\n if (params.nonce) {\n return params.nonce;\n }\n return await this.engineClient.getTxNonce(params.subaccountOwner);\n }\n\n protected getOrderNonceIfNeeded(\n params: WithBaseEngineExecuteParams<unknown>,\n ) {\n if (params.nonce) {\n return params.nonce;\n }\n return getOrderNonce();\n }\n}\n"],"mappings":"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","names":[]}
@@ -49,16 +49,6 @@ var EngineExecuteClient = class extends import_EngineBaseClient.EngineBaseClient
49
49
  orderParams: placeOrderPayload.orderParams
50
50
  };
51
51
  }
52
- async placeIsolatedOrder(params) {
53
- const placeOrderPayload = await this.payloadBuilder.buildIsolatedPlaceOrderPayload(params);
54
- return {
55
- ...await this.execute(
56
- "place_isolated_order",
57
- placeOrderPayload.payload
58
- ),
59
- orderParams: placeOrderPayload.orderParams
60
- };
61
- }
62
52
  async cancelOrders(params) {
63
53
  return this.execute(
64
54
  "cancel_orders",
@@ -106,6 +96,12 @@ var EngineExecuteClient = class extends import_EngineBaseClient.EngineBaseClient
106
96
  await this.payloadBuilder.buildBurnNlpPayload(params)
107
97
  );
108
98
  }
99
+ async placeOrders(params) {
100
+ return this.execute(
101
+ "place_orders",
102
+ await this.payloadBuilder.buildPlaceOrdersPayload(params)
103
+ );
104
+ }
109
105
  };
110
106
  // Annotate the CommonJS export names for ESM import in node:
111
107
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"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 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 mintNlp(params: EngineExecuteRequestParamsByType['mint_nlp']) {\n return this.execute(\n 'mint_nlp',\n await this.payloadBuilder.buildMintNlpPayload(params),\n );\n }\n\n async burnNlp(params: EngineExecuteRequestParamsByType['burn_nlp']) {\n return this.execute(\n 'burn_nlp',\n await this.payloadBuilder.buildBurnNlpPayload(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,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":[]}
1
+ {"version":3,"sources":["../src/EngineExecuteClient.ts"],"sourcesContent":["import { EngineBaseClient, EngineClientOpts } from './EngineBaseClient';\nimport { EngineExecuteBuilder } from './EngineExecuteBuilder';\nimport {\n EngineExecuteRequestParamsByType,\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 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 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 mintNlp(params: EngineExecuteRequestParamsByType['mint_nlp']) {\n return this.execute(\n 'mint_nlp',\n await this.payloadBuilder.buildMintNlpPayload(params),\n );\n }\n\n async burnNlp(params: EngineExecuteRequestParamsByType['burn_nlp']) {\n return this.execute(\n 'burn_nlp',\n await this.payloadBuilder.buildBurnNlpPayload(params),\n );\n }\n\n async placeOrders(params: EngineExecuteRequestParamsByType['place_orders']) {\n return this.execute(\n 'place_orders',\n await this.payloadBuilder.buildPlaceOrdersPayload(params),\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAmD;AACnD,kCAAqC;AAM9B,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,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,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;AAAA,EAEA,MAAM,YAAY,QAA0D;AAC1E,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,wBAAwB,MAAM;AAAA,IAC1D;AAAA,EACF;AACF;","names":[]}
@@ -1,13 +1,12 @@
1
- import { EngineExecuteRequestParamsByType, EnginePlaceOrderResult, EnginePlaceIsolatedOrderResult } from './types/clientExecuteTypes.cjs';
1
+ import { EngineExecuteRequestParamsByType, EnginePlaceOrderResult } from './types/clientExecuteTypes.cjs';
2
2
  import { EngineServerExecuteSuccessResult } from './types/serverExecuteTypes.cjs';
3
3
  import { EngineBaseClient, EngineClientOpts } from './EngineBaseClient.cjs';
4
4
  import { EngineExecuteBuilder } from './EngineExecuteBuilder.cjs';
5
- import '@nadohq/contracts';
5
+ import '@nadohq/shared';
6
6
  import './types/serverQueryTypes.cjs';
7
7
  import './types/serverQueryModelTypes.cjs';
8
8
  import 'axios';
9
9
  import './types/clientQueryTypes.cjs';
10
- import '@nadohq/utils';
11
10
 
12
11
  declare class EngineExecuteClient extends EngineBaseClient {
13
12
  readonly payloadBuilder: EngineExecuteBuilder;
@@ -15,7 +14,6 @@ declare class EngineExecuteClient extends EngineBaseClient {
15
14
  liquidateSubaccount(params: EngineExecuteRequestParamsByType['liquidate_subaccount']): Promise<EngineServerExecuteSuccessResult<"liquidate_subaccount">>;
16
15
  withdrawCollateral(params: EngineExecuteRequestParamsByType['withdraw_collateral']): Promise<EngineServerExecuteSuccessResult<"withdraw_collateral">>;
17
16
  placeOrder(params: EngineExecuteRequestParamsByType['place_order']): Promise<EnginePlaceOrderResult>;
18
- placeIsolatedOrder(params: EngineExecuteRequestParamsByType['place_isolated_order']): Promise<EnginePlaceIsolatedOrderResult>;
19
17
  cancelOrders(params: EngineExecuteRequestParamsByType['cancel_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_orders">>;
20
18
  cancelAndPlace(params: EngineExecuteRequestParamsByType['cancel_and_place']): Promise<EngineServerExecuteSuccessResult<"cancel_and_place">>;
21
19
  cancelProductOrders(params: EngineExecuteRequestParamsByType['cancel_product_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_product_orders">>;
@@ -23,6 +21,7 @@ declare class EngineExecuteClient extends EngineBaseClient {
23
21
  transferQuote(params: EngineExecuteRequestParamsByType['transfer_quote']): Promise<EngineServerExecuteSuccessResult<"transfer_quote">>;
24
22
  mintNlp(params: EngineExecuteRequestParamsByType['mint_nlp']): Promise<EngineServerExecuteSuccessResult<"mint_nlp">>;
25
23
  burnNlp(params: EngineExecuteRequestParamsByType['burn_nlp']): Promise<EngineServerExecuteSuccessResult<"burn_nlp">>;
24
+ placeOrders(params: EngineExecuteRequestParamsByType['place_orders']): Promise<EngineServerExecuteSuccessResult<"place_orders">>;
26
25
  }
27
26
 
28
27
  export { EngineExecuteClient };
@@ -1,13 +1,12 @@
1
- import { EngineExecuteRequestParamsByType, EnginePlaceOrderResult, EnginePlaceIsolatedOrderResult } from './types/clientExecuteTypes.js';
1
+ import { EngineExecuteRequestParamsByType, EnginePlaceOrderResult } from './types/clientExecuteTypes.js';
2
2
  import { EngineServerExecuteSuccessResult } from './types/serverExecuteTypes.js';
3
3
  import { EngineBaseClient, EngineClientOpts } from './EngineBaseClient.js';
4
4
  import { EngineExecuteBuilder } from './EngineExecuteBuilder.js';
5
- import '@nadohq/contracts';
5
+ import '@nadohq/shared';
6
6
  import './types/serverQueryTypes.js';
7
7
  import './types/serverQueryModelTypes.js';
8
8
  import 'axios';
9
9
  import './types/clientQueryTypes.js';
10
- import '@nadohq/utils';
11
10
 
12
11
  declare class EngineExecuteClient extends EngineBaseClient {
13
12
  readonly payloadBuilder: EngineExecuteBuilder;
@@ -15,7 +14,6 @@ declare class EngineExecuteClient extends EngineBaseClient {
15
14
  liquidateSubaccount(params: EngineExecuteRequestParamsByType['liquidate_subaccount']): Promise<EngineServerExecuteSuccessResult<"liquidate_subaccount">>;
16
15
  withdrawCollateral(params: EngineExecuteRequestParamsByType['withdraw_collateral']): Promise<EngineServerExecuteSuccessResult<"withdraw_collateral">>;
17
16
  placeOrder(params: EngineExecuteRequestParamsByType['place_order']): Promise<EnginePlaceOrderResult>;
18
- placeIsolatedOrder(params: EngineExecuteRequestParamsByType['place_isolated_order']): Promise<EnginePlaceIsolatedOrderResult>;
19
17
  cancelOrders(params: EngineExecuteRequestParamsByType['cancel_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_orders">>;
20
18
  cancelAndPlace(params: EngineExecuteRequestParamsByType['cancel_and_place']): Promise<EngineServerExecuteSuccessResult<"cancel_and_place">>;
21
19
  cancelProductOrders(params: EngineExecuteRequestParamsByType['cancel_product_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_product_orders">>;
@@ -23,6 +21,7 @@ declare class EngineExecuteClient extends EngineBaseClient {
23
21
  transferQuote(params: EngineExecuteRequestParamsByType['transfer_quote']): Promise<EngineServerExecuteSuccessResult<"transfer_quote">>;
24
22
  mintNlp(params: EngineExecuteRequestParamsByType['mint_nlp']): Promise<EngineServerExecuteSuccessResult<"mint_nlp">>;
25
23
  burnNlp(params: EngineExecuteRequestParamsByType['burn_nlp']): Promise<EngineServerExecuteSuccessResult<"burn_nlp">>;
24
+ placeOrders(params: EngineExecuteRequestParamsByType['place_orders']): Promise<EngineServerExecuteSuccessResult<"place_orders">>;
26
25
  }
27
26
 
28
27
  export { EngineExecuteClient };
@@ -25,16 +25,6 @@ var EngineExecuteClient = class extends EngineBaseClient {
25
25
  orderParams: placeOrderPayload.orderParams
26
26
  };
27
27
  }
28
- async placeIsolatedOrder(params) {
29
- const placeOrderPayload = await this.payloadBuilder.buildIsolatedPlaceOrderPayload(params);
30
- return {
31
- ...await this.execute(
32
- "place_isolated_order",
33
- placeOrderPayload.payload
34
- ),
35
- orderParams: placeOrderPayload.orderParams
36
- };
37
- }
38
28
  async cancelOrders(params) {
39
29
  return this.execute(
40
30
  "cancel_orders",
@@ -82,6 +72,12 @@ var EngineExecuteClient = class extends EngineBaseClient {
82
72
  await this.payloadBuilder.buildBurnNlpPayload(params)
83
73
  );
84
74
  }
75
+ async placeOrders(params) {
76
+ return this.execute(
77
+ "place_orders",
78
+ await this.payloadBuilder.buildPlaceOrdersPayload(params)
79
+ );
80
+ }
85
81
  };
86
82
  export {
87
83
  EngineExecuteClient
@@ -1 +1 @@
1
- {"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 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 mintNlp(params: EngineExecuteRequestParamsByType['mint_nlp']) {\n return this.execute(\n 'mint_nlp',\n await this.payloadBuilder.buildMintNlpPayload(params),\n );\n }\n\n async burnNlp(params: EngineExecuteRequestParamsByType['burn_nlp']) {\n return this.execute(\n 'burn_nlp',\n await this.payloadBuilder.buildBurnNlpPayload(params),\n );\n }\n}\n"],"mappings":";AAAA,SAAS,wBAA0C;AACnD,SAAS,4BAA4B;AAO9B,IAAM,sBAAN,cAAkC,iBAAiB;AAAA,EAGxD,YAAY,MAAwB;AAClC,UAAM,IAAI;AACV,SAAK,iBAAiB,IAAI,qBAAqB,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,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":[]}
1
+ {"version":3,"sources":["../src/EngineExecuteClient.ts"],"sourcesContent":["import { EngineBaseClient, EngineClientOpts } from './EngineBaseClient';\nimport { EngineExecuteBuilder } from './EngineExecuteBuilder';\nimport {\n EngineExecuteRequestParamsByType,\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 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 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 mintNlp(params: EngineExecuteRequestParamsByType['mint_nlp']) {\n return this.execute(\n 'mint_nlp',\n await this.payloadBuilder.buildMintNlpPayload(params),\n );\n }\n\n async burnNlp(params: EngineExecuteRequestParamsByType['burn_nlp']) {\n return this.execute(\n 'burn_nlp',\n await this.payloadBuilder.buildBurnNlpPayload(params),\n );\n }\n\n async placeOrders(params: EngineExecuteRequestParamsByType['place_orders']) {\n return this.execute(\n 'place_orders',\n await this.payloadBuilder.buildPlaceOrdersPayload(params),\n );\n }\n}\n"],"mappings":";AAAA,SAAS,wBAA0C;AACnD,SAAS,4BAA4B;AAM9B,IAAM,sBAAN,cAAkC,iBAAiB;AAAA,EAGxD,YAAY,MAAwB;AAClC,UAAM,IAAI;AACV,SAAK,iBAAiB,IAAI,qBAAqB,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,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,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;AAAA,EAEA,MAAM,YAAY,QAA0D;AAC1E,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,wBAAwB,MAAM;AAAA,IAC1D;AAAA,EACF;AACF;","names":[]}
@@ -23,8 +23,7 @@ __export(EngineQueryClient_exports, {
23
23
  EngineQueryClient: () => EngineQueryClient
24
24
  });
25
25
  module.exports = __toCommonJS(EngineQueryClient_exports);
26
- var import_contracts = require("@nadohq/contracts");
27
- var import_utils = require("@nadohq/utils");
26
+ var import_shared = require("@nadohq/shared");
28
27
  var import_EngineBaseClient = require("./EngineBaseClient.cjs");
29
28
  var import_productEngineTypeMappers = require("./utils/productEngineTypeMappers.cjs");
30
29
  var import_queryDataMappers = require("./utils/queryDataMappers.cjs");
@@ -36,8 +35,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
36
35
  const baseResponse = await this.query("contracts", {});
37
36
  return {
38
37
  chainId: Number(baseResponse.chain_id),
39
- endpointAddr: baseResponse.endpoint_addr,
40
- orderbookAddrs: baseResponse.book_addrs
38
+ endpointAddr: baseResponse.endpoint_addr
41
39
  };
42
40
  }
43
41
  /**
@@ -53,7 +51,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
53
51
  * @param params
54
52
  */
55
53
  async getSubaccountSummary(params) {
56
- const subaccount = (0, import_contracts.subaccountToHex)({
54
+ const subaccount = (0, import_shared.subaccountToHex)({
57
55
  subaccountOwner: params.subaccountOwner,
58
56
  subaccountName: params.subaccountName
59
57
  });
@@ -68,7 +66,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
68
66
  * @param params
69
67
  */
70
68
  async getIsolatedPositions(params) {
71
- const subaccount = (0, import_contracts.subaccountToHex)({
69
+ const subaccount = (0, import_shared.subaccountToHex)({
72
70
  subaccountOwner: params.subaccountOwner,
73
71
  subaccountName: params.subaccountName
74
72
  });
@@ -83,7 +81,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
83
81
  * @param params
84
82
  */
85
83
  async getEstimatedSubaccountSummary(params) {
86
- const subaccount = (0, import_contracts.subaccountToHex)({
84
+ const subaccount = (0, import_shared.subaccountToHex)({
87
85
  subaccountOwner: params.subaccountOwner,
88
86
  subaccountName: params.subaccountName
89
87
  });
@@ -97,8 +95,8 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
97
95
  apply_delta: {
98
96
  product_id: tx.tx.productId,
99
97
  subaccount,
100
- amount_delta: (0, import_utils.toIntegerString)(tx.tx.amountDelta),
101
- v_quote_delta: (0, import_utils.toIntegerString)(tx.tx.vQuoteDelta)
98
+ amount_delta: (0, import_shared.toIntegerString)(tx.tx.amountDelta),
99
+ v_quote_delta: (0, import_shared.toIntegerString)(tx.tx.vQuoteDelta)
102
100
  }
103
101
  };
104
102
  }
@@ -142,7 +140,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
142
140
  */
143
141
  async getEdgeAllMarkets() {
144
142
  const baseResponse = await this.query("edge_all_products", {});
145
- return (0, import_utils.mapValues)(baseResponse.edge_all_products, (allProducts) => {
143
+ return (0, import_shared.mapValues)(baseResponse.edge_all_products, (allProducts) => {
146
144
  const markets = [];
147
145
  allProducts.spot_products.forEach((spotProduct) => {
148
146
  markets.push((0, import_queryDataMappers.mapEngineServerSpotProduct)(spotProduct));
@@ -169,20 +167,6 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
169
167
  )
170
168
  };
171
169
  }
172
- /**
173
- * Retrieves min deposit rates for all spot products from the engine
174
- */
175
- async getMinDepositRates() {
176
- const baseResponse = await this.query("min_deposit_rates", {});
177
- return {
178
- minDepositRates: (0, import_utils.mapValues)(baseResponse.min_deposit_rates, (m) => {
179
- return {
180
- productId: m.product_id,
181
- minDepositRate: (0, import_utils.removeDecimals)(m.min_deposit_rate_x18)
182
- };
183
- })
184
- };
185
- }
186
170
  /**
187
171
  * Retrieves an order from the offchain engine
188
172
  *
@@ -205,7 +189,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
205
189
  order: params.order,
206
190
  signature: await this.sign(
207
191
  "place_order",
208
- params.orderbookAddr,
192
+ (0, import_shared.getOrderVerifyingAddress)(params.productId),
209
193
  params.chainId,
210
194
  params.order
211
195
  )
@@ -223,7 +207,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
223
207
  async validateSignedOrderParams(params) {
224
208
  const baseResponse = await this.query("validate_order", {
225
209
  product_id: params.productId,
226
- order: (0, import_contracts.encodeSignedOrder)(params.signedOrder)
210
+ order: (0, import_shared.encodeSignedOrder)(params.signedOrder)
227
211
  });
228
212
  return {
229
213
  productId: baseResponse.product_id,
@@ -236,7 +220,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
236
220
  */
237
221
  async getSubaccountOrders(params) {
238
222
  const baseResponse = await this.query("subaccount_orders", {
239
- sender: (0, import_contracts.subaccountToHex)({
223
+ sender: (0, import_shared.subaccountToHex)({
240
224
  subaccountOwner: params.subaccountOwner,
241
225
  subaccountName: params.subaccountName
242
226
  }),
@@ -253,7 +237,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
253
237
  */
254
238
  async getSubaccountMultiProductOrders(params) {
255
239
  const baseResponse = await this.query("orders", {
256
- sender: (0, import_contracts.subaccountToHex)({
240
+ sender: (0, import_shared.subaccountToHex)({
257
241
  subaccountOwner: params.subaccountOwner,
258
242
  subaccountName: params.subaccountName
259
243
  }),
@@ -274,24 +258,24 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
274
258
  */
275
259
  async getSubaccountFeeRates(params) {
276
260
  const baseResponse = await this.query("fee_rates", {
277
- sender: (0, import_contracts.subaccountToHex)({
261
+ sender: (0, import_shared.subaccountToHex)({
278
262
  subaccountOwner: params.subaccountOwner,
279
263
  subaccountName: params.subaccountName
280
264
  })
281
265
  });
282
266
  return {
283
- healthCheckSequencerFee: (0, import_utils.toBigDecimal)(
267
+ healthCheckSequencerFee: (0, import_shared.toBigDecimal)(
284
268
  baseResponse.health_check_sequencer_fee
285
269
  ),
286
- liquidationSequencerFee: (0, import_utils.toBigDecimal)(
270
+ liquidationSequencerFee: (0, import_shared.toBigDecimal)(
287
271
  baseResponse.liquidation_sequencer_fee
288
272
  ),
289
- takerSequencerFee: (0, import_utils.toBigDecimal)(baseResponse.taker_sequencer_fee),
273
+ takerSequencerFee: (0, import_shared.toBigDecimal)(baseResponse.taker_sequencer_fee),
290
274
  orders: baseResponse.taker_fee_rates_x18.reduce(
291
275
  (acc, takerRateX18, currIndex) => {
292
276
  acc[currIndex] = {
293
- taker: (0, import_utils.removeDecimals)(takerRateX18),
294
- maker: (0, import_utils.removeDecimals)(baseResponse.maker_fee_rates_x18[currIndex])
277
+ taker: (0, import_shared.removeDecimals)(takerRateX18),
278
+ maker: (0, import_shared.removeDecimals)(baseResponse.maker_fee_rates_x18[currIndex])
295
279
  };
296
280
  return acc;
297
281
  },
@@ -299,7 +283,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
299
283
  ),
300
284
  withdrawal: baseResponse.withdraw_sequencer_fees.reduce(
301
285
  (acc, productFee, currIndex) => {
302
- acc[currIndex] = (0, import_utils.toBigDecimal)(productFee);
286
+ acc[currIndex] = (0, import_shared.toBigDecimal)(productFee);
303
287
  return acc;
304
288
  },
305
289
  {}
@@ -349,16 +333,16 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
349
333
  async getMaxOrderSize(params) {
350
334
  const baseResponse = await this.query("max_order_size", {
351
335
  direction: params.side,
352
- price_x18: (0, import_utils.toIntegerString)((0, import_utils.addDecimals)(params.price)),
336
+ price_x18: (0, import_shared.toIntegerString)((0, import_shared.addDecimals)(params.price)),
353
337
  product_id: params.productId,
354
- sender: (0, import_contracts.subaccountToHex)({
338
+ sender: (0, import_shared.subaccountToHex)({
355
339
  subaccountOwner: params.subaccountOwner,
356
340
  subaccountName: params.subaccountName
357
341
  }),
358
342
  spot_leverage: params.spotLeverage != null ? String(params.spotLeverage) : null,
359
343
  reduce_only: params.reduceOnly != null ? String(params.reduceOnly) : null
360
344
  });
361
- return (0, import_utils.toBigDecimal)(baseResponse.max_order_size);
345
+ return (0, import_shared.toBigDecimal)(baseResponse.max_order_size);
362
346
  }
363
347
  /**
364
348
  * Retrieves the estimated max withdrawal size for a product
@@ -367,13 +351,13 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
367
351
  async getMaxWithdrawable(params) {
368
352
  const baseResponse = await this.query("max_withdrawable", {
369
353
  product_id: params.productId,
370
- sender: (0, import_contracts.subaccountToHex)({
354
+ sender: (0, import_shared.subaccountToHex)({
371
355
  subaccountOwner: params.subaccountOwner,
372
356
  subaccountName: params.subaccountName
373
357
  }),
374
358
  spot_leverage: params.spotLeverage != null ? String(params.spotLeverage) : null
375
359
  });
376
- return (0, import_utils.toBigDecimal)(baseResponse.max_withdrawable);
360
+ return (0, import_shared.toBigDecimal)(baseResponse.max_withdrawable);
377
361
  }
378
362
  /**
379
363
  * Retrieves the estimated max quote amount for minting NLP.
@@ -382,13 +366,13 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
382
366
  */
383
367
  async getMaxMintNlpAmount(params) {
384
368
  const baseResponse = await this.query("max_nlp_mintable", {
385
- sender: (0, import_contracts.subaccountToHex)({
369
+ sender: (0, import_shared.subaccountToHex)({
386
370
  subaccountOwner: params.subaccountOwner,
387
371
  subaccountName: params.subaccountName
388
372
  }),
389
373
  spot_leverage: params.spotLeverage != null ? String(params.spotLeverage) : null
390
374
  });
391
- return (0, import_utils.toBigDecimal)(baseResponse.max_quote_amount);
375
+ return (0, import_shared.toBigDecimal)(baseResponse.max_quote_amount);
392
376
  }
393
377
  /**
394
378
  * Gets the currently linked signer for the subaccount
@@ -397,7 +381,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
397
381
  */
398
382
  async getLinkedSigner(params) {
399
383
  const baseResponse = await this.query("linked_signer", {
400
- subaccount: (0, import_contracts.subaccountToHex)({
384
+ subaccount: (0, import_shared.subaccountToHex)({
401
385
  subaccountOwner: params.subaccountOwner,
402
386
  subaccountName: params.subaccountName
403
387
  })
@@ -412,16 +396,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
412
396
  */
413
397
  async getInsurance() {
414
398
  const baseResponse = await this.query("insurance", {});
415
- return (0, import_utils.toBigDecimal)(baseResponse.insurance);
416
- }
417
- /**
418
- * Gets the orderbook contract address for a given product
419
- * @param productId
420
- * @returns
421
- */
422
- async getOrderbookAddress(productId) {
423
- const contracts = await this.getContracts();
424
- return contracts.orderbookAddrs[productId];
399
+ return (0, import_shared.toBigDecimal)(baseResponse.insurance);
425
400
  }
426
401
  };
427
402
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/EngineQueryClient.ts"],"sourcesContent":["import {\n encodeSignedOrder,\n MarketWithProduct,\n subaccountToHex,\n} from '@nadohq/contracts';\nimport {\n addDecimals,\n BigDecimal,\n mapValues,\n removeDecimals,\n toBigDecimal,\n toIntegerString,\n} from '@nadohq/utils';\nimport { EngineBaseClient } from './EngineBaseClient';\nimport {\n EngineServerStatusResponse,\n EngineServerSubaccountInfoQueryParams,\n EngineSymbolsResponse,\n GetEngineAllMarketsResponse,\n GetEngineContractsResponse,\n GetEngineEstimatedSubaccountSummaryParams,\n GetEngineHealthGroupsResponse,\n GetEngineInsuranceResponse,\n GetEngineIsolatedPositionsParams,\n GetEngineIsolatedPositionsResponse,\n GetEngineLinkedSignerParams,\n GetEngineLinkedSignerResponse,\n GetEngineMarketLiquidityParams,\n GetEngineMarketLiquidityResponse,\n GetEngineMarketPriceParams,\n GetEngineMarketPriceResponse,\n GetEngineMarketPricesParams,\n GetEngineMarketPricesResponse,\n GetEngineMaxMintNlpAmountParams,\n GetEngineMaxMintNlpAmountResponse,\n GetEngineMaxOrderSizeParams,\n GetEngineMaxOrderSizeResponse,\n GetEngineMaxWithdrawableParams,\n GetEngineMaxWithdrawableResponse,\n GetEngineMinDepositRatesResponse,\n GetEngineOrderParams,\n GetEngineOrderResponse,\n GetEngineSubaccountFeeRatesParams,\n GetEngineSubaccountFeeRatesResponse,\n GetEngineSubaccountOrdersParams,\n GetEngineSubaccountOrdersResponse,\n GetEngineSubaccountProductOrdersParams,\n GetEngineSubaccountProductOrdersResponse,\n GetEngineSubaccountSummaryParams,\n GetEngineSubaccountSummaryResponse,\n GetEngineSymbolsParams,\n SubaccountOrderFeeRates,\n ValidateEngineOrderParams,\n ValidateEngineOrderResponse,\n ValidateSignedEngineOrderParams,\n} from './types';\nimport { mapProductEngineType } from './utils/productEngineTypeMappers';\nimport {\n mapEngineMarketPrice,\n mapEngineServerIsolatedPositions,\n mapEngineServerOrder,\n mapEngineServerPerpProduct,\n mapEngineServerSpotProduct,\n mapEngineServerSymbols,\n mapEngineServerTickLiquidity,\n mapSubaccountSummary,\n} from './utils/queryDataMappers';\n\nexport class EngineQueryClient extends EngineBaseClient {\n /**\n * Retrieves the set of contracts that the engine is interfacing with\n */\n async getContracts(): Promise<GetEngineContractsResponse> {\n const baseResponse = await this.query('contracts', {});\n return {\n chainId: Number(baseResponse.chain_id),\n endpointAddr: baseResponse.endpoint_addr,\n orderbookAddrs: baseResponse.book_addrs,\n };\n }\n\n /**\n * Retrieves current engine status\n */\n async getStatus(): Promise<EngineServerStatusResponse> {\n return this.query('status', {});\n }\n\n /**\n * Retrieves a subaccount summary reflective of the state within the offchain engine. This adheres to the\n * same return interface as the contract version\n *\n * @param params\n */\n async getSubaccountSummary(\n params: GetEngineSubaccountSummaryParams,\n ): Promise<GetEngineSubaccountSummaryResponse> {\n const subaccount = subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n });\n const baseResponse = await this.query('subaccount_info', {\n subaccount,\n });\n\n return mapSubaccountSummary(baseResponse);\n }\n\n /**\n * Retrieves a list of isolated positions\n *\n * @param params\n */\n async getIsolatedPositions(\n params: GetEngineIsolatedPositionsParams,\n ): Promise<GetEngineIsolatedPositionsResponse> {\n const subaccount = subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n });\n const baseResponse = await this.query('isolated_positions', {\n subaccount,\n });\n\n return mapEngineServerIsolatedPositions(baseResponse);\n }\n\n /**\n * Retrieves an estimated subaccount summary with the applied transactions\n *\n * @param params\n */\n async getEstimatedSubaccountSummary(\n params: GetEngineEstimatedSubaccountSummaryParams,\n ): Promise<GetEngineSubaccountSummaryResponse> {\n const subaccount = subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n });\n const queryParams: EngineServerSubaccountInfoQueryParams = {\n subaccount: subaccount,\n txns: params.txs.map(\n (\n tx,\n ): NonNullable<\n EngineServerSubaccountInfoQueryParams['txns']\n >[number] => {\n switch (tx.type) {\n case 'apply_delta':\n return {\n apply_delta: {\n product_id: tx.tx.productId,\n subaccount,\n amount_delta: toIntegerString(tx.tx.amountDelta),\n v_quote_delta: toIntegerString(tx.tx.vQuoteDelta),\n },\n };\n }\n },\n ),\n };\n const baseResponse = await this.query('subaccount_info', {\n subaccount: queryParams.subaccount,\n txns: JSON.stringify(queryParams.txns),\n });\n\n return mapSubaccountSummary(baseResponse);\n }\n\n /**\n * Retrieves symbols and product info\n *\n * @param params\n */\n async getSymbols(\n params: GetEngineSymbolsParams,\n ): Promise<EngineSymbolsResponse> {\n const baseResponse = await this.query('symbols', {\n product_ids: params.productIds,\n product_type:\n params.productType != null\n ? mapProductEngineType(params.productType)\n : undefined,\n });\n return mapEngineServerSymbols(baseResponse);\n }\n\n /**\n * Retrieves all market states as per the offchain engine. Same return interface as contracts\n */\n async getAllMarkets(): Promise<GetEngineAllMarketsResponse> {\n const markets: MarketWithProduct[] = [];\n\n const baseResponse = await this.query('all_products', {});\n baseResponse.spot_products.forEach((spotProduct) => {\n markets.push(mapEngineServerSpotProduct(spotProduct));\n });\n baseResponse.perp_products.forEach((perpProduct) => {\n markets.push(mapEngineServerPerpProduct(perpProduct));\n });\n\n return markets;\n }\n\n /**\n * Retrieves all markets by chain id.\n */\n async getEdgeAllMarkets(): Promise<Record<number, MarketWithProduct[]>> {\n const baseResponse = await this.query('edge_all_products', {});\n\n return mapValues(baseResponse.edge_all_products, (allProducts) => {\n const markets: MarketWithProduct[] = [];\n\n allProducts.spot_products.forEach((spotProduct) => {\n markets.push(mapEngineServerSpotProduct(spotProduct));\n });\n\n allProducts.perp_products.forEach((perpProduct) => {\n markets.push(mapEngineServerPerpProduct(perpProduct));\n });\n\n return markets;\n });\n }\n\n /**\n * Retrieves all health groups (linked spot & perp products) from the engine\n */\n async getHealthGroups(): Promise<GetEngineHealthGroupsResponse> {\n const baseResponse = await this.query('health_groups', {});\n\n return {\n healthGroups: baseResponse.health_groups.map(\n ([spotProductId, perpProductId]) => {\n return {\n spotProductId,\n perpProductId,\n };\n },\n ),\n };\n }\n\n /**\n * Retrieves min deposit rates for all spot products from the engine\n */\n async getMinDepositRates(): Promise<GetEngineMinDepositRatesResponse> {\n const baseResponse = await this.query('min_deposit_rates', {});\n\n return {\n minDepositRates: mapValues(baseResponse.min_deposit_rates, (m) => {\n return {\n productId: m.product_id,\n minDepositRate: removeDecimals(m.min_deposit_rate_x18),\n };\n }),\n };\n }\n\n /**\n * Retrieves an order from the offchain engine\n *\n * @param params\n */\n async getOrder(\n params: GetEngineOrderParams,\n ): Promise<GetEngineOrderResponse> {\n const baseResponse = await this.query('order', {\n digest: params.digest,\n product_id: params.productId,\n });\n\n return mapEngineServerOrder(baseResponse);\n }\n\n /**\n * Signs and validates with the engine that the order is valid to be submitted (i.e. does not violate health reqs)\n *\n * @param params\n */\n async validateOrderParams(\n params: ValidateEngineOrderParams,\n ): Promise<ValidateEngineOrderResponse> {\n const signedOrder = {\n order: params.order,\n signature: await this.sign(\n 'place_order',\n params.orderbookAddr,\n params.chainId,\n params.order,\n ),\n };\n return this.validateSignedOrderParams({\n signedOrder,\n productId: params.productId,\n });\n }\n\n /**\n * Validates an existing signed order with the engine as a pre-check for health\n *\n * @param params\n */\n async validateSignedOrderParams(\n params: ValidateSignedEngineOrderParams,\n ): Promise<ValidateEngineOrderResponse> {\n const baseResponse = await this.query('validate_order', {\n product_id: params.productId,\n order: encodeSignedOrder(params.signedOrder),\n });\n\n return {\n productId: baseResponse.product_id,\n valid: baseResponse.valid,\n };\n }\n\n /**\n * Get all subaccount orders from the engine, per product ID\n * @param params\n */\n async getSubaccountOrders(\n params: GetEngineSubaccountOrdersParams,\n ): Promise<GetEngineSubaccountOrdersResponse> {\n const baseResponse = await this.query('subaccount_orders', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n product_id: params.productId,\n });\n\n return {\n orders: baseResponse.orders.map(mapEngineServerOrder),\n productId: params.productId,\n };\n }\n\n /**\n * Get all subaccount orders from the engine, for multiple products\n * @param params\n */\n async getSubaccountMultiProductOrders(\n params: GetEngineSubaccountProductOrdersParams,\n ): Promise<GetEngineSubaccountProductOrdersResponse> {\n const baseResponse = await this.query('orders', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n product_ids: params.productIds,\n });\n\n return {\n productOrders: baseResponse.product_orders.map((orders) => {\n return {\n orders: orders.orders.map(mapEngineServerOrder),\n productId: orders.product_id,\n };\n }),\n };\n }\n\n /**\n * Gets maker & taker fee rates for order fees\n * @param params\n */\n async getSubaccountFeeRates(\n params: GetEngineSubaccountFeeRatesParams,\n ): Promise<GetEngineSubaccountFeeRatesResponse> {\n const baseResponse = await this.query('fee_rates', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n });\n\n return {\n healthCheckSequencerFee: toBigDecimal(\n baseResponse.health_check_sequencer_fee,\n ),\n liquidationSequencerFee: toBigDecimal(\n baseResponse.liquidation_sequencer_fee,\n ),\n takerSequencerFee: toBigDecimal(baseResponse.taker_sequencer_fee),\n orders: baseResponse.taker_fee_rates_x18.reduce(\n (acc, takerRateX18, currIndex) => {\n acc[currIndex] = {\n taker: removeDecimals(takerRateX18),\n maker: removeDecimals(baseResponse.maker_fee_rates_x18[currIndex]),\n };\n return acc;\n },\n {} as Record<number, SubaccountOrderFeeRates>,\n ),\n withdrawal: baseResponse.withdraw_sequencer_fees.reduce(\n (acc, productFee, currIndex) => {\n acc[currIndex] = toBigDecimal(productFee);\n return acc;\n },\n {} as Record<number, BigDecimal>,\n ),\n };\n }\n\n /**\n * Gets \"price ticks\" for a given market, useful for constructing liquidity levels at each price\n * @param params\n */\n async getMarketLiquidity(\n params: GetEngineMarketLiquidityParams,\n ): Promise<GetEngineMarketLiquidityResponse> {\n const baseResponse = await this.query('market_liquidity', {\n product_id: params.productId,\n depth: params.depth,\n });\n return {\n asks: baseResponse.asks.map(mapEngineServerTickLiquidity),\n bids: baseResponse.bids.map(mapEngineServerTickLiquidity),\n };\n }\n\n /**\n * Retrieves the latest price for a given market\n * @param params\n */\n async getMarketPrice(\n params: GetEngineMarketPriceParams,\n ): Promise<GetEngineMarketPriceResponse> {\n const baseResponse = await this.query('market_price', {\n product_id: params.productId,\n });\n return mapEngineMarketPrice(baseResponse);\n }\n\n /**\n * Retrieves the latest prices for provided markets\n * @param params\n */\n async getMarketPrices(\n params: GetEngineMarketPricesParams,\n ): Promise<GetEngineMarketPricesResponse> {\n const baseResponse = await this.query('market_prices', {\n product_ids: params.productIds,\n });\n return {\n marketPrices: baseResponse.market_prices.map(mapEngineMarketPrice),\n };\n }\n\n /**\n * Retrieves the estimated max order size for a product\n * @param params\n */\n async getMaxOrderSize(\n params: GetEngineMaxOrderSizeParams,\n ): Promise<GetEngineMaxOrderSizeResponse> {\n const baseResponse = await this.query('max_order_size', {\n direction: params.side,\n price_x18: toIntegerString(addDecimals(params.price)),\n product_id: params.productId,\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n spot_leverage:\n params.spotLeverage != null ? String(params.spotLeverage) : null,\n reduce_only: params.reduceOnly != null ? String(params.reduceOnly) : null,\n });\n\n return toBigDecimal(baseResponse.max_order_size);\n }\n\n /**\n * Retrieves the estimated max withdrawal size for a product\n * @param params\n */\n async getMaxWithdrawable(\n params: GetEngineMaxWithdrawableParams,\n ): Promise<GetEngineMaxWithdrawableResponse> {\n const baseResponse = await this.query('max_withdrawable', {\n product_id: params.productId,\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n spot_leverage:\n params.spotLeverage != null ? String(params.spotLeverage) : null,\n });\n\n return toBigDecimal(baseResponse.max_withdrawable);\n }\n\n /**\n * Retrieves the estimated max quote amount for minting NLP.\n *\n * @param params\n */\n async getMaxMintNlpAmount(\n params: GetEngineMaxMintNlpAmountParams,\n ): Promise<GetEngineMaxMintNlpAmountResponse> {\n const baseResponse = await this.query('max_nlp_mintable', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n spot_leverage:\n params.spotLeverage != null ? String(params.spotLeverage) : null,\n });\n\n return toBigDecimal(baseResponse.max_quote_amount);\n }\n\n /**\n * Gets the currently linked signer for the subaccount\n * @param params\n * @returns\n */\n public async getLinkedSigner(\n params: GetEngineLinkedSignerParams,\n ): Promise<GetEngineLinkedSignerResponse> {\n const baseResponse = await this.query('linked_signer', {\n subaccount: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n });\n\n return {\n signer: baseResponse.linked_signer,\n };\n }\n\n /**\n * Gets the insurance funds in USDC.\n * @returns\n */\n public async getInsurance(): Promise<GetEngineInsuranceResponse> {\n const baseResponse = await this.query('insurance', {});\n\n return toBigDecimal(baseResponse.insurance);\n }\n\n /**\n * Gets the orderbook contract address for a given product\n * @param productId\n * @returns\n */\n public async getOrderbookAddress(productId: number): Promise<string> {\n const contracts = await this.getContracts();\n return contracts.orderbookAddrs[productId];\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/EngineQueryClient.ts"],"sourcesContent":["import {\n addDecimals,\n BigDecimal,\n encodeSignedOrder,\n getOrderVerifyingAddress,\n mapValues,\n MarketWithProduct,\n removeDecimals,\n subaccountToHex,\n toBigDecimal,\n toIntegerString,\n} from '@nadohq/shared';\nimport { EngineBaseClient } from './EngineBaseClient';\nimport {\n EngineServerStatusResponse,\n EngineServerSubaccountInfoQueryParams,\n EngineSymbolsResponse,\n GetEngineAllMarketsResponse,\n GetEngineContractsResponse,\n GetEngineEstimatedSubaccountSummaryParams,\n GetEngineHealthGroupsResponse,\n GetEngineInsuranceResponse,\n GetEngineIsolatedPositionsParams,\n GetEngineIsolatedPositionsResponse,\n GetEngineLinkedSignerParams,\n GetEngineLinkedSignerResponse,\n GetEngineMarketLiquidityParams,\n GetEngineMarketLiquidityResponse,\n GetEngineMarketPriceParams,\n GetEngineMarketPriceResponse,\n GetEngineMarketPricesParams,\n GetEngineMarketPricesResponse,\n GetEngineMaxMintNlpAmountParams,\n GetEngineMaxMintNlpAmountResponse,\n GetEngineMaxOrderSizeParams,\n GetEngineMaxOrderSizeResponse,\n GetEngineMaxWithdrawableParams,\n GetEngineMaxWithdrawableResponse,\n GetEngineOrderParams,\n GetEngineOrderResponse,\n GetEngineSubaccountFeeRatesParams,\n GetEngineSubaccountFeeRatesResponse,\n GetEngineSubaccountOrdersParams,\n GetEngineSubaccountOrdersResponse,\n GetEngineSubaccountProductOrdersParams,\n GetEngineSubaccountProductOrdersResponse,\n GetEngineSubaccountSummaryParams,\n GetEngineSubaccountSummaryResponse,\n GetEngineSymbolsParams,\n SubaccountOrderFeeRates,\n ValidateEngineOrderParams,\n ValidateEngineOrderResponse,\n ValidateSignedEngineOrderParams,\n} from './types';\nimport { mapProductEngineType } from './utils/productEngineTypeMappers';\nimport {\n mapEngineMarketPrice,\n mapEngineServerIsolatedPositions,\n mapEngineServerOrder,\n mapEngineServerPerpProduct,\n mapEngineServerSpotProduct,\n mapEngineServerSymbols,\n mapEngineServerTickLiquidity,\n mapSubaccountSummary,\n} from './utils/queryDataMappers';\n\nexport class EngineQueryClient extends EngineBaseClient {\n /**\n * Retrieves the set of contracts that the engine is interfacing with\n */\n async getContracts(): Promise<GetEngineContractsResponse> {\n const baseResponse = await this.query('contracts', {});\n return {\n chainId: Number(baseResponse.chain_id),\n endpointAddr: baseResponse.endpoint_addr,\n };\n }\n\n /**\n * Retrieves current engine status\n */\n async getStatus(): Promise<EngineServerStatusResponse> {\n return this.query('status', {});\n }\n\n /**\n * Retrieves a subaccount summary reflective of the state within the offchain engine. This adheres to the\n * same return interface as the contract version\n *\n * @param params\n */\n async getSubaccountSummary(\n params: GetEngineSubaccountSummaryParams,\n ): Promise<GetEngineSubaccountSummaryResponse> {\n const subaccount = subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n });\n const baseResponse = await this.query('subaccount_info', {\n subaccount,\n });\n\n return mapSubaccountSummary(baseResponse);\n }\n\n /**\n * Retrieves a list of isolated positions\n *\n * @param params\n */\n async getIsolatedPositions(\n params: GetEngineIsolatedPositionsParams,\n ): Promise<GetEngineIsolatedPositionsResponse> {\n const subaccount = subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n });\n const baseResponse = await this.query('isolated_positions', {\n subaccount,\n });\n\n return mapEngineServerIsolatedPositions(baseResponse);\n }\n\n /**\n * Retrieves an estimated subaccount summary with the applied transactions\n *\n * @param params\n */\n async getEstimatedSubaccountSummary(\n params: GetEngineEstimatedSubaccountSummaryParams,\n ): Promise<GetEngineSubaccountSummaryResponse> {\n const subaccount = subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n });\n const queryParams: EngineServerSubaccountInfoQueryParams = {\n subaccount: subaccount,\n txns: params.txs.map(\n (\n tx,\n ): NonNullable<\n EngineServerSubaccountInfoQueryParams['txns']\n >[number] => {\n switch (tx.type) {\n case 'apply_delta':\n return {\n apply_delta: {\n product_id: tx.tx.productId,\n subaccount,\n amount_delta: toIntegerString(tx.tx.amountDelta),\n v_quote_delta: toIntegerString(tx.tx.vQuoteDelta),\n },\n };\n }\n },\n ),\n };\n const baseResponse = await this.query('subaccount_info', {\n subaccount: queryParams.subaccount,\n txns: JSON.stringify(queryParams.txns),\n });\n\n return mapSubaccountSummary(baseResponse);\n }\n\n /**\n * Retrieves symbols and product info\n *\n * @param params\n */\n async getSymbols(\n params: GetEngineSymbolsParams,\n ): Promise<EngineSymbolsResponse> {\n const baseResponse = await this.query('symbols', {\n product_ids: params.productIds,\n product_type:\n params.productType != null\n ? mapProductEngineType(params.productType)\n : undefined,\n });\n return mapEngineServerSymbols(baseResponse);\n }\n\n /**\n * Retrieves all market states as per the offchain engine. Same return interface as contracts\n */\n async getAllMarkets(): Promise<GetEngineAllMarketsResponse> {\n const markets: MarketWithProduct[] = [];\n\n const baseResponse = await this.query('all_products', {});\n baseResponse.spot_products.forEach((spotProduct) => {\n markets.push(mapEngineServerSpotProduct(spotProduct));\n });\n baseResponse.perp_products.forEach((perpProduct) => {\n markets.push(mapEngineServerPerpProduct(perpProduct));\n });\n\n return markets;\n }\n\n /**\n * Retrieves all markets by chain id.\n */\n async getEdgeAllMarkets(): Promise<Record<number, MarketWithProduct[]>> {\n const baseResponse = await this.query('edge_all_products', {});\n\n return mapValues(baseResponse.edge_all_products, (allProducts) => {\n const markets: MarketWithProduct[] = [];\n\n allProducts.spot_products.forEach((spotProduct) => {\n markets.push(mapEngineServerSpotProduct(spotProduct));\n });\n\n allProducts.perp_products.forEach((perpProduct) => {\n markets.push(mapEngineServerPerpProduct(perpProduct));\n });\n\n return markets;\n });\n }\n\n /**\n * Retrieves all health groups (linked spot & perp products) from the engine\n */\n async getHealthGroups(): Promise<GetEngineHealthGroupsResponse> {\n const baseResponse = await this.query('health_groups', {});\n\n return {\n healthGroups: baseResponse.health_groups.map(\n ([spotProductId, perpProductId]) => {\n return {\n spotProductId,\n perpProductId,\n };\n },\n ),\n };\n }\n\n /**\n * Retrieves an order from the offchain engine\n *\n * @param params\n */\n async getOrder(\n params: GetEngineOrderParams,\n ): Promise<GetEngineOrderResponse> {\n const baseResponse = await this.query('order', {\n digest: params.digest,\n product_id: params.productId,\n });\n\n return mapEngineServerOrder(baseResponse);\n }\n\n /**\n * Signs and validates with the engine that the order is valid to be submitted (i.e. does not violate health reqs)\n *\n * @param params\n */\n async validateOrderParams(\n params: ValidateEngineOrderParams,\n ): Promise<ValidateEngineOrderResponse> {\n const signedOrder = {\n order: params.order,\n signature: await this.sign(\n 'place_order',\n getOrderVerifyingAddress(params.productId),\n params.chainId,\n params.order,\n ),\n };\n return this.validateSignedOrderParams({\n signedOrder,\n productId: params.productId,\n });\n }\n\n /**\n * Validates an existing signed order with the engine as a pre-check for health\n *\n * @param params\n */\n async validateSignedOrderParams(\n params: ValidateSignedEngineOrderParams,\n ): Promise<ValidateEngineOrderResponse> {\n const baseResponse = await this.query('validate_order', {\n product_id: params.productId,\n order: encodeSignedOrder(params.signedOrder),\n });\n\n return {\n productId: baseResponse.product_id,\n valid: baseResponse.valid,\n };\n }\n\n /**\n * Get all subaccount orders from the engine, per product ID\n * @param params\n */\n async getSubaccountOrders(\n params: GetEngineSubaccountOrdersParams,\n ): Promise<GetEngineSubaccountOrdersResponse> {\n const baseResponse = await this.query('subaccount_orders', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n product_id: params.productId,\n });\n\n return {\n orders: baseResponse.orders.map(mapEngineServerOrder),\n productId: params.productId,\n };\n }\n\n /**\n * Get all subaccount orders from the engine, for multiple products\n * @param params\n */\n async getSubaccountMultiProductOrders(\n params: GetEngineSubaccountProductOrdersParams,\n ): Promise<GetEngineSubaccountProductOrdersResponse> {\n const baseResponse = await this.query('orders', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n product_ids: params.productIds,\n });\n\n return {\n productOrders: baseResponse.product_orders.map((orders) => {\n return {\n orders: orders.orders.map(mapEngineServerOrder),\n productId: orders.product_id,\n };\n }),\n };\n }\n\n /**\n * Gets maker & taker fee rates for order fees\n * @param params\n */\n async getSubaccountFeeRates(\n params: GetEngineSubaccountFeeRatesParams,\n ): Promise<GetEngineSubaccountFeeRatesResponse> {\n const baseResponse = await this.query('fee_rates', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n });\n\n return {\n healthCheckSequencerFee: toBigDecimal(\n baseResponse.health_check_sequencer_fee,\n ),\n liquidationSequencerFee: toBigDecimal(\n baseResponse.liquidation_sequencer_fee,\n ),\n takerSequencerFee: toBigDecimal(baseResponse.taker_sequencer_fee),\n orders: baseResponse.taker_fee_rates_x18.reduce(\n (acc, takerRateX18, currIndex) => {\n acc[currIndex] = {\n taker: removeDecimals(takerRateX18),\n maker: removeDecimals(baseResponse.maker_fee_rates_x18[currIndex]),\n };\n return acc;\n },\n {} as Record<number, SubaccountOrderFeeRates>,\n ),\n withdrawal: baseResponse.withdraw_sequencer_fees.reduce(\n (acc, productFee, currIndex) => {\n acc[currIndex] = toBigDecimal(productFee);\n return acc;\n },\n {} as Record<number, BigDecimal>,\n ),\n };\n }\n\n /**\n * Gets \"price ticks\" for a given market, useful for constructing liquidity levels at each price\n * @param params\n */\n async getMarketLiquidity(\n params: GetEngineMarketLiquidityParams,\n ): Promise<GetEngineMarketLiquidityResponse> {\n const baseResponse = await this.query('market_liquidity', {\n product_id: params.productId,\n depth: params.depth,\n });\n return {\n asks: baseResponse.asks.map(mapEngineServerTickLiquidity),\n bids: baseResponse.bids.map(mapEngineServerTickLiquidity),\n };\n }\n\n /**\n * Retrieves the latest price for a given market\n * @param params\n */\n async getMarketPrice(\n params: GetEngineMarketPriceParams,\n ): Promise<GetEngineMarketPriceResponse> {\n const baseResponse = await this.query('market_price', {\n product_id: params.productId,\n });\n return mapEngineMarketPrice(baseResponse);\n }\n\n /**\n * Retrieves the latest prices for provided markets\n * @param params\n */\n async getMarketPrices(\n params: GetEngineMarketPricesParams,\n ): Promise<GetEngineMarketPricesResponse> {\n const baseResponse = await this.query('market_prices', {\n product_ids: params.productIds,\n });\n return {\n marketPrices: baseResponse.market_prices.map(mapEngineMarketPrice),\n };\n }\n\n /**\n * Retrieves the estimated max order size for a product\n * @param params\n */\n async getMaxOrderSize(\n params: GetEngineMaxOrderSizeParams,\n ): Promise<GetEngineMaxOrderSizeResponse> {\n const baseResponse = await this.query('max_order_size', {\n direction: params.side,\n price_x18: toIntegerString(addDecimals(params.price)),\n product_id: params.productId,\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n spot_leverage:\n params.spotLeverage != null ? String(params.spotLeverage) : null,\n reduce_only: params.reduceOnly != null ? String(params.reduceOnly) : null,\n });\n\n return toBigDecimal(baseResponse.max_order_size);\n }\n\n /**\n * Retrieves the estimated max withdrawal size for a product\n * @param params\n */\n async getMaxWithdrawable(\n params: GetEngineMaxWithdrawableParams,\n ): Promise<GetEngineMaxWithdrawableResponse> {\n const baseResponse = await this.query('max_withdrawable', {\n product_id: params.productId,\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n spot_leverage:\n params.spotLeverage != null ? String(params.spotLeverage) : null,\n });\n\n return toBigDecimal(baseResponse.max_withdrawable);\n }\n\n /**\n * Retrieves the estimated max quote amount for minting NLP.\n *\n * @param params\n */\n async getMaxMintNlpAmount(\n params: GetEngineMaxMintNlpAmountParams,\n ): Promise<GetEngineMaxMintNlpAmountResponse> {\n const baseResponse = await this.query('max_nlp_mintable', {\n sender: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n spot_leverage:\n params.spotLeverage != null ? String(params.spotLeverage) : null,\n });\n\n return toBigDecimal(baseResponse.max_quote_amount);\n }\n\n /**\n * Gets the currently linked signer for the subaccount\n * @param params\n * @returns\n */\n public async getLinkedSigner(\n params: GetEngineLinkedSignerParams,\n ): Promise<GetEngineLinkedSignerResponse> {\n const baseResponse = await this.query('linked_signer', {\n subaccount: subaccountToHex({\n subaccountOwner: params.subaccountOwner,\n subaccountName: params.subaccountName,\n }),\n });\n\n return {\n signer: baseResponse.linked_signer,\n };\n }\n\n /**\n * Gets the insurance funds in USDC.\n * @returns\n */\n public async getInsurance(): Promise<GetEngineInsuranceResponse> {\n const baseResponse = await this.query('insurance', {});\n\n return toBigDecimal(baseResponse.insurance);\n }\n}\n"],"mappings":"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","names":[]}