@orderly.network/hooks 1.3.2 → 1.4.0-alpha.1
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/esm/configProvider.d.ts.map +1 -1
- package/esm/configProvider.js +3 -2
- package/esm/configProvider.js.map +1 -1
- package/esm/dataProvider.d.ts.map +1 -1
- package/esm/dataProvider.js +0 -2
- package/esm/dataProvider.js.map +1 -1
- package/esm/dev/proxyConfigStore.d.ts +15 -0
- package/esm/dev/proxyConfigStore.d.ts.map +1 -0
- package/esm/dev/proxyConfigStore.js +41 -0
- package/esm/dev/proxyConfigStore.js.map +1 -0
- package/esm/index.d.ts +4 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -3
- package/esm/index.js.map +1 -1
- package/esm/orderly/orderlyHooks.d.ts +3 -2
- package/esm/orderly/orderlyHooks.d.ts.map +1 -1
- package/esm/orderly/orderlyHooks.js +3 -2
- package/esm/orderly/orderlyHooks.js.map +1 -1
- package/esm/orderly/useCollateral.js +2 -2
- package/esm/orderly/useCollateral.js.map +1 -1
- package/esm/orderly/useMarginRatio.js +1 -1
- package/esm/orderly/useMarginRatio.js.map +1 -1
- package/esm/orderly/useMaxQty.js +2 -2
- package/esm/orderly/useMaxQty.js.map +1 -1
- package/esm/orderly/useOrderEntry.d.ts.map +1 -1
- package/esm/orderly/useOrderEntry.js +15 -12
- package/esm/orderly/useOrderEntry.js.map +1 -1
- package/esm/orderly/useOrderEntryNext/index.d.ts +1 -0
- package/esm/orderly/useOrderEntryNext/index.d.ts.map +1 -0
- package/esm/orderly/useOrderEntryNext/index.js +2 -0
- package/esm/orderly/useOrderEntryNext/index.js.map +1 -0
- package/esm/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +20 -12
- package/esm/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
- package/esm/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +102 -26
- package/esm/orderly/useOrderStream/useOrderStream.js.map +1 -0
- package/esm/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
- package/esm/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
- package/esm/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
- package/esm/orderly/usePositionStream/usePositionStream.js.map +1 -0
- package/esm/orderly/usePositionStream/utils.d.ts +8 -0
- package/esm/orderly/usePositionStream/utils.d.ts.map +1 -0
- package/esm/orderly/usePositionStream/utils.js +34 -0
- package/esm/orderly/usePositionStream/utils.js.map +1 -0
- package/esm/orderly/usePrivateDataObserver.d.ts.map +1 -1
- package/esm/orderly/usePrivateDataObserver.js +30 -43
- package/esm/orderly/usePrivateDataObserver.js.map +1 -1
- package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
- package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts +30 -0
- package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/index.js +23 -0
- package/esm/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +57 -0
- package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js +210 -0
- package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
- package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
- package/esm/orderly/useTakeProfitAndStopLoss/utils.js +239 -0
- package/esm/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
- package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
- package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
- package/esm/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
- package/esm/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
- package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
- package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
- package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
- package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
- package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
- package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
- package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
- package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
- package/esm/services/orderCreator/baseAlgoCreator.d.ts +22 -0
- package/esm/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/baseAlgoCreator.js +57 -0
- package/esm/services/orderCreator/baseAlgoCreator.js.map +1 -0
- package/esm/services/orderCreator/baseCreator.d.ts +14 -0
- package/esm/services/orderCreator/baseCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/baseCreator.js +92 -0
- package/esm/services/orderCreator/baseCreator.js.map +1 -0
- package/esm/services/orderCreator/factory.d.ts +7 -0
- package/esm/services/orderCreator/factory.d.ts.map +1 -0
- package/esm/services/orderCreator/factory.js +45 -0
- package/esm/services/orderCreator/factory.js.map +1 -0
- package/esm/services/orderCreator/fokCreator.d.ts +4 -0
- package/esm/services/orderCreator/fokCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/fokCreator.js +5 -0
- package/esm/services/orderCreator/fokCreator.js.map +1 -0
- package/esm/services/orderCreator/generalCreator.d.ts +8 -0
- package/esm/services/orderCreator/generalCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/generalCreator.js +15 -0
- package/esm/services/orderCreator/generalCreator.js.map +1 -0
- package/esm/services/orderCreator/interface.d.ts +23 -0
- package/esm/services/orderCreator/interface.d.ts.map +1 -0
- package/esm/services/orderCreator/interface.js +3 -0
- package/esm/services/orderCreator/interface.js.map +1 -0
- package/esm/services/orderCreator/iocCreator.d.ts +4 -0
- package/esm/services/orderCreator/iocCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/iocCreator.js +5 -0
- package/esm/services/orderCreator/iocCreator.js.map +1 -0
- package/esm/services/orderCreator/limitOrderCreator.d.ts +8 -0
- package/esm/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/limitOrderCreator.js +69 -0
- package/esm/services/orderCreator/limitOrderCreator.js.map +1 -0
- package/esm/services/orderCreator/marketOrderCreator.d.ts +24 -0
- package/esm/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/marketOrderCreator.js +18 -0
- package/esm/services/orderCreator/marketOrderCreator.js.map +1 -0
- package/esm/services/orderCreator/postOnlyCreator.d.ts +4 -0
- package/esm/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/postOnlyCreator.js +5 -0
- package/esm/services/orderCreator/postOnlyCreator.js.map +1 -0
- package/esm/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
- package/esm/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/stopLimitOrderCreator.js +84 -0
- package/esm/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
- package/esm/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
- package/esm/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/stopMarketOrderCreator.js +46 -0
- package/esm/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
- package/esm/services/orderCreator/tpslOrderCreator.d.ts +32 -0
- package/esm/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/tpslOrderCreator.js +88 -0
- package/esm/services/orderCreator/tpslOrderCreator.js.map +1 -0
- package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
- package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
- package/esm/services/orderCreator/tpslPositionOrderCreator.js +74 -0
- package/esm/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
- package/esm/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
- package/esm/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
- package/esm/services/orderMerge/algoOrderMergeHandler.js +38 -0
- package/esm/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
- package/esm/services/orderMerge/baseMergeHandler.d.ts +22 -0
- package/esm/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
- package/esm/services/orderMerge/baseMergeHandler.js +160 -0
- package/esm/services/orderMerge/baseMergeHandler.js.map +1 -0
- package/esm/services/orderMerge/interface.d.ts +8 -0
- package/esm/services/orderMerge/interface.d.ts.map +1 -0
- package/esm/services/orderMerge/interface.js +3 -0
- package/esm/services/orderMerge/interface.js.map +1 -0
- package/esm/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
- package/esm/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
- package/esm/services/orderMerge/regularOrderMergeHandler.js +15 -0
- package/esm/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
- package/esm/usePoster.d.ts +3 -0
- package/esm/usePoster.d.ts.map +1 -1
- package/esm/usePoster.js +3 -1
- package/esm/usePoster.js.map +1 -1
- package/esm/utils/createOrder.d.ts +0 -55
- package/esm/utils/createOrder.d.ts.map +1 -1
- package/esm/utils/createOrder.js +0 -334
- package/esm/utils/createOrder.js.map +1 -1
- package/esm/utils/fokCreator.d.ts +1 -0
- package/esm/utils/fokCreator.d.ts.map +1 -0
- package/esm/utils/fokCreator.js +2 -0
- package/esm/utils/fokCreator.js.map +1 -0
- package/esm/utils/index.d.ts +5 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +6 -0
- package/esm/utils/index.js.map +1 -0
- package/esm/utils/order.d.ts +2 -0
- package/esm/utils/order.d.ts.map +1 -0
- package/esm/utils/order.js +3 -0
- package/esm/utils/order.js.map +1 -0
- package/esm/utils/swr.d.ts +3 -1
- package/esm/utils/swr.d.ts.map +1 -1
- package/esm/utils/swr.js +123 -89
- package/esm/utils/swr.js.map +1 -1
- package/esm/utils/ws.d.ts +2 -0
- package/esm/utils/ws.d.ts.map +1 -0
- package/esm/utils/ws.js +9 -0
- package/esm/utils/ws.js.map +1 -0
- package/esm/version.d.ts +1 -1
- package/esm/version.d.ts.map +1 -1
- package/esm/version.js +2 -2
- package/esm/version.js.map +1 -1
- package/lib/configProvider.d.ts.map +1 -1
- package/lib/configProvider.js +3 -2
- package/lib/configProvider.js.map +1 -1
- package/lib/dataProvider.d.ts.map +1 -1
- package/lib/dataProvider.js +0 -2
- package/lib/dataProvider.js.map +1 -1
- package/lib/dev/proxyConfigStore.d.ts +15 -0
- package/lib/dev/proxyConfigStore.d.ts.map +1 -0
- package/lib/dev/proxyConfigStore.js +51 -0
- package/lib/dev/proxyConfigStore.js.map +1 -0
- package/lib/index.d.ts +4 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -3
- package/lib/index.js.map +1 -1
- package/lib/orderly/orderlyHooks.d.ts +3 -2
- package/lib/orderly/orderlyHooks.d.ts.map +1 -1
- package/lib/orderly/orderlyHooks.js +6 -2
- package/lib/orderly/orderlyHooks.js.map +1 -1
- package/lib/orderly/useCollateral.js +2 -2
- package/lib/orderly/useCollateral.js.map +1 -1
- package/lib/orderly/useMarginRatio.js +1 -1
- package/lib/orderly/useMarginRatio.js.map +1 -1
- package/lib/orderly/useMaxQty.js +2 -2
- package/lib/orderly/useMaxQty.js.map +1 -1
- package/lib/orderly/useOrderEntry.d.ts.map +1 -1
- package/lib/orderly/useOrderEntry.js +14 -12
- package/lib/orderly/useOrderEntry.js.map +1 -1
- package/lib/orderly/useOrderEntryNext/index.d.ts +1 -0
- package/lib/orderly/useOrderEntryNext/index.d.ts.map +1 -0
- package/lib/orderly/useOrderEntryNext/index.js +3 -0
- package/lib/orderly/useOrderEntryNext/index.js.map +1 -0
- package/lib/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +20 -12
- package/lib/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
- package/lib/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +100 -25
- package/lib/orderly/useOrderStream/useOrderStream.js.map +1 -0
- package/lib/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
- package/lib/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
- package/lib/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
- package/lib/orderly/usePositionStream/usePositionStream.js.map +1 -0
- package/lib/orderly/usePositionStream/utils.d.ts +8 -0
- package/lib/orderly/usePositionStream/utils.d.ts.map +1 -0
- package/lib/orderly/usePositionStream/utils.js +55 -0
- package/lib/orderly/usePositionStream/utils.js.map +1 -0
- package/lib/orderly/usePrivateDataObserver.d.ts.map +1 -1
- package/lib/orderly/usePrivateDataObserver.js +28 -41
- package/lib/orderly/usePrivateDataObserver.js.map +1 -1
- package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
- package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts +30 -0
- package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/index.js +33 -0
- package/lib/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +57 -0
- package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js +217 -0
- package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
- package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
- package/lib/orderly/useTakeProfitAndStopLoss/utils.js +254 -0
- package/lib/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
- package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
- package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
- package/lib/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
- package/lib/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
- package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
- package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
- package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
- package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
- package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
- package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
- package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
- package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
- package/lib/services/orderCreator/baseAlgoCreator.d.ts +22 -0
- package/lib/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/baseAlgoCreator.js +67 -0
- package/lib/services/orderCreator/baseAlgoCreator.js.map +1 -0
- package/lib/services/orderCreator/baseCreator.d.ts +14 -0
- package/lib/services/orderCreator/baseCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/baseCreator.js +102 -0
- package/lib/services/orderCreator/baseCreator.js.map +1 -0
- package/lib/services/orderCreator/factory.d.ts +7 -0
- package/lib/services/orderCreator/factory.d.ts.map +1 -0
- package/lib/services/orderCreator/factory.js +54 -0
- package/lib/services/orderCreator/factory.js.map +1 -0
- package/lib/services/orderCreator/fokCreator.d.ts +4 -0
- package/lib/services/orderCreator/fokCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/fokCreator.js +15 -0
- package/lib/services/orderCreator/fokCreator.js.map +1 -0
- package/lib/services/orderCreator/generalCreator.d.ts +8 -0
- package/lib/services/orderCreator/generalCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/generalCreator.js +25 -0
- package/lib/services/orderCreator/generalCreator.js.map +1 -0
- package/lib/services/orderCreator/interface.d.ts +23 -0
- package/lib/services/orderCreator/interface.d.ts.map +1 -0
- package/lib/services/orderCreator/interface.js +6 -0
- package/lib/services/orderCreator/interface.js.map +1 -0
- package/lib/services/orderCreator/iocCreator.d.ts +4 -0
- package/lib/services/orderCreator/iocCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/iocCreator.js +15 -0
- package/lib/services/orderCreator/iocCreator.js.map +1 -0
- package/lib/services/orderCreator/limitOrderCreator.d.ts +8 -0
- package/lib/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/limitOrderCreator.js +79 -0
- package/lib/services/orderCreator/limitOrderCreator.js.map +1 -0
- package/lib/services/orderCreator/marketOrderCreator.d.ts +24 -0
- package/lib/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/marketOrderCreator.js +28 -0
- package/lib/services/orderCreator/marketOrderCreator.js.map +1 -0
- package/lib/services/orderCreator/postOnlyCreator.d.ts +4 -0
- package/lib/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/postOnlyCreator.js +15 -0
- package/lib/services/orderCreator/postOnlyCreator.js.map +1 -0
- package/lib/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
- package/lib/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/stopLimitOrderCreator.js +93 -0
- package/lib/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
- package/lib/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
- package/lib/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/stopMarketOrderCreator.js +56 -0
- package/lib/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
- package/lib/services/orderCreator/tpslOrderCreator.d.ts +32 -0
- package/lib/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/tpslOrderCreator.js +94 -0
- package/lib/services/orderCreator/tpslOrderCreator.js.map +1 -0
- package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
- package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
- package/lib/services/orderCreator/tpslPositionOrderCreator.js +83 -0
- package/lib/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
- package/lib/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
- package/lib/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
- package/lib/services/orderMerge/algoOrderMergeHandler.js +48 -0
- package/lib/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
- package/lib/services/orderMerge/baseMergeHandler.d.ts +22 -0
- package/lib/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
- package/lib/services/orderMerge/baseMergeHandler.js +170 -0
- package/lib/services/orderMerge/baseMergeHandler.js.map +1 -0
- package/lib/services/orderMerge/interface.d.ts +8 -0
- package/lib/services/orderMerge/interface.d.ts.map +1 -0
- package/lib/services/orderMerge/interface.js +6 -0
- package/lib/services/orderMerge/interface.js.map +1 -0
- package/lib/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
- package/lib/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
- package/lib/services/orderMerge/regularOrderMergeHandler.js +25 -0
- package/lib/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
- package/lib/usePoster.d.ts +3 -0
- package/lib/usePoster.d.ts.map +1 -1
- package/lib/usePoster.js +3 -1
- package/lib/usePoster.js.map +1 -1
- package/lib/utils/createOrder.d.ts +0 -55
- package/lib/utils/createOrder.d.ts.map +1 -1
- package/lib/utils/createOrder.js +3 -375
- package/lib/utils/createOrder.js.map +1 -1
- package/lib/utils/fokCreator.d.ts +1 -0
- package/lib/utils/fokCreator.d.ts.map +1 -0
- package/lib/utils/fokCreator.js +3 -0
- package/lib/utils/fokCreator.js.map +1 -0
- package/lib/utils/index.d.ts +5 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +36 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/order.d.ts +2 -0
- package/lib/utils/order.d.ts.map +1 -0
- package/lib/utils/order.js +6 -0
- package/lib/utils/order.js.map +1 -0
- package/lib/utils/swr.d.ts +3 -1
- package/lib/utils/swr.d.ts.map +1 -1
- package/lib/utils/swr.js +128 -89
- package/lib/utils/swr.js.map +1 -1
- package/lib/utils/ws.d.ts +2 -0
- package/lib/utils/ws.d.ts.map +1 -0
- package/lib/utils/ws.js +19 -0
- package/lib/utils/ws.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +2 -2
- package/lib/version.js.map +1 -1
- package/package.json +9 -7
- package/esm/orderly/useOrderStream.d.ts.map +0 -1
- package/esm/orderly/useOrderStream.js.map +0 -1
- package/esm/orderly/usePositionStream.d.ts.map +0 -1
- package/esm/orderly/usePositionStream.js.map +0 -1
- package/lib/orderly/useOrderStream.d.ts.map +0 -1
- package/lib/orderly/useOrderStream.js.map +0 -1
- package/lib/orderly/usePositionStream.d.ts.map +0 -1
- package/lib/orderly/usePositionStream.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stopMarketOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/stopMarketOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EAEjB,SAAS,EACT,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,sBAAuB,SAAQ,gBAAgB,CAAC,eAAe,CAAC;IAC3E,MAAM,CACJ,MAAM,EAAE,eAAe,GAAG;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB;;;;;;;;;;;;;;;;;;;;IA+BH,QAAQ,CACN,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,YAAY,CAAC;CAgBzB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AlgoOrderRootType, OrderType, TriggerPriceType } from "@orderly.network/types";
|
|
2
|
+
import { pick } from "ramda";
|
|
3
|
+
import { BaseOrderCreator } from "./baseCreator";
|
|
4
|
+
export class StopMarketOrderCreator extends BaseOrderCreator {
|
|
5
|
+
create(values) {
|
|
6
|
+
const order = {
|
|
7
|
+
...this.baseOrder(values),
|
|
8
|
+
// order_price: values.order_price,
|
|
9
|
+
trigger_price: values.trigger_price,
|
|
10
|
+
algo_type: AlgoOrderRootType.STOP,
|
|
11
|
+
type: OrderType.MARKET,
|
|
12
|
+
quantity: values["order_quantity"],
|
|
13
|
+
// price: values["order_price"],
|
|
14
|
+
trigger_price_type: TriggerPriceType.MARK_PRICE
|
|
15
|
+
};
|
|
16
|
+
return pick([
|
|
17
|
+
"symbol",
|
|
18
|
+
"trigger_price",
|
|
19
|
+
"algo_type",
|
|
20
|
+
"type",
|
|
21
|
+
"quantity",
|
|
22
|
+
// "price",
|
|
23
|
+
"trigger_price_type",
|
|
24
|
+
"side",
|
|
25
|
+
"reduce_only",
|
|
26
|
+
"visible_quantity"
|
|
27
|
+
], order);
|
|
28
|
+
// return order;
|
|
29
|
+
}
|
|
30
|
+
validate(values, config) {
|
|
31
|
+
return this.baseValidate(values, config).then((errors)=>{
|
|
32
|
+
// const errors = this.baseValidate(values, config);
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
const { order_price, trigger_price, side } = values;
|
|
35
|
+
if (!trigger_price) {
|
|
36
|
+
errors.trigger_price = {
|
|
37
|
+
type: "required",
|
|
38
|
+
message: "Trigger price is required"
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return errors;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=stopMarketOrderCreator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orderCreator/stopMarketOrderCreator.ts"],"sourcesContent":["import {\n AlgoOrderEntity,\n AlgoOrderRootType,\n OrderEntity,\n OrderType,\n TriggerPriceType,\n} from \"@orderly.network/types\";\nimport { OrderFormEntity, ValuesDepConfig, VerifyResult } from \"./interface\";\n\nimport { pick } from \"ramda\";\nimport { BaseOrderCreator } from \"./baseCreator\";\n\nexport class StopMarketOrderCreator extends BaseOrderCreator<AlgoOrderEntity> {\n create(\n values: AlgoOrderEntity & {\n order_quantity: number;\n order_price: number;\n }\n ) {\n const order = {\n ...this.baseOrder(values as unknown as OrderEntity),\n // order_price: values.order_price,\n trigger_price: values.trigger_price!,\n algo_type: AlgoOrderRootType.STOP,\n type: OrderType.MARKET,\n quantity: values[\"order_quantity\"]!,\n // price: values[\"order_price\"],\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n };\n\n return pick(\n [\n \"symbol\",\n \"trigger_price\",\n \"algo_type\",\n \"type\",\n \"quantity\",\n // \"price\",\n \"trigger_price_type\",\n \"side\",\n \"reduce_only\",\n \"visible_quantity\",\n ],\n order\n );\n\n // return order;\n }\n validate(\n values: OrderFormEntity,\n config: ValuesDepConfig\n ): Promise<VerifyResult> {\n return this.baseValidate(values, config).then((errors) => {\n // const errors = this.baseValidate(values, config);\n // @ts-ignore\n const { order_price, trigger_price, side } = values;\n\n if (!trigger_price) {\n errors.trigger_price = {\n type: \"required\",\n message: \"Trigger price is required\",\n };\n }\n\n return errors;\n });\n }\n}\n"],"names":["AlgoOrderRootType","OrderType","TriggerPriceType","pick","BaseOrderCreator","StopMarketOrderCreator","create","values","order","baseOrder","trigger_price","algo_type","STOP","type","MARKET","quantity","trigger_price_type","MARK_PRICE","validate","config","baseValidate","then","errors","order_price","side","message"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAEEA,iBAAiB,EAEjBC,SAAS,EACTC,gBAAgB,QACX,yBAAyB;AAGhC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,gBAAgB,QAAQ,gBAAgB;AAEjD,OAAO,MAAMC,+BAA+BD;IAC1CE,OACEC,MAGC,EACD;QACA,MAAMC,QAAQ;YACZ,GAAG,IAAI,CAACC,SAAS,CAACF,OAAiC;YACnD,mCAAmC;YACnCG,eAAeH,OAAOG,aAAa;YACnCC,WAAWX,kBAAkBY,IAAI;YACjCC,MAAMZ,UAAUa,MAAM;YACtBC,UAAUR,MAAM,CAAC,iBAAiB;YAClC,gCAAgC;YAChCS,oBAAoBd,iBAAiBe,UAAU;QACjD;QAEA,OAAOd,KACL;YACE;YACA;YACA;YACA;YACA;YACA,WAAW;YACX;YACA;YACA;YACA;SACD,EACDK;IAGF,gBAAgB;IAClB;IACAU,SACEX,MAAuB,EACvBY,MAAuB,EACA;QACvB,OAAO,IAAI,CAACC,YAAY,CAACb,QAAQY,QAAQE,IAAI,CAAC,CAACC;YAC7C,oDAAoD;YACpD,aAAa;YACb,MAAM,EAAEC,WAAW,EAAEb,aAAa,EAAEc,IAAI,EAAE,GAAGjB;YAE7C,IAAI,CAACG,eAAe;gBAClBY,OAAOZ,aAAa,GAAG;oBACrBG,MAAM;oBACNY,SAAS;gBACX;YACF;YAEA,OAAOH;QACT;IACF;AACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AlgoOrderEntity, OrderType, API } from "@orderly.network/types";
|
|
2
|
+
import { TriggerPriceType } from "@orderly.network/types";
|
|
3
|
+
import { AlgoOrderType } from "@orderly.network/types";
|
|
4
|
+
import { AlgoOrderRootType } from "@orderly.network/types";
|
|
5
|
+
import { OrderSide } from "@orderly.network/types";
|
|
6
|
+
import { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from "./baseAlgoCreator";
|
|
7
|
+
import { ValuesDepConfig } from "./interface";
|
|
8
|
+
export declare class TPSLOrderCreator extends BaseAlgoOrderCreator<AlgoOrderEntity<AlgoOrderRootType.TP_SL>> {
|
|
9
|
+
create(values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>, config: ValuesDepConfig): {
|
|
10
|
+
algo_type: AlgoOrderRootType;
|
|
11
|
+
trigger_price_type: TriggerPriceType;
|
|
12
|
+
reduce_only: boolean;
|
|
13
|
+
quantity: string | number;
|
|
14
|
+
symbol: string;
|
|
15
|
+
child_orders: {
|
|
16
|
+
algo_type: AlgoOrderType;
|
|
17
|
+
reduce_only: boolean;
|
|
18
|
+
side: OrderSide;
|
|
19
|
+
type: OrderType;
|
|
20
|
+
trigger_price: string | number;
|
|
21
|
+
symbol: string;
|
|
22
|
+
is_activated: boolean;
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
crateUpdateOrder(values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>, oldValue: API.AlgoOrder, config: ValuesDepConfig): [
|
|
26
|
+
{
|
|
27
|
+
child_orders: AlgoOrderUpdateEntity[];
|
|
28
|
+
},
|
|
29
|
+
AlgoOrderEntity<AlgoOrderRootType.TP_SL>
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=tpslOrderCreator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tpslOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/tpslOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAa,gBAAiB,SAAQ,oBAAoB,CACxD,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CACzC;IACC,MAAM,CACJ,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAChD,MAAM,EAAE,eAAe;;;;;;;;;;;;;;;;IAoDzB,gBAAgB,CACd,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAChD,QAAQ,EAAE,GAAG,CAAC,SAAS,EACvB,MAAM,EAAE,eAAe,GACtB;QACD;YAAE,YAAY,EAAE,qBAAqB,EAAE,CAAA;SAAE;QACzC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC;KACzC;CAsDF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { OrderType } from "@orderly.network/types";
|
|
2
|
+
import { TriggerPriceType } from "@orderly.network/types";
|
|
3
|
+
import { AlgoOrderType } from "@orderly.network/types";
|
|
4
|
+
import { AlgoOrderRootType } from "@orderly.network/types";
|
|
5
|
+
import { OrderSide } from "@orderly.network/types";
|
|
6
|
+
import { BaseAlgoOrderCreator } from "./baseAlgoCreator";
|
|
7
|
+
import { Decimal } from "@orderly.network/utils";
|
|
8
|
+
export class TPSLOrderCreator extends BaseAlgoOrderCreator {
|
|
9
|
+
create(values, config) {
|
|
10
|
+
const side = values.side === OrderSide.BUY ? OrderSide.SELL : OrderSide.BUY;
|
|
11
|
+
const child_orders = [];
|
|
12
|
+
if (typeof values.tp_trigger_price !== "undefined") {
|
|
13
|
+
const tp_trigger_price = !!values.tp_trigger_price ? new Decimal(values.tp_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.tp_trigger_price;
|
|
14
|
+
child_orders.push({
|
|
15
|
+
algo_type: AlgoOrderType.TAKE_PROFIT,
|
|
16
|
+
reduce_only: true,
|
|
17
|
+
side,
|
|
18
|
+
type: OrderType.MARKET,
|
|
19
|
+
trigger_price: tp_trigger_price,
|
|
20
|
+
symbol: values.symbol,
|
|
21
|
+
is_activated: !!values.tp_trigger_price
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (typeof values.sl_trigger_price !== "undefined") {
|
|
25
|
+
const sl_trigger_price = !!values.sl_trigger_price ? new Decimal(values.sl_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.sl_trigger_price;
|
|
26
|
+
child_orders.push({
|
|
27
|
+
algo_type: AlgoOrderType.STOP_LOSS,
|
|
28
|
+
reduce_only: true,
|
|
29
|
+
side,
|
|
30
|
+
type: OrderType.MARKET,
|
|
31
|
+
trigger_price: sl_trigger_price,
|
|
32
|
+
symbol: values.symbol,
|
|
33
|
+
is_activated: !!values.sl_trigger_price
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
algo_type: AlgoOrderRootType.TP_SL,
|
|
38
|
+
trigger_price_type: TriggerPriceType.MARK_PRICE,
|
|
39
|
+
reduce_only: true,
|
|
40
|
+
quantity: values.quantity,
|
|
41
|
+
symbol: values.symbol,
|
|
42
|
+
child_orders
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
crateUpdateOrder(values, oldValue, config) {
|
|
46
|
+
const data = this.create(values, config);
|
|
47
|
+
const newData = [];
|
|
48
|
+
const needUpdateQty = values.quantity !== oldValue.quantity;
|
|
49
|
+
data.child_orders.forEach((order)=>{
|
|
50
|
+
// find the old order
|
|
51
|
+
let _order = Object.create(null);
|
|
52
|
+
if (needUpdateQty) {
|
|
53
|
+
_order["quantity"] = data.quantity;
|
|
54
|
+
}
|
|
55
|
+
const oldOrder = oldValue.child_orders?.find((oldOrder)=>oldOrder.algo_type === order.algo_type);
|
|
56
|
+
if (oldOrder) {
|
|
57
|
+
if (!order.is_activated) {
|
|
58
|
+
_order["is_activated"] = false;
|
|
59
|
+
} else if (oldOrder.trigger_price !== order.trigger_price) {
|
|
60
|
+
// _order["order_id"] = Number(oldOrder.algo_order_id);
|
|
61
|
+
_order["trigger_price"] = order.trigger_price;
|
|
62
|
+
}
|
|
63
|
+
if (Object.keys(_order).length > 0) {
|
|
64
|
+
_order["order_id"] = Number(oldOrder.algo_order_id);
|
|
65
|
+
newData.push(_order);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
if (needUpdateQty && newData.length < 2) {
|
|
70
|
+
// if quantity is changed, need to update all child orders
|
|
71
|
+
const missingOrders = oldValue.child_orders.filter((order)=>order.algo_order_id !== newData[0].order_id);
|
|
72
|
+
if (missingOrders.length) {
|
|
73
|
+
newData.push({
|
|
74
|
+
quantity: Number(data.quantity),
|
|
75
|
+
order_id: missingOrders[0].algo_order_id
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return [
|
|
80
|
+
{
|
|
81
|
+
child_orders: newData
|
|
82
|
+
},
|
|
83
|
+
data
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=tpslOrderCreator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orderCreator/tpslOrderCreator.ts"],"sourcesContent":["import { AlgoOrderEntity, OrderType, API } from \"@orderly.network/types\";\nimport { TriggerPriceType } from \"@orderly.network/types\";\nimport { AlgoOrderType } from \"@orderly.network/types\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from \"./baseAlgoCreator\";\nimport { ValuesDepConfig } from \"./interface\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport class TPSLOrderCreator extends BaseAlgoOrderCreator<\n AlgoOrderEntity<AlgoOrderRootType.TP_SL>\n> {\n create(\n values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n config: ValuesDepConfig\n ) {\n const side =\n values.side! === OrderSide.BUY ? OrderSide.SELL : OrderSide.BUY;\n\n const child_orders = [];\n\n if (typeof values.tp_trigger_price !== \"undefined\") {\n const tp_trigger_price = !!values.tp_trigger_price\n ? new Decimal(values.tp_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.tp_trigger_price;\n\n child_orders.push({\n algo_type: AlgoOrderType.TAKE_PROFIT,\n reduce_only: true,\n side,\n type: OrderType.MARKET,\n trigger_price: tp_trigger_price,\n symbol: values.symbol,\n is_activated: !!values.tp_trigger_price,\n });\n }\n\n if (typeof values.sl_trigger_price !== \"undefined\") {\n const sl_trigger_price = !!values.sl_trigger_price\n ? new Decimal(values.sl_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.sl_trigger_price;\n child_orders.push({\n algo_type: AlgoOrderType.STOP_LOSS,\n reduce_only: true,\n side,\n type: OrderType.MARKET,\n trigger_price: sl_trigger_price,\n symbol: values.symbol,\n is_activated: !!values.sl_trigger_price,\n });\n }\n\n return {\n algo_type: AlgoOrderRootType.TP_SL,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n reduce_only: true,\n quantity: values.quantity,\n symbol: values.symbol,\n child_orders,\n };\n }\n\n crateUpdateOrder(\n values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n oldValue: API.AlgoOrder,\n config: ValuesDepConfig\n ): [\n { child_orders: AlgoOrderUpdateEntity[] },\n AlgoOrderEntity<AlgoOrderRootType.TP_SL>\n ] {\n const data = this.create(values, config);\n const newData: AlgoOrderUpdateEntity[] = [];\n\n const needUpdateQty = values.quantity !== oldValue.quantity;\n\n data.child_orders.forEach((order) => {\n // find the old order\n let _order = Object.create(null);\n\n if (needUpdateQty) {\n _order[\"quantity\"] = data.quantity;\n }\n\n const oldOrder = oldValue.child_orders?.find(\n (oldOrder) => oldOrder.algo_type === order.algo_type\n );\n\n if (oldOrder) {\n if (!order.is_activated) {\n _order[\"is_activated\"] = false;\n } else if (oldOrder.trigger_price !== order.trigger_price) {\n // _order[\"order_id\"] = Number(oldOrder.algo_order_id);\n _order[\"trigger_price\"] = order.trigger_price as number;\n }\n\n if (Object.keys(_order).length > 0) {\n _order[\"order_id\"] = Number(oldOrder.algo_order_id);\n newData.push(_order);\n }\n }\n });\n\n if (needUpdateQty && newData.length < 2) {\n // if quantity is changed, need to update all child orders\n const missingOrders = oldValue.child_orders.filter(\n (order) => order.algo_order_id !== newData[0].order_id\n );\n\n if (missingOrders.length) {\n newData.push({\n quantity: Number(data.quantity),\n order_id: missingOrders[0].algo_order_id,\n });\n }\n }\n\n return [\n {\n child_orders: newData,\n },\n data,\n ];\n }\n}\n"],"names":["OrderType","TriggerPriceType","AlgoOrderType","AlgoOrderRootType","OrderSide","BaseAlgoOrderCreator","Decimal","TPSLOrderCreator","create","values","config","side","BUY","SELL","child_orders","tp_trigger_price","todp","symbol","quote_dp","toNumber","push","algo_type","TAKE_PROFIT","reduce_only","type","MARKET","trigger_price","is_activated","sl_trigger_price","STOP_LOSS","TP_SL","trigger_price_type","MARK_PRICE","quantity","crateUpdateOrder","oldValue","data","newData","needUpdateQty","forEach","order","_order","Object","oldOrder","find","keys","length","Number","algo_order_id","missingOrders","filter","order_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AlgoOrderEntity, AlgoOrderType, OrderType, TriggerPriceType, AlgoOrderRootType } from "@orderly.network/types";
|
|
2
|
+
import { OrderSide } from "@orderly.network/types";
|
|
3
|
+
import { API } from "@orderly.network/types";
|
|
4
|
+
import { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from "./baseAlgoCreator";
|
|
5
|
+
import { ValuesDepConfig } from "./interface";
|
|
6
|
+
export declare class TPSLPositionOrderCreator extends BaseAlgoOrderCreator<AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>> {
|
|
7
|
+
create(values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>, config: ValuesDepConfig): {
|
|
8
|
+
algo_type: AlgoOrderRootType;
|
|
9
|
+
trigger_price_type: TriggerPriceType;
|
|
10
|
+
symbol: string;
|
|
11
|
+
child_orders: {
|
|
12
|
+
algo_type: AlgoOrderType;
|
|
13
|
+
reduce_only: boolean;
|
|
14
|
+
side: OrderSide;
|
|
15
|
+
type: OrderType;
|
|
16
|
+
trigger_price: string | number;
|
|
17
|
+
trigger_price_type: TriggerPriceType;
|
|
18
|
+
symbol: string;
|
|
19
|
+
is_activated: boolean;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
crateUpdateOrder(values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>,
|
|
23
|
+
/**
|
|
24
|
+
* The old value of the order
|
|
25
|
+
*/
|
|
26
|
+
oldValue: API.AlgoOrder, config: ValuesDepConfig): [
|
|
27
|
+
{
|
|
28
|
+
child_orders: AlgoOrderUpdateEntity[];
|
|
29
|
+
},
|
|
30
|
+
AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=tpslPositionOrderCreator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tpslPositionOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/tpslPositionOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAa,wBAAyB,SAAQ,oBAAoB,CAChE,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CACpD;IACC,MAAM,CACJ,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAC3D,MAAM,EAAE,eAAe;;;;;;;;;;;;;;;IAqDzB,gBAAgB,CACd,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAC3D;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,SAAS,EACvB,MAAM,EAAE,eAAe,GACtB;QACD;YAAE,YAAY,EAAE,qBAAqB,EAAE,CAAA;SAAE;QACzC,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;KACpD;CAoCF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { AlgoOrderType, OrderType, TriggerPriceType, AlgoOrderRootType } from "@orderly.network/types";
|
|
2
|
+
import { OrderSide } from "@orderly.network/types";
|
|
3
|
+
import { BaseAlgoOrderCreator } from "./baseAlgoCreator";
|
|
4
|
+
import { Decimal } from "@orderly.network/utils";
|
|
5
|
+
export class TPSLPositionOrderCreator extends BaseAlgoOrderCreator {
|
|
6
|
+
create(values, config) {
|
|
7
|
+
const side = values.side === OrderSide.BUY ? OrderSide.SELL : OrderSide.BUY;
|
|
8
|
+
const child_orders = [];
|
|
9
|
+
if (typeof values.tp_trigger_price !== "undefined") {
|
|
10
|
+
const tp_trigger_price = !!values.tp_trigger_price ? new Decimal(values.tp_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.tp_trigger_price;
|
|
11
|
+
child_orders.push({
|
|
12
|
+
algo_type: AlgoOrderType.TAKE_PROFIT,
|
|
13
|
+
reduce_only: true,
|
|
14
|
+
side,
|
|
15
|
+
type: OrderType.CLOSE_POSITION,
|
|
16
|
+
trigger_price: tp_trigger_price,
|
|
17
|
+
trigger_price_type: TriggerPriceType.MARK_PRICE,
|
|
18
|
+
symbol: values.symbol,
|
|
19
|
+
is_activated: !!values.tp_trigger_price
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (typeof values.sl_trigger_price !== "undefined") {
|
|
23
|
+
const sl_trigger_price = !!values.sl_trigger_price ? new Decimal(values.sl_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.sl_trigger_price;
|
|
24
|
+
child_orders.push({
|
|
25
|
+
algo_type: AlgoOrderType.STOP_LOSS,
|
|
26
|
+
reduce_only: true,
|
|
27
|
+
side,
|
|
28
|
+
type: OrderType.CLOSE_POSITION,
|
|
29
|
+
trigger_price: sl_trigger_price,
|
|
30
|
+
trigger_price_type: TriggerPriceType.MARK_PRICE,
|
|
31
|
+
symbol: values.symbol,
|
|
32
|
+
is_activated: !!values.sl_trigger_price
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
algo_type: AlgoOrderRootType.POSITIONAL_TP_SL,
|
|
37
|
+
trigger_price_type: TriggerPriceType.MARK_PRICE,
|
|
38
|
+
// reduce_only: true,
|
|
39
|
+
symbol: values.symbol,
|
|
40
|
+
child_orders
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
crateUpdateOrder(values, /**
|
|
44
|
+
* The old value of the order
|
|
45
|
+
*/ oldValue, config) {
|
|
46
|
+
const data = this.create(values, config);
|
|
47
|
+
const newData = [];
|
|
48
|
+
data.child_orders.forEach((order)=>{
|
|
49
|
+
// find the old order
|
|
50
|
+
const oldOrder = oldValue.child_orders?.find((oldOrder)=>oldOrder.algo_type === order.algo_type);
|
|
51
|
+
if (oldOrder) {
|
|
52
|
+
if (!order.is_activated) {
|
|
53
|
+
newData.push({
|
|
54
|
+
is_activated: false,
|
|
55
|
+
order_id: Number(oldOrder.algo_order_id)
|
|
56
|
+
});
|
|
57
|
+
} else if (oldOrder.trigger_price !== order.trigger_price) {
|
|
58
|
+
newData.push({
|
|
59
|
+
trigger_price: order.trigger_price,
|
|
60
|
+
order_id: Number(oldOrder.algo_order_id)
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return [
|
|
66
|
+
{
|
|
67
|
+
child_orders: newData
|
|
68
|
+
},
|
|
69
|
+
data
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=tpslPositionOrderCreator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orderCreator/tpslPositionOrderCreator.ts"],"sourcesContent":["import {\n AlgoOrderEntity,\n AlgoOrderType,\n OrderType,\n TriggerPriceType,\n AlgoOrderRootType,\n} from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { API } from \"@orderly.network/types\";\nimport { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from \"./baseAlgoCreator\";\nimport { ValuesDepConfig } from \"./interface\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport class TPSLPositionOrderCreator extends BaseAlgoOrderCreator<\n AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>\n> {\n create(\n values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>,\n config: ValuesDepConfig\n ) {\n const side =\n values.side! === OrderSide.BUY ? OrderSide.SELL : OrderSide.BUY;\n\n const child_orders = [];\n\n if (typeof values.tp_trigger_price !== \"undefined\") {\n const tp_trigger_price = !!values.tp_trigger_price\n ? new Decimal(values.tp_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.tp_trigger_price;\n\n child_orders.push({\n algo_type: AlgoOrderType.TAKE_PROFIT,\n reduce_only: true,\n side,\n type: OrderType.CLOSE_POSITION,\n trigger_price: tp_trigger_price,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n symbol: values.symbol,\n is_activated: !!values.tp_trigger_price,\n });\n }\n\n if (typeof values.sl_trigger_price !== \"undefined\") {\n const sl_trigger_price = !!values.sl_trigger_price\n ? new Decimal(values.sl_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.sl_trigger_price;\n child_orders.push({\n algo_type: AlgoOrderType.STOP_LOSS,\n reduce_only: true,\n side,\n type: OrderType.CLOSE_POSITION,\n trigger_price: sl_trigger_price,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n symbol: values.symbol,\n is_activated: !!values.sl_trigger_price,\n });\n }\n\n return {\n algo_type: AlgoOrderRootType.POSITIONAL_TP_SL,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n // reduce_only: true,\n symbol: values.symbol,\n child_orders,\n };\n }\n\n crateUpdateOrder(\n values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>,\n /**\n * The old value of the order\n */\n oldValue: API.AlgoOrder,\n config: ValuesDepConfig\n ): [\n { child_orders: AlgoOrderUpdateEntity[] },\n AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>\n ] {\n const data = this.create(values, config);\n const newData: {\n trigger_price?: number;\n order_id: number;\n is_activated?: boolean;\n }[] = [];\n data.child_orders.forEach((order) => {\n // find the old order\n\n const oldOrder = oldValue.child_orders?.find(\n (oldOrder) => oldOrder.algo_type === order.algo_type\n );\n\n if (oldOrder) {\n if (!order.is_activated) {\n newData.push({\n is_activated: false,\n order_id: Number(oldOrder.algo_order_id),\n });\n } else if (oldOrder.trigger_price !== order.trigger_price) {\n newData.push({\n trigger_price: order.trigger_price as number,\n order_id: Number(oldOrder.algo_order_id),\n });\n }\n }\n });\n\n return [\n {\n child_orders: newData,\n },\n data,\n ];\n }\n}\n"],"names":["AlgoOrderType","OrderType","TriggerPriceType","AlgoOrderRootType","OrderSide","BaseAlgoOrderCreator","Decimal","TPSLPositionOrderCreator","create","values","config","side","BUY","SELL","child_orders","tp_trigger_price","todp","symbol","quote_dp","toNumber","push","algo_type","TAKE_PROFIT","reduce_only","type","CLOSE_POSITION","trigger_price","trigger_price_type","MARK_PRICE","is_activated","sl_trigger_price","STOP_LOSS","POSITIONAL_TP_SL","crateUpdateOrder","oldValue","data","newData","forEach","order","oldOrder","find","order_id","Number","algo_order_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAEEA,aAAa,EACbC,SAAS,EACTC,gBAAgB,EAChBC,iBAAiB,QACZ,yBAAyB;AAChC,SAASC,SAAS,QAAQ,yBAAyB;AAEnD,SAAgCC,oBAAoB,QAAQ,oBAAoB;AAEhF,SAASC,OAAO,QAAQ,yBAAyB;AAEjD,OAAO,MAAMC,iCAAiCF;IAG5CG,OACEC,MAA2D,EAC3DC,MAAuB,EACvB;QACA,MAAMC,OACJF,OAAOE,IAAI,KAAMP,UAAUQ,GAAG,GAAGR,UAAUS,IAAI,GAAGT,UAAUQ,GAAG;QAEjE,MAAME,eAAe,EAAE;QAEvB,IAAI,OAAOL,OAAOM,gBAAgB,KAAK,aAAa;YAClD,MAAMA,mBAAmB,CAAC,CAACN,OAAOM,gBAAgB,GAC9C,IAAIT,QAAQG,OAAOM,gBAAgB,EAChCC,IAAI,CAACN,OAAOO,MAAM,CAACC,QAAQ,EAC3BC,QAAQ,KACXV,OAAOM,gBAAgB;YAE3BD,aAAaM,IAAI,CAAC;gBAChBC,WAAWrB,cAAcsB,WAAW;gBACpCC,aAAa;gBACbZ;gBACAa,MAAMvB,UAAUwB,cAAc;gBAC9BC,eAAeX;gBACfY,oBAAoBzB,iBAAiB0B,UAAU;gBAC/CX,QAAQR,OAAOQ,MAAM;gBACrBY,cAAc,CAAC,CAACpB,OAAOM,gBAAgB;YACzC;QACF;QAEA,IAAI,OAAON,OAAOqB,gBAAgB,KAAK,aAAa;YAClD,MAAMA,mBAAmB,CAAC,CAACrB,OAAOqB,gBAAgB,GAC9C,IAAIxB,QAAQG,OAAOqB,gBAAgB,EAChCd,IAAI,CAACN,OAAOO,MAAM,CAACC,QAAQ,EAC3BC,QAAQ,KACXV,OAAOqB,gBAAgB;YAC3BhB,aAAaM,IAAI,CAAC;gBAChBC,WAAWrB,cAAc+B,SAAS;gBAClCR,aAAa;gBACbZ;gBACAa,MAAMvB,UAAUwB,cAAc;gBAC9BC,eAAeI;gBACfH,oBAAoBzB,iBAAiB0B,UAAU;gBAC/CX,QAAQR,OAAOQ,MAAM;gBACrBY,cAAc,CAAC,CAACpB,OAAOqB,gBAAgB;YACzC;QACF;QAEA,OAAO;YACLT,WAAWlB,kBAAkB6B,gBAAgB;YAC7CL,oBAAoBzB,iBAAiB0B,UAAU;YAC/C,qBAAqB;YACrBX,QAAQR,OAAOQ,MAAM;YACrBH;QACF;IACF;IAEAmB,iBACExB,MAA2D,EAC3D;;KAEC,GACDyB,QAAuB,EACvBxB,MAAuB,EAIvB;QACA,MAAMyB,OAAO,IAAI,CAAC3B,MAAM,CAACC,QAAQC;QACjC,MAAM0B,UAIA,EAAE;QACRD,KAAKrB,YAAY,CAACuB,OAAO,CAAC,CAACC;YACzB,qBAAqB;YAErB,MAAMC,WAAWL,SAASpB,YAAY,EAAE0B,KACtC,CAACD,WAAaA,SAASlB,SAAS,KAAKiB,MAAMjB,SAAS;YAGtD,IAAIkB,UAAU;gBACZ,IAAI,CAACD,MAAMT,YAAY,EAAE;oBACvBO,QAAQhB,IAAI,CAAC;wBACXS,cAAc;wBACdY,UAAUC,OAAOH,SAASI,aAAa;oBACzC;gBACF,OAAO,IAAIJ,SAASb,aAAa,KAAKY,MAAMZ,aAAa,EAAE;oBACzDU,QAAQhB,IAAI,CAAC;wBACXM,eAAeY,MAAMZ,aAAa;wBAClCe,UAAUC,OAAOH,SAASI,aAAa;oBACzC;gBACF;YACF;QACF;QAEA,OAAO;YACL;gBACE7B,cAAcsB;YAChB;YACAD;SACD;IACH;AACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { API, WSMessage } from "@orderly.network/types";
|
|
2
|
+
import { BaseMergeHandler } from "./baseMergeHandler";
|
|
3
|
+
export declare class AlgoOrderMergeHandler extends BaseMergeHandler<WSMessage.AlgoOrder[], API.AlgoOrder> {
|
|
4
|
+
get orderId(): number;
|
|
5
|
+
get status(): string;
|
|
6
|
+
pre(message: WSMessage.AlgoOrder[], prevData?: API.OrderResponse[]): API.AlgoOrder;
|
|
7
|
+
static groupOrders(orders: WSMessage.AlgoOrder[]): API.AlgoOrder;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=algoOrderMergeHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"algoOrderMergeHandler.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/algoOrderMergeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,qBAAsB,SAAQ,gBAAgB,CACzD,SAAS,CAAC,SAAS,EAAE,EACrB,GAAG,CAAC,SAAS,CACd;IACC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAeD,GAAG,CACD,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAC7B,GAAG,CAAC,SAAS;IAIhB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS;CAsBjE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseMergeHandler } from "./baseMergeHandler";
|
|
2
|
+
import { object2underscore } from "../../utils/ws";
|
|
3
|
+
export class AlgoOrderMergeHandler extends BaseMergeHandler {
|
|
4
|
+
get orderId() {
|
|
5
|
+
return this.data.algo_order_id;
|
|
6
|
+
}
|
|
7
|
+
get status() {
|
|
8
|
+
return this.data.root_algo_status;
|
|
9
|
+
}
|
|
10
|
+
// merge(
|
|
11
|
+
// key: string,
|
|
12
|
+
// message: WSMessage.AlgoOrder[],
|
|
13
|
+
// prevData: API.OrderResponse[]
|
|
14
|
+
// ): API.OrderResponse[] | undefined {
|
|
15
|
+
// switch (this.status) {
|
|
16
|
+
// case "TRIGGER": {
|
|
17
|
+
// }
|
|
18
|
+
// default:
|
|
19
|
+
// return super.merge(key, message, prevData);
|
|
20
|
+
// }
|
|
21
|
+
// }
|
|
22
|
+
pre(message, prevData) {
|
|
23
|
+
return AlgoOrderMergeHandler.groupOrders(message);
|
|
24
|
+
}
|
|
25
|
+
static groupOrders(orders) {
|
|
26
|
+
const rootOrderIndex = orders.findIndex((order)=>order.parentAlgoOrderId === 0 && order.algoOrderId === order.rootAlgoOrderId);
|
|
27
|
+
if (rootOrderIndex === -1) {
|
|
28
|
+
throw new Error("Root order not found");
|
|
29
|
+
}
|
|
30
|
+
const rootOrder_ = object2underscore(orders[rootOrderIndex]);
|
|
31
|
+
rootOrder_.child_orders = orders.filter((_, index)=>index !== rootOrderIndex).map((order)=>{
|
|
32
|
+
return object2underscore(order);
|
|
33
|
+
});
|
|
34
|
+
return rootOrder_;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=algoOrderMergeHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orderMerge/algoOrderMergeHandler.ts"],"sourcesContent":["import { API, WSMessage } from \"@orderly.network/types\";\nimport { BaseMergeHandler } from \"./baseMergeHandler\";\nimport { object2underscore } from \"../../utils/ws\";\n\nexport class AlgoOrderMergeHandler extends BaseMergeHandler<\n WSMessage.AlgoOrder[],\n API.AlgoOrder\n> {\n get orderId(): number {\n return this.data.algo_order_id;\n }\n\n get status(): string {\n return this.data.root_algo_status;\n }\n\n // merge(\n // key: string,\n // message: WSMessage.AlgoOrder[],\n // prevData: API.OrderResponse[]\n // ): API.OrderResponse[] | undefined {\n // switch (this.status) {\n // case \"TRIGGER\": {\n // }\n // default:\n // return super.merge(key, message, prevData);\n // }\n // }\n\n pre(\n message: WSMessage.AlgoOrder[],\n prevData?: API.OrderResponse[]\n ): API.AlgoOrder {\n return AlgoOrderMergeHandler.groupOrders(message);\n }\n\n static groupOrders(orders: WSMessage.AlgoOrder[]): API.AlgoOrder {\n const rootOrderIndex = orders.findIndex(\n (order) =>\n order.parentAlgoOrderId === 0 &&\n order.algoOrderId === order.rootAlgoOrderId\n );\n if (rootOrderIndex === -1) {\n throw new Error(\"Root order not found\");\n }\n\n const rootOrder_ = object2underscore(\n orders[rootOrderIndex]\n ) as unknown as API.AlgoOrder;\n\n rootOrder_.child_orders = orders\n .filter((_, index) => index !== rootOrderIndex)\n .map((order) => {\n return object2underscore(order) as unknown as API.AlgoOrder;\n });\n\n return rootOrder_;\n }\n}\n"],"names":["BaseMergeHandler","object2underscore","AlgoOrderMergeHandler","orderId","data","algo_order_id","status","root_algo_status","pre","message","prevData","groupOrders","orders","rootOrderIndex","findIndex","order","parentAlgoOrderId","algoOrderId","rootAlgoOrderId","Error","rootOrder_","child_orders","filter","_","index","map"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,iBAAiB,QAAQ,iBAAiB;AAEnD,OAAO,MAAMC,8BAA8BF;IAIzC,IAAIG,UAAkB;QACpB,OAAO,IAAI,CAACC,IAAI,CAACC,aAAa;IAChC;IAEA,IAAIC,SAAiB;QACnB,OAAO,IAAI,CAACF,IAAI,CAACG,gBAAgB;IACnC;IAEA,WAAW;IACX,mBAAmB;IACnB,sCAAsC;IACtC,oCAAoC;IACpC,yCAAyC;IACzC,6BAA6B;IAC7B,0BAA0B;IAC1B,UAAU;IACV,iBAAiB;IACjB,sDAAsD;IACtD,QAAQ;IACR,MAAM;IAENC,IACEC,OAA8B,EAC9BC,QAA8B,EACf;QACf,OAAOR,sBAAsBS,WAAW,CAACF;IAC3C;IAEA,OAAOE,YAAYC,MAA6B,EAAiB;QAC/D,MAAMC,iBAAiBD,OAAOE,SAAS,CACrC,CAACC,QACCA,MAAMC,iBAAiB,KAAK,KAC5BD,MAAME,WAAW,KAAKF,MAAMG,eAAe;QAE/C,IAAIL,mBAAmB,CAAC,GAAG;YACzB,MAAM,IAAIM,MAAM;QAClB;QAEA,MAAMC,aAAanB,kBACjBW,MAAM,CAACC,eAAe;QAGxBO,WAAWC,YAAY,GAAGT,OACvBU,MAAM,CAAC,CAACC,GAAGC,QAAUA,UAAUX,gBAC/BY,GAAG,CAAC,CAACV;YACJ,OAAOd,kBAAkBc;QAC3B;QAEF,OAAOK;IACT;AACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { WSMessage, API } from "@orderly.network/types";
|
|
2
|
+
import { IOrderMergeHandler } from "./interface";
|
|
3
|
+
export declare abstract class BaseMergeHandler<T extends WSMessage.AlgoOrder[] | WSMessage.Order, D extends API.AlgoOrder | API.Order> implements IOrderMergeHandler<T, D> {
|
|
4
|
+
private message;
|
|
5
|
+
data: D;
|
|
6
|
+
constructor(message: T);
|
|
7
|
+
abstract get status(): string;
|
|
8
|
+
abstract get orderId(): number;
|
|
9
|
+
abstract pre(message: T, prevData?: API.OrderResponse[]): D;
|
|
10
|
+
/**
|
|
11
|
+
* format the order data;
|
|
12
|
+
*/
|
|
13
|
+
formatOrder(message: T): D;
|
|
14
|
+
merge(key: string, message: T, prevData: API.OrderResponse[]): API.OrderResponse[];
|
|
15
|
+
insert(orders?: API.OrderResponse[] | undefined): API.OrderResponse[];
|
|
16
|
+
insetOrUpdate(orders: API.OrderResponse[]): API.OrderResponse[];
|
|
17
|
+
update(prevData: API.OrderResponse[]): API.OrderResponse[];
|
|
18
|
+
remove(prevData: API.OrderResponse[]): API.OrderResponse[];
|
|
19
|
+
findOrderIndex(orders: API.OrderResponse[]): number[] | undefined;
|
|
20
|
+
orderIsExisting(orders: API.OrderResponse[]): boolean;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=baseMergeHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseMergeHandler.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/baseMergeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,8BAAsB,gBAAgB,CACpC,CAAC,SAAS,SAAS,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,KAAK,EACjD,CAAC,SAAS,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CACnC,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGvB,OAAO,CAAC,OAAO;IAD3B,IAAI,EAAE,CAAC,CAAC;gBACY,OAAO,EAAE,CAAC;IAG9B,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC;IAC9B,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC;IAE3D;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;IAc1B,KAAK,CACH,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAC5B,GAAG,CAAC,aAAa,EAAE;IA0EtB,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC,aAAa,EAAE;IAgBrE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE;IAO/D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE;IAqB1D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE;IAiB1D,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS;IA+BjE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,OAAO;CAItD"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { lensIndex, over } from "ramda";
|
|
2
|
+
export class BaseMergeHandler {
|
|
3
|
+
message;
|
|
4
|
+
data;
|
|
5
|
+
constructor(message){
|
|
6
|
+
this.message = message;
|
|
7
|
+
this.data = this.formatOrder(message);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* format the order data;
|
|
11
|
+
*/ formatOrder(message) {
|
|
12
|
+
const data = this.pre(message);
|
|
13
|
+
if (!data.created_time) {
|
|
14
|
+
data.created_time = data.timestamp;
|
|
15
|
+
}
|
|
16
|
+
if (data.type && data.type.endsWith("_ORDER")) {
|
|
17
|
+
data.type = data.type.replace("_ORDER", "");
|
|
18
|
+
}
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
merge(key, message, prevData) {
|
|
22
|
+
switch(this.status){
|
|
23
|
+
case "NEW":
|
|
24
|
+
{
|
|
25
|
+
if (key.startsWith("orders:CANCELLED") || key.startsWith("orders:FILLED") || key.startsWith("orders:REJECTED")) {
|
|
26
|
+
return prevData;
|
|
27
|
+
}
|
|
28
|
+
return this.insetOrUpdate(prevData);
|
|
29
|
+
}
|
|
30
|
+
case "CANCELLED":
|
|
31
|
+
{
|
|
32
|
+
if (key.startsWith("orders:FILLED") || key.startsWith("orders:REJECTED")) {
|
|
33
|
+
return prevData;
|
|
34
|
+
}
|
|
35
|
+
if (key.startsWith("orders:NEW") || key.startsWith("orders:INCOMPLETE")) {
|
|
36
|
+
return this.remove(prevData);
|
|
37
|
+
}
|
|
38
|
+
if (key.startsWith("orders:CANCELLED")) {
|
|
39
|
+
return this.insert(prevData);
|
|
40
|
+
}
|
|
41
|
+
return this.update(prevData);
|
|
42
|
+
}
|
|
43
|
+
case "REPLACED":
|
|
44
|
+
return this.update(prevData);
|
|
45
|
+
case "FILLED":
|
|
46
|
+
{
|
|
47
|
+
if (this.orderIsExisting(prevData)) {
|
|
48
|
+
// for new list, remove the order if it exists
|
|
49
|
+
if (key.startsWith("orders:INCOMPLETE") || key.startsWith("orders:NEW")) {
|
|
50
|
+
// if fullfilled, remove from the list
|
|
51
|
+
if ("total_executed_quantity" in this.data && this.data.total_executed_quantity === this.data.quantity) {
|
|
52
|
+
return this.remove(prevData);
|
|
53
|
+
}
|
|
54
|
+
// update
|
|
55
|
+
return this.update(prevData);
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
// for filled list, insert the order if it doesn't exist
|
|
59
|
+
if (key.startsWith("orders:CANCELLED") || key.startsWith("orders:INCOMPLETE") || key.startsWith("orders:NEW")) {
|
|
60
|
+
return prevData;
|
|
61
|
+
}
|
|
62
|
+
// if filled/history list:
|
|
63
|
+
return this.insert(prevData);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
return prevData || [];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
insert(orders) {
|
|
71
|
+
const index = lensIndex(0);
|
|
72
|
+
return over(//@ts-ignore
|
|
73
|
+
index, (item)=>({
|
|
74
|
+
meta: {
|
|
75
|
+
...item.meta,
|
|
76
|
+
total: item.meta.total + 1
|
|
77
|
+
},
|
|
78
|
+
rows: [
|
|
79
|
+
this.data,
|
|
80
|
+
...item.rows
|
|
81
|
+
]
|
|
82
|
+
}), orders);
|
|
83
|
+
}
|
|
84
|
+
insetOrUpdate(orders) {
|
|
85
|
+
if (this.orderIsExisting(orders)) {
|
|
86
|
+
return this.update(orders);
|
|
87
|
+
}
|
|
88
|
+
return this.insert(orders);
|
|
89
|
+
}
|
|
90
|
+
update(prevData) {
|
|
91
|
+
const idx = this.findOrderIndex(prevData);
|
|
92
|
+
if (!Array.isArray(idx)) {
|
|
93
|
+
return prevData || [];
|
|
94
|
+
}
|
|
95
|
+
const [index, index2] = idx;
|
|
96
|
+
return prevData.map((item, i)=>{
|
|
97
|
+
return {
|
|
98
|
+
meta: {
|
|
99
|
+
...item.meta
|
|
100
|
+
},
|
|
101
|
+
rows: item.rows.map((order, j)=>{
|
|
102
|
+
if (index === i && index2 === j) {
|
|
103
|
+
return {
|
|
104
|
+
...order,
|
|
105
|
+
...this.data
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return order;
|
|
109
|
+
})
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
remove(prevData) {
|
|
114
|
+
const idx = this.findOrderIndex(prevData);
|
|
115
|
+
if (!Array.isArray(idx)) {
|
|
116
|
+
return prevData;
|
|
117
|
+
}
|
|
118
|
+
const [index, index2] = idx;
|
|
119
|
+
return prevData.map((item, i)=>{
|
|
120
|
+
return {
|
|
121
|
+
meta: {
|
|
122
|
+
...item.meta,
|
|
123
|
+
total: item.meta.total - 1
|
|
124
|
+
},
|
|
125
|
+
rows: index === i ? item.rows.filter((_, i)=>i !== index2) : item.rows
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
findOrderIndex(orders) {
|
|
130
|
+
let index = 0;
|
|
131
|
+
let index2;
|
|
132
|
+
for(; index < orders.length; index++){
|
|
133
|
+
// index = idx;
|
|
134
|
+
const item = orders[index];
|
|
135
|
+
for(let idx2 = 0; idx2 < item.rows.length; idx2++){
|
|
136
|
+
const element = item.rows[idx2];
|
|
137
|
+
if (element.algo_order_id === this.orderId || element.order_id === this.orderId) {
|
|
138
|
+
index2 = idx2;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (typeof index2 !== "undefined") {
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (typeof index2 === "undefined") {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
return [
|
|
150
|
+
index,
|
|
151
|
+
index2
|
|
152
|
+
];
|
|
153
|
+
}
|
|
154
|
+
orderIsExisting(orders) {
|
|
155
|
+
const index = this.findOrderIndex(orders);
|
|
156
|
+
return Array.isArray(index);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
//# sourceMappingURL=baseMergeHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orderMerge/baseMergeHandler.ts"],"sourcesContent":["import { WSMessage, API } from \"@orderly.network/types\";\nimport { IOrderMergeHandler } from \"./interface\";\nimport { lensIndex, over } from \"ramda\";\n\nexport abstract class BaseMergeHandler<\n T extends WSMessage.AlgoOrder[] | WSMessage.Order,\n D extends API.AlgoOrder | API.Order\n> implements IOrderMergeHandler<T, D>\n{\n data: D;\n constructor(private message: T) {\n this.data = this.formatOrder(message);\n }\n abstract get status(): string;\n abstract get orderId(): number;\n abstract pre(message: T, prevData?: API.OrderResponse[]): D;\n\n /**\n * format the order data;\n */\n formatOrder(message: T): D {\n const data = this.pre(message);\n\n if (!data.created_time) {\n data.created_time = (data as any).timestamp;\n }\n\n if (data.type && data.type.endsWith(\"_ORDER\")) {\n data.type = data.type.replace(\"_ORDER\", \"\");\n }\n\n return data;\n }\n\n merge(\n key: string,\n message: T,\n prevData: API.OrderResponse[]\n ): API.OrderResponse[] {\n switch (this.status) {\n case \"NEW\": {\n if (\n key.startsWith(\"orders:CANCELLED\") ||\n key.startsWith(\"orders:FILLED\") ||\n key.startsWith(\"orders:REJECTED\")\n ) {\n return prevData;\n }\n return this.insetOrUpdate(prevData);\n }\n case \"CANCELLED\": {\n if (\n key.startsWith(\"orders:FILLED\") ||\n key.startsWith(\"orders:REJECTED\")\n ) {\n return prevData;\n }\n if (\n key.startsWith(\"orders:NEW\") ||\n key.startsWith(\"orders:INCOMPLETE\")\n ) {\n return this.remove(prevData);\n }\n\n if (key.startsWith(\"orders:CANCELLED\")) {\n return this.insert(prevData);\n }\n\n return this.update(prevData);\n }\n\n case \"REPLACED\":\n return this.update(prevData);\n\n case \"FILLED\": {\n if (this.orderIsExisting(prevData)) {\n // for new list, remove the order if it exists\n if (\n key.startsWith(\"orders:INCOMPLETE\") ||\n key.startsWith(\"orders:NEW\")\n ) {\n // if fullfilled, remove from the list\n if (\n \"total_executed_quantity\" in this.data &&\n this.data.total_executed_quantity === this.data.quantity\n ) {\n return this.remove(prevData);\n }\n\n // update\n return this.update(prevData);\n }\n } else {\n // for filled list, insert the order if it doesn't exist\n\n if (\n key.startsWith(\"orders:CANCELLED\") ||\n key.startsWith(\"orders:INCOMPLETE\") ||\n key.startsWith(\"orders:NEW\")\n ) {\n return prevData;\n }\n // if filled/history list:\n return this.insert(prevData);\n }\n }\n\n default:\n return prevData || [];\n }\n }\n\n insert(orders?: API.OrderResponse[] | undefined): API.OrderResponse[] {\n const index = lensIndex<API.OrderResponse>(0);\n return over(\n //@ts-ignore\n index,\n (item: any) => ({\n meta: {\n ...item.meta,\n total: item.meta.total + 1,\n },\n rows: [this.data, ...item.rows],\n }),\n orders\n ) as API.OrderResponse[];\n }\n\n insetOrUpdate(orders: API.OrderResponse[]): API.OrderResponse[] {\n if (this.orderIsExisting(orders)) {\n return this.update(orders);\n }\n return this.insert(orders);\n }\n\n update(prevData: API.OrderResponse[]): API.OrderResponse[] {\n const idx = this.findOrderIndex(prevData);\n if (!Array.isArray(idx)) {\n return prevData || [];\n }\n\n const [index, index2] = idx;\n\n return prevData.map((item, i) => {\n return {\n meta: { ...item.meta },\n rows: item.rows.map((order, j) => {\n if (index === i && index2 === j) {\n return { ...order, ...this.data };\n }\n return order;\n }),\n };\n });\n }\n\n remove(prevData: API.OrderResponse[]): API.OrderResponse[] {\n const idx = this.findOrderIndex(prevData);\n if (!Array.isArray(idx)) {\n return prevData;\n }\n\n const [index, index2] = idx;\n\n return prevData.map((item, i) => {\n return {\n meta: { ...item.meta, total: item.meta.total - 1 },\n rows:\n index === i ? item.rows.filter((_, i) => i !== index2) : item.rows,\n };\n });\n }\n\n findOrderIndex(orders: API.OrderResponse[]): number[] | undefined {\n let index: number = 0;\n let index2: number | undefined;\n\n for (; index < orders.length; index++) {\n // index = idx;\n const item = orders[index];\n\n for (let idx2 = 0; idx2 < item.rows.length; idx2++) {\n const element = item.rows[idx2];\n if (\n (element as API.AlgoOrder).algo_order_id === this.orderId ||\n (element as API.Order).order_id === this.orderId\n ) {\n index2 = idx2;\n\n break;\n }\n }\n if (typeof index2 !== \"undefined\") {\n break;\n }\n }\n\n if (typeof index2 === \"undefined\") {\n return;\n }\n\n return [index, index2];\n }\n\n orderIsExisting(orders: API.OrderResponse[]): boolean {\n const index = this.findOrderIndex(orders);\n return Array.isArray(index);\n }\n}\n"],"names":["lensIndex","over","BaseMergeHandler","data","constructor","message","formatOrder","pre","created_time","timestamp","type","endsWith","replace","merge","key","prevData","status","startsWith","insetOrUpdate","remove","insert","update","orderIsExisting","total_executed_quantity","quantity","orders","index","item","meta","total","rows","idx","findOrderIndex","Array","isArray","index2","map","i","order","j","filter","_","length","idx2","element","algo_order_id","orderId","order_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { API } from "@orderly.network/types";
|
|
2
|
+
export interface IOrderMergeHandler<T, D> {
|
|
3
|
+
merge(key: string, updatedOrder: T, prevData: API.OrderResponse[]): API.OrderResponse[];
|
|
4
|
+
insert(prevData: API.OrderResponse[]): API.OrderResponse[];
|
|
5
|
+
update(prevData: API.OrderResponse[]): API.OrderResponse[];
|
|
6
|
+
remove(prevData: API.OrderResponse[]): API.OrderResponse[];
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAa,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC;IACtC,KAAK,CACH,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAC5B,GAAG,CAAC,aAAa,EAAE,CAAC;IACvB,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;CAC5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orderMerge/interface.ts"],"sourcesContent":["import { API, WSMessage } from \"@orderly.network/types\";\n\nexport interface IOrderMergeHandler<T, D> {\n merge(\n key: string,\n updatedOrder: T,\n prevData: API.OrderResponse[]\n ): API.OrderResponse[];\n insert(prevData: API.OrderResponse[]): API.OrderResponse[];\n update(prevData: API.OrderResponse[]): API.OrderResponse[];\n remove(prevData: API.OrderResponse[]): API.OrderResponse[];\n}\n"],"names":[],"rangeMappings":"","mappings":"AAEA,WASC"}
|