@nadohq/engine-client 0.1.0-alpha.2 → 0.1.0-alpha.21
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.
- package/dist/EngineBaseClient.cjs +8 -7
- package/dist/EngineBaseClient.cjs.map +1 -1
- package/dist/EngineBaseClient.d.cts +2 -3
- package/dist/EngineBaseClient.d.ts +2 -3
- package/dist/EngineBaseClient.js +7 -5
- package/dist/EngineBaseClient.js.map +1 -1
- package/dist/EngineClient.d.cts +1 -2
- package/dist/EngineClient.d.ts +1 -2
- package/dist/EngineExecuteBuilder.cjs +25 -50
- package/dist/EngineExecuteBuilder.cjs.map +1 -1
- package/dist/EngineExecuteBuilder.d.cts +6 -17
- package/dist/EngineExecuteBuilder.d.ts +6 -17
- package/dist/EngineExecuteBuilder.js +15 -40
- package/dist/EngineExecuteBuilder.js.map +1 -1
- package/dist/EngineExecuteClient.cjs +5 -9
- package/dist/EngineExecuteClient.cjs.map +1 -1
- package/dist/EngineExecuteClient.d.cts +3 -4
- package/dist/EngineExecuteClient.d.ts +3 -4
- package/dist/EngineExecuteClient.js +5 -9
- package/dist/EngineExecuteClient.js.map +1 -1
- package/dist/EngineQueryClient.cjs +70 -53
- package/dist/EngineQueryClient.cjs.map +1 -1
- package/dist/EngineQueryClient.d.cts +17 -12
- package/dist/EngineQueryClient.d.ts +17 -12
- package/dist/EngineQueryClient.js +50 -31
- package/dist/EngineQueryClient.js.map +1 -1
- package/dist/EngineWebClient.cjs +0 -2
- package/dist/EngineWebClient.cjs.map +1 -1
- package/dist/EngineWebClient.d.cts +1 -2
- package/dist/EngineWebClient.d.ts +1 -2
- package/dist/EngineWebClient.js +0 -2
- package/dist/EngineWebClient.js.map +1 -1
- package/dist/endpoints.cjs +6 -6
- package/dist/endpoints.cjs.map +1 -1
- package/dist/endpoints.d.cts +1 -1
- package/dist/endpoints.d.ts +1 -1
- package/dist/endpoints.js +6 -6
- package/dist/endpoints.js.map +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -12
- package/dist/index.d.ts +11 -12
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types/EngineServerFailureError.cjs +1 -1
- package/dist/types/EngineServerFailureError.cjs.map +1 -1
- package/dist/types/EngineServerFailureError.d.cts +2 -2
- package/dist/types/EngineServerFailureError.d.ts +2 -2
- package/dist/types/EngineServerFailureError.js +1 -1
- package/dist/types/EngineServerFailureError.js.map +1 -1
- package/dist/types/clientExecuteTypes.cjs.map +1 -1
- package/dist/types/clientExecuteTypes.d.cts +11 -12
- package/dist/types/clientExecuteTypes.d.ts +11 -12
- package/dist/types/clientQueryTypes.cjs.map +1 -1
- package/dist/types/clientQueryTypes.d.cts +40 -23
- package/dist/types/clientQueryTypes.d.ts +40 -23
- package/dist/types/index.cjs +10 -10
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +8 -9
- package/dist/types/index.d.ts +8 -9
- package/dist/types/index.js +5 -5
- package/dist/types/index.js.map +1 -1
- package/dist/types/serverExecuteTypes.cjs.map +1 -1
- package/dist/types/serverExecuteTypes.d.cts +13 -14
- package/dist/types/serverExecuteTypes.d.ts +13 -14
- package/dist/types/serverQueryModelTypes.cjs.map +1 -1
- package/dist/types/serverQueryModelTypes.d.cts +25 -2
- package/dist/types/serverQueryModelTypes.d.ts +25 -2
- package/dist/types/serverQueryTypes.cjs.map +1 -1
- package/dist/types/serverQueryTypes.d.cts +37 -26
- package/dist/types/serverQueryTypes.d.ts +37 -26
- package/dist/types/serverSubscriptionEventTypes.cjs.map +1 -1
- package/dist/types/serverSubscriptionEventTypes.d.cts +87 -23
- package/dist/types/serverSubscriptionEventTypes.d.ts +87 -23
- package/dist/types/serverSubscriptionTypes.cjs.map +1 -1
- package/dist/types/serverSubscriptionTypes.d.cts +21 -4
- package/dist/types/serverSubscriptionTypes.d.ts +21 -4
- package/dist/utils/index.d.cts +3 -4
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/productEngineTypeMappers.cjs +5 -5
- package/dist/utils/productEngineTypeMappers.cjs.map +1 -1
- package/dist/utils/productEngineTypeMappers.d.cts +1 -1
- package/dist/utils/productEngineTypeMappers.d.ts +1 -1
- package/dist/utils/productEngineTypeMappers.js +1 -1
- package/dist/utils/productEngineTypeMappers.js.map +1 -1
- package/dist/utils/queryDataMappers.cjs +115 -90
- package/dist/utils/queryDataMappers.cjs.map +1 -1
- package/dist/utils/queryDataMappers.d.cts +6 -5
- package/dist/utils/queryDataMappers.d.ts +6 -5
- package/dist/utils/queryDataMappers.js +41 -19
- package/dist/utils/queryDataMappers.js.map +1 -1
- package/package.json +3 -4
- package/src/EngineBaseClient.ts +5 -3
- package/src/EngineExecuteBuilder.ts +16 -53
- package/src/EngineExecuteClient.ts +5 -13
- package/src/EngineQueryClient.ts +62 -32
- package/src/EngineWebClient.ts +0 -2
- package/src/endpoints.ts +4 -5
- package/src/index.ts +2 -2
- package/src/types/EngineServerFailureError.ts +2 -2
- package/src/types/clientExecuteTypes.ts +12 -17
- package/src/types/clientQueryTypes.ts +56 -32
- package/src/types/index.ts +5 -5
- package/src/types/serverExecuteTypes.ts +14 -18
- package/src/types/serverQueryModelTypes.ts +26 -1
- package/src/types/serverQueryTypes.ts +46 -29
- package/src/types/serverSubscriptionEventTypes.ts +131 -21
- package/src/types/serverSubscriptionTypes.ts +23 -3
- package/src/utils/productEngineTypeMappers.ts +1 -1
- package/src/utils/queryDataMappers.ts +52 -20
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getNadoEIP712Values,
|
|
4
4
|
getOrderNonce
|
|
5
|
-
} from "@nadohq/
|
|
5
|
+
} from "@nadohq/shared";
|
|
6
6
|
var EngineExecuteBuilder = class {
|
|
7
7
|
constructor(engineClient) {
|
|
8
8
|
this.engineClient = engineClient;
|
|
@@ -54,7 +54,7 @@ var EngineExecuteBuilder = class {
|
|
|
54
54
|
const nonce = this.getOrderNonceIfNeeded(clientParams);
|
|
55
55
|
const orderWithNonce = { ...clientParams.order, nonce };
|
|
56
56
|
const signature = await this.getSignatureIfNeeded("place_order", {
|
|
57
|
-
// Gets expected type
|
|
57
|
+
// Gets expected type (signature params from `clientParams` and order params from `orderWithNonce`)
|
|
58
58
|
...clientParams,
|
|
59
59
|
...orderWithNonce
|
|
60
60
|
});
|
|
@@ -81,51 +81,26 @@ var EngineExecuteBuilder = class {
|
|
|
81
81
|
product_id: clientParams.productId,
|
|
82
82
|
order: orderEIP712Values,
|
|
83
83
|
signature: clientParams.signature,
|
|
84
|
-
spot_leverage: clientParams.spotLeverage ?? null
|
|
84
|
+
spot_leverage: clientParams.spotLeverage ?? null,
|
|
85
|
+
borrow_margin: clientParams.borrowMargin ?? null
|
|
85
86
|
},
|
|
86
87
|
orderParams: clientParams.order
|
|
87
88
|
};
|
|
88
89
|
}
|
|
89
90
|
/**
|
|
90
|
-
* Builds server payload for the `
|
|
91
|
-
*
|
|
92
|
-
* @
|
|
93
|
-
* @returns `place_isolated_order` payload
|
|
94
|
-
*/
|
|
95
|
-
async buildIsolatedPlaceOrderPayload(clientParams) {
|
|
96
|
-
const nonce = this.getOrderNonceIfNeeded(clientParams);
|
|
97
|
-
const orderWithNonce = { ...clientParams.order, nonce };
|
|
98
|
-
const signature = await this.getSignatureIfNeeded("place_isolated_order", {
|
|
99
|
-
// Gets expected type
|
|
100
|
-
...clientParams,
|
|
101
|
-
...orderWithNonce
|
|
102
|
-
});
|
|
103
|
-
return this.buildPlaceIsolatedOrderPayloadSync({
|
|
104
|
-
...clientParams,
|
|
105
|
-
order: orderWithNonce,
|
|
106
|
-
signature
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Synchronously builds server payload for the `place_isolated_order` execute action.
|
|
111
|
-
*
|
|
112
|
-
* @param clientParams Client PlaceIsolatedOrder params.
|
|
113
|
-
* @returns `place_isolated_order` payload
|
|
91
|
+
* Builds server payload for the `place_orders` execute action.
|
|
92
|
+
* @param clientParams Client PlaceOrders params.
|
|
93
|
+
* @returns `place_orders` payload
|
|
114
94
|
*/
|
|
115
|
-
|
|
116
|
-
const isolatedOrderEIP712Values = getNadoEIP712Values(
|
|
117
|
-
"place_isolated_order",
|
|
118
|
-
clientParams.order
|
|
119
|
-
);
|
|
95
|
+
async buildPlaceOrdersPayload(clientParams) {
|
|
120
96
|
return {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
orderParams: clientParams.order
|
|
97
|
+
orders: await Promise.all(
|
|
98
|
+
clientParams.orders.map(async (orderParams) => {
|
|
99
|
+
const payload = await this.buildPlaceOrderPayload(orderParams);
|
|
100
|
+
return payload.payload;
|
|
101
|
+
})
|
|
102
|
+
),
|
|
103
|
+
cancel_on_failure: clientParams.cancelOnFailure ?? null
|
|
129
104
|
};
|
|
130
105
|
}
|
|
131
106
|
/**
|
|
@@ -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 {\n orders: await Promise.all(\n clientParams.orders.map(async (orderParams) => {\n const payload = await this.buildPlaceOrderPayload(orderParams);\n return payload.payload;\n }),\n ),\n cancel_on_failure: clientParams.cancelOnFailure ?? null,\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,15 +49,11 @@ var EngineExecuteClient = class extends import_EngineBaseClient.EngineBaseClient
|
|
|
49
49
|
orderParams: placeOrderPayload.orderParams
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
async
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
placeOrderPayload.payload
|
|
58
|
-
),
|
|
59
|
-
orderParams: placeOrderPayload.orderParams
|
|
60
|
-
};
|
|
52
|
+
async placeOrders(params) {
|
|
53
|
+
return this.execute(
|
|
54
|
+
"place_orders",
|
|
55
|
+
await this.payloadBuilder.buildPlaceOrdersPayload(params)
|
|
56
|
+
);
|
|
61
57
|
}
|
|
62
58
|
async cancelOrders(params) {
|
|
63
59
|
return this.execute(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/EngineExecuteClient.ts"],"sourcesContent":["import { EngineBaseClient, EngineClientOpts } from './EngineBaseClient';\nimport { EngineExecuteBuilder } from './EngineExecuteBuilder';\nimport {\n EngineExecuteRequestParamsByType,\n
|
|
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 placeOrders(params: EngineExecuteRequestParamsByType['place_orders']) {\n return this.execute(\n 'place_orders',\n await this.payloadBuilder.buildPlaceOrdersPayload(params),\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;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,YAAY,QAA0D;AAC1E,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,wBAAwB,MAAM;AAAA,IAC1D;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,13 +1,12 @@
|
|
|
1
|
-
import { EngineExecuteRequestParamsByType, EnginePlaceOrderResult
|
|
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/
|
|
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,7 @@ 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
|
-
|
|
17
|
+
placeOrders(params: EngineExecuteRequestParamsByType['place_orders']): Promise<EngineServerExecuteSuccessResult<"place_orders">>;
|
|
19
18
|
cancelOrders(params: EngineExecuteRequestParamsByType['cancel_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_orders">>;
|
|
20
19
|
cancelAndPlace(params: EngineExecuteRequestParamsByType['cancel_and_place']): Promise<EngineServerExecuteSuccessResult<"cancel_and_place">>;
|
|
21
20
|
cancelProductOrders(params: EngineExecuteRequestParamsByType['cancel_product_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_product_orders">>;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { EngineExecuteRequestParamsByType, EnginePlaceOrderResult
|
|
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/
|
|
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,7 @@ 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
|
-
|
|
17
|
+
placeOrders(params: EngineExecuteRequestParamsByType['place_orders']): Promise<EngineServerExecuteSuccessResult<"place_orders">>;
|
|
19
18
|
cancelOrders(params: EngineExecuteRequestParamsByType['cancel_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_orders">>;
|
|
20
19
|
cancelAndPlace(params: EngineExecuteRequestParamsByType['cancel_and_place']): Promise<EngineServerExecuteSuccessResult<"cancel_and_place">>;
|
|
21
20
|
cancelProductOrders(params: EngineExecuteRequestParamsByType['cancel_product_orders']): Promise<EngineServerExecuteSuccessResult<"cancel_product_orders">>;
|
|
@@ -25,15 +25,11 @@ var EngineExecuteClient = class extends EngineBaseClient {
|
|
|
25
25
|
orderParams: placeOrderPayload.orderParams
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
async
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
placeOrderPayload.payload
|
|
34
|
-
),
|
|
35
|
-
orderParams: placeOrderPayload.orderParams
|
|
36
|
-
};
|
|
28
|
+
async placeOrders(params) {
|
|
29
|
+
return this.execute(
|
|
30
|
+
"place_orders",
|
|
31
|
+
await this.payloadBuilder.buildPlaceOrdersPayload(params)
|
|
32
|
+
);
|
|
37
33
|
}
|
|
38
34
|
async cancelOrders(params) {
|
|
39
35
|
return this.execute(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/EngineExecuteClient.ts"],"sourcesContent":["import { EngineBaseClient, EngineClientOpts } from './EngineBaseClient';\nimport { EngineExecuteBuilder } from './EngineExecuteBuilder';\nimport {\n EngineExecuteRequestParamsByType,\n
|
|
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 placeOrders(params: EngineExecuteRequestParamsByType['place_orders']) {\n return this.execute(\n 'place_orders',\n await this.payloadBuilder.buildPlaceOrdersPayload(params),\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;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,YAAY,QAA0D;AAC1E,WAAO,KAAK;AAAA,MACV;AAAA,MACA,MAAM,KAAK,eAAe,wBAAwB,MAAM;AAAA,IAC1D;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":[]}
|
|
@@ -23,8 +23,7 @@ __export(EngineQueryClient_exports, {
|
|
|
23
23
|
EngineQueryClient: () => EngineQueryClient
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(EngineQueryClient_exports);
|
|
26
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
101
|
-
v_quote_delta: (0,
|
|
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,
|
|
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.
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
267
|
+
healthCheckSequencerFee: (0, import_shared.toBigDecimal)(
|
|
284
268
|
baseResponse.health_check_sequencer_fee
|
|
285
269
|
),
|
|
286
|
-
liquidationSequencerFee: (0,
|
|
270
|
+
liquidationSequencerFee: (0, import_shared.toBigDecimal)(
|
|
287
271
|
baseResponse.liquidation_sequencer_fee
|
|
288
272
|
),
|
|
289
|
-
takerSequencerFee: (0,
|
|
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,
|
|
294
|
-
maker: (0,
|
|
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,11 +283,12 @@ 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,
|
|
286
|
+
acc[currIndex] = (0, import_shared.toBigDecimal)(productFee);
|
|
303
287
|
return acc;
|
|
304
288
|
},
|
|
305
289
|
{}
|
|
306
|
-
)
|
|
290
|
+
),
|
|
291
|
+
feeTier: baseResponse.fee_tier
|
|
307
292
|
};
|
|
308
293
|
}
|
|
309
294
|
/**
|
|
@@ -349,16 +334,22 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
|
|
|
349
334
|
async getMaxOrderSize(params) {
|
|
350
335
|
const baseResponse = await this.query("max_order_size", {
|
|
351
336
|
direction: params.side,
|
|
352
|
-
price_x18: (0,
|
|
337
|
+
price_x18: (0, import_shared.toIntegerString)((0, import_shared.addDecimals)(params.price)),
|
|
353
338
|
product_id: params.productId,
|
|
354
|
-
sender: (0,
|
|
339
|
+
sender: (0, import_shared.subaccountToHex)({
|
|
355
340
|
subaccountOwner: params.subaccountOwner,
|
|
356
341
|
subaccountName: params.subaccountName
|
|
357
342
|
}),
|
|
343
|
+
// Backend expects string variants of booleans
|
|
358
344
|
spot_leverage: params.spotLeverage != null ? String(params.spotLeverage) : null,
|
|
359
|
-
reduce_only: params.reduceOnly != null ? String(params.reduceOnly) : null
|
|
345
|
+
reduce_only: params.reduceOnly != null ? String(params.reduceOnly) : null,
|
|
346
|
+
isolated: params.isolated != null ? String(params.isolated) : null,
|
|
347
|
+
borrow_margin: (
|
|
348
|
+
// This field is only relevant for isolated orders
|
|
349
|
+
params.isolated && params.isoBorrowMargin != null ? String(params.isoBorrowMargin) : null
|
|
350
|
+
)
|
|
360
351
|
});
|
|
361
|
-
return (0,
|
|
352
|
+
return (0, import_shared.toBigDecimal)(baseResponse.max_order_size);
|
|
362
353
|
}
|
|
363
354
|
/**
|
|
364
355
|
* Retrieves the estimated max withdrawal size for a product
|
|
@@ -367,13 +358,13 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
|
|
|
367
358
|
async getMaxWithdrawable(params) {
|
|
368
359
|
const baseResponse = await this.query("max_withdrawable", {
|
|
369
360
|
product_id: params.productId,
|
|
370
|
-
sender: (0,
|
|
361
|
+
sender: (0, import_shared.subaccountToHex)({
|
|
371
362
|
subaccountOwner: params.subaccountOwner,
|
|
372
363
|
subaccountName: params.subaccountName
|
|
373
364
|
}),
|
|
374
365
|
spot_leverage: params.spotLeverage != null ? String(params.spotLeverage) : null
|
|
375
366
|
});
|
|
376
|
-
return (0,
|
|
367
|
+
return (0, import_shared.toBigDecimal)(baseResponse.max_withdrawable);
|
|
377
368
|
}
|
|
378
369
|
/**
|
|
379
370
|
* Retrieves the estimated max quote amount for minting NLP.
|
|
@@ -382,13 +373,27 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
|
|
|
382
373
|
*/
|
|
383
374
|
async getMaxMintNlpAmount(params) {
|
|
384
375
|
const baseResponse = await this.query("max_nlp_mintable", {
|
|
385
|
-
sender: (0,
|
|
376
|
+
sender: (0, import_shared.subaccountToHex)({
|
|
386
377
|
subaccountOwner: params.subaccountOwner,
|
|
387
378
|
subaccountName: params.subaccountName
|
|
388
379
|
}),
|
|
389
380
|
spot_leverage: params.spotLeverage != null ? String(params.spotLeverage) : null
|
|
390
381
|
});
|
|
391
|
-
return (0,
|
|
382
|
+
return (0, import_shared.toBigDecimal)(baseResponse.max_quote_amount);
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Retrieves the max amount of NLP that can be burned.
|
|
386
|
+
*
|
|
387
|
+
* @param params
|
|
388
|
+
*/
|
|
389
|
+
async getMaxBurnNlpAmount(params) {
|
|
390
|
+
const baseResponse = await this.query("max_nlp_burnable", {
|
|
391
|
+
sender: (0, import_shared.subaccountToHex)({
|
|
392
|
+
subaccountOwner: params.subaccountOwner,
|
|
393
|
+
subaccountName: params.subaccountName
|
|
394
|
+
})
|
|
395
|
+
});
|
|
396
|
+
return (0, import_shared.toBigDecimal)(baseResponse.max_nlp_amount);
|
|
392
397
|
}
|
|
393
398
|
/**
|
|
394
399
|
* Gets the currently linked signer for the subaccount
|
|
@@ -397,7 +402,7 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
|
|
|
397
402
|
*/
|
|
398
403
|
async getLinkedSigner(params) {
|
|
399
404
|
const baseResponse = await this.query("linked_signer", {
|
|
400
|
-
subaccount: (0,
|
|
405
|
+
subaccount: (0, import_shared.subaccountToHex)({
|
|
401
406
|
subaccountOwner: params.subaccountOwner,
|
|
402
407
|
subaccountName: params.subaccountName
|
|
403
408
|
})
|
|
@@ -407,21 +412,33 @@ var EngineQueryClient = class extends import_EngineBaseClient.EngineBaseClient {
|
|
|
407
412
|
};
|
|
408
413
|
}
|
|
409
414
|
/**
|
|
410
|
-
* Gets the insurance funds in
|
|
415
|
+
* Gets the insurance funds in USDT.
|
|
411
416
|
* @returns
|
|
412
417
|
*/
|
|
413
418
|
async getInsurance() {
|
|
414
419
|
const baseResponse = await this.query("insurance", {});
|
|
415
|
-
return (0,
|
|
420
|
+
return (0, import_shared.toBigDecimal)(baseResponse.insurance);
|
|
416
421
|
}
|
|
417
422
|
/**
|
|
418
|
-
*
|
|
419
|
-
*
|
|
420
|
-
* @
|
|
423
|
+
* Retrieves the NLP locked and unlocked balances for a subaccount.
|
|
424
|
+
*
|
|
425
|
+
* @param params
|
|
426
|
+
*/
|
|
427
|
+
async getNlpLockedBalances(params) {
|
|
428
|
+
const baseResponse = await this.query("nlp_locked_balances", {
|
|
429
|
+
subaccount: (0, import_shared.subaccountToHex)({
|
|
430
|
+
subaccountOwner: params.subaccountOwner,
|
|
431
|
+
subaccountName: params.subaccountName
|
|
432
|
+
})
|
|
433
|
+
});
|
|
434
|
+
return (0, import_queryDataMappers.mapEngineServerNlpLockedBalances)(baseResponse);
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Retrieves information about all NLP sub-pools
|
|
421
438
|
*/
|
|
422
|
-
async
|
|
423
|
-
const
|
|
424
|
-
return
|
|
439
|
+
async getNlpPoolInfo() {
|
|
440
|
+
const baseResponse = await this.query("nlp_pool_info", {});
|
|
441
|
+
return (0, import_queryDataMappers.mapEngineServerNlpPoolInfo)(baseResponse);
|
|
425
442
|
}
|
|
426
443
|
};
|
|
427
444
|
// Annotate the CommonJS export names for ESM import in node:
|