@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,8 @@
|
|
|
1
|
+
import { API, WSMessage } from "@orderly.network/types";
|
|
2
|
+
import { BaseMergeHandler } from "./baseMergeHandler";
|
|
3
|
+
export declare class RegularOrderMergeHandler extends BaseMergeHandler<WSMessage.Order, API.Order> {
|
|
4
|
+
get orderId(): number;
|
|
5
|
+
get status(): string;
|
|
6
|
+
pre(message: WSMessage.Order, prevData?: API.OrderResponse[] | undefined): API.Order;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=regularOrderMergeHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regularOrderMergeHandler.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/regularOrderMergeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,wBAAyB,SAAQ,gBAAgB,CAC5D,SAAS,CAAC,KAAK,EACf,GAAG,CAAC,KAAK,CACV;IACC,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,GAAG,CACD,OAAO,EAAE,SAAS,CAAC,KAAK,EACxB,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,SAAS,GACzC,GAAG,CAAC,KAAK;CAGb"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseMergeHandler } from "./baseMergeHandler";
|
|
2
|
+
import { object2underscore } from "../../utils/ws";
|
|
3
|
+
export class RegularOrderMergeHandler extends BaseMergeHandler {
|
|
4
|
+
get orderId() {
|
|
5
|
+
return this.data.order_id;
|
|
6
|
+
}
|
|
7
|
+
get status() {
|
|
8
|
+
return this.data.status;
|
|
9
|
+
}
|
|
10
|
+
pre(message, prevData) {
|
|
11
|
+
return object2underscore(message);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=regularOrderMergeHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orderMerge/regularOrderMergeHandler.ts"],"sourcesContent":["import { API, WSMessage } from \"@orderly.network/types\";\nimport { BaseMergeHandler } from \"./baseMergeHandler\";\nimport { object2underscore } from \"../../utils/ws\";\n\nexport class RegularOrderMergeHandler extends BaseMergeHandler<\n WSMessage.Order,\n API.Order\n> {\n get orderId(): number {\n return this.data.order_id;\n }\n get status(): string {\n return this.data.status;\n }\n pre(\n message: WSMessage.Order,\n prevData?: API.OrderResponse[] | undefined\n ): API.Order {\n return object2underscore(message) as unknown as API.Order;\n }\n}\n"],"names":["BaseMergeHandler","object2underscore","RegularOrderMergeHandler","orderId","data","order_id","status","pre","message","prevData"],"rangeMappings":";;;;;;;;;;;;","mappings":"AACA,SAASA,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,iBAAiB,QAAQ,iBAAiB;AAEnD,OAAO,MAAMC,iCAAiCF;IAI5C,IAAIG,UAAkB;QACpB,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ;IAC3B;IACA,IAAIC,SAAiB;QACnB,OAAO,IAAI,CAACF,IAAI,CAACE,MAAM;IACzB;IACAC,IACEC,OAAwB,EACxBC,QAA0C,EAC/B;QACX,OAAOR,kBAAkBO;IAC3B;AACF"}
|
package/esm/usePoster.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export declare const usePoster: (data: DrawOptions, options?: {
|
|
|
18
18
|
ratio?: number;
|
|
19
19
|
}) => {
|
|
20
20
|
readonly error: Error | null;
|
|
21
|
+
/**
|
|
22
|
+
* The ref to the canvas element, you should pass this ref to the canvas element
|
|
23
|
+
*/
|
|
21
24
|
readonly ref: (ref: HTMLCanvasElement | null) => void;
|
|
22
25
|
/**
|
|
23
26
|
* Converts the poster to a data URL
|
package/esm/usePoster.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePoster.d.ts","sourceRoot":"","sources":["../src/usePoster.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAIhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,SAId,WAAW,YACP;IACR;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;
|
|
1
|
+
{"version":3,"file":"usePoster.d.ts","sourceRoot":"","sources":["../src/usePoster.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAIhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,SAId,WAAW,YACP;IACR;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;IA8GC;;OAEG;wBAnDa,iBAAiB,GAAG,IAAI;IAqDxC;;OAEG;gCA9EqB,MAAM,mBAAmB,MAAM;IAgFvD;;OAEG;6BAvEK,MAAM,mBAAmB,MAAM,KAAG,QAAQ,IAAI,GAAG,IAAI,CAAC;IAyE9D;;OAEG;kCApDQ,MAAM,SAAQ,MAAM,mBAAiC,MAAM;IAsDtE;;OAEG;;;CAIN,CAAC"}
|
package/esm/usePoster.js
CHANGED
|
@@ -114,7 +114,9 @@ import { SDKError } from "@orderly.network/types";
|
|
|
114
114
|
]);
|
|
115
115
|
return {
|
|
116
116
|
error,
|
|
117
|
-
|
|
117
|
+
/**
|
|
118
|
+
* The ref to the canvas element, you should pass this ref to the canvas element
|
|
119
|
+
*/ ref,
|
|
118
120
|
/**
|
|
119
121
|
* Converts the poster to a data URL
|
|
120
122
|
*/ toDataURL,
|
package/esm/usePoster.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/usePoster.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { mergeDeepRight } from \"ramda\";\nimport { PosterPainter } from \"./services/painter/painter\";\nimport { type DrawOptions } from \"./services/painter/basePaint\";\nimport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nimport { SDKError } from \"@orderly.network/types\";\n\n/**\n * Generates a poster image based on position information. You can set the size, background color, font color, font size, and content position of the poster.\n * @example\n * ```tsx\n * const { ref, toDataURL, toBlob, download, copy } = usePoster({\n * backgroundColor: \"#0b8c70\",\n * backgroundImg: \"/images/poster_bg.png\",\n * color: \"rgba(255, 255, 255, 0.98)\",\n * profitColor: \"rgb(0,181,159)\",\n * ...\n * });\n */\nexport const usePoster = (\n /**\n * The options to draw the poster\n */\n data: DrawOptions,\n options?: {\n /**\n * The ratio of the poster\n */\n ratio?: number;\n }\n) => {\n const [error, setError] = useState<Error | null>(null);\n const [canCopy, setCanCopy] = useState<boolean>(\n () => typeof navigator.clipboard !== \"undefined\"\n );\n\n const painterRef = useRef<PosterPainter | null>(null);\n\n const [target, setTarget] = useState<HTMLCanvasElement | null>(null);\n\n useEffect(() => {\n // Create the painter instance\n if (target && !painterRef.current) {\n painterRef.current = new PosterPainter(target, {\n ratio: 1,\n ...options,\n });\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [target]);\n\n useEffect(() => {\n if (painterRef.current) {\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [data]);\n\n const toDataURL = (type?: string, encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n return target.toDataURL(type, encoderOptions);\n };\n\n /**\n * Converts the poster to a blob\n */\n const toBlob = useCallback(\n (type?: string, encoderOptions?: number): Promise<Blob | null> => {\n return new Promise<Blob | null>((resolve) => {\n if (!target) {\n resolve(null);\n return;\n }\n target.toBlob(resolve, type, encoderOptions);\n });\n },\n [target]\n );\n\n const ref = (ref: HTMLCanvasElement | null) => {\n if (!ref) return;\n if (ref.tagName.toUpperCase() !== \"CANVAS\") {\n // throw new Error(\"The ref must be a canvas element\");\n setError(new SDKError(\"The ref must be a canvas element\"));\n return;\n }\n setTarget(ref);\n };\n\n const download = useCallback(\n (filename: string, type: string = \"image/png\", encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n const img = new Image();\n img.src = target.toDataURL(type, encoderOptions);\n const link = document.createElement(\"a\");\n link.href = img.src;\n link.download = filename;\n link.click();\n },\n [target]\n );\n\n const copy = useCallback(() => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n // copy image to clipboard\n return new Promise<void>((resolve, reject) => {\n if (!navigator.clipboard) {\n reject(new SDKError(\"Clipboard API is not supported\"));\n return;\n }\n target.toBlob((blob) => {\n if (!blob) {\n reject(new SDKError(\"Failed to create blob\"));\n return;\n }\n return navigator.clipboard\n .write([new ClipboardItem({ [blob.type]: blob })])\n .then(resolve, reject);\n });\n });\n }, [target]);\n\n return {\n error,\n ref,\n /**\n * Converts the poster to a data URL\n */\n toDataURL,\n /**\n * Converts the poster to a blob\n */\n toBlob,\n /**\n * Downloads the poster as an image\n */\n download,\n /**\n * Browser if supports copy image to clipboard\n */\n canCopy,\n copy,\n } as const;\n};\n"],"names":["useCallback","useEffect","useRef","useState","mergeDeepRight","PosterPainter","DefaultLayoutConfig","SDKError","usePoster","data","options","error","setError","canCopy","setCanCopy","navigator","clipboard","painterRef","target","setTarget","current","ratio","draw","layout","fontFamily","toDataURL","type","encoderOptions","toBlob","Promise","resolve","ref","tagName","toUpperCase","download","filename","img","Image","src","link","document","createElement","href","click","copy","reject","blob","write","ClipboardItem","then"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../src/usePoster.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { mergeDeepRight } from \"ramda\";\nimport { PosterPainter } from \"./services/painter/painter\";\nimport { type DrawOptions } from \"./services/painter/basePaint\";\nimport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nimport { SDKError } from \"@orderly.network/types\";\n\n/**\n * Generates a poster image based on position information. You can set the size, background color, font color, font size, and content position of the poster.\n * @example\n * ```tsx\n * const { ref, toDataURL, toBlob, download, copy } = usePoster({\n * backgroundColor: \"#0b8c70\",\n * backgroundImg: \"/images/poster_bg.png\",\n * color: \"rgba(255, 255, 255, 0.98)\",\n * profitColor: \"rgb(0,181,159)\",\n * ...\n * });\n */\nexport const usePoster = (\n /**\n * The options to draw the poster\n */\n data: DrawOptions,\n options?: {\n /**\n * The ratio of the poster\n */\n ratio?: number;\n }\n) => {\n const [error, setError] = useState<Error | null>(null);\n const [canCopy, setCanCopy] = useState<boolean>(\n () => typeof navigator.clipboard !== \"undefined\"\n );\n\n const painterRef = useRef<PosterPainter | null>(null);\n\n const [target, setTarget] = useState<HTMLCanvasElement | null>(null);\n\n useEffect(() => {\n // Create the painter instance\n if (target && !painterRef.current) {\n painterRef.current = new PosterPainter(target, {\n ratio: 1,\n ...options,\n });\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [target]);\n\n useEffect(() => {\n if (painterRef.current) {\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [data]);\n\n const toDataURL = (type?: string, encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n return target.toDataURL(type, encoderOptions);\n };\n\n /**\n * Converts the poster to a blob\n */\n const toBlob = useCallback(\n (type?: string, encoderOptions?: number): Promise<Blob | null> => {\n return new Promise<Blob | null>((resolve) => {\n if (!target) {\n resolve(null);\n return;\n }\n target.toBlob(resolve, type, encoderOptions);\n });\n },\n [target]\n );\n\n const ref = (ref: HTMLCanvasElement | null) => {\n if (!ref) return;\n if (ref.tagName.toUpperCase() !== \"CANVAS\") {\n // throw new Error(\"The ref must be a canvas element\");\n setError(new SDKError(\"The ref must be a canvas element\"));\n return;\n }\n setTarget(ref);\n };\n\n const download = useCallback(\n (filename: string, type: string = \"image/png\", encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n const img = new Image();\n img.src = target.toDataURL(type, encoderOptions);\n const link = document.createElement(\"a\");\n link.href = img.src;\n link.download = filename;\n link.click();\n },\n [target]\n );\n\n const copy = useCallback(() => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n // copy image to clipboard\n return new Promise<void>((resolve, reject) => {\n if (!navigator.clipboard) {\n reject(new SDKError(\"Clipboard API is not supported\"));\n return;\n }\n target.toBlob((blob) => {\n if (!blob) {\n reject(new SDKError(\"Failed to create blob\"));\n return;\n }\n return navigator.clipboard\n .write([new ClipboardItem({ [blob.type]: blob })])\n .then(resolve, reject);\n });\n });\n }, [target]);\n\n return {\n error,\n /**\n * The ref to the canvas element, you should pass this ref to the canvas element\n */\n ref,\n /**\n * Converts the poster to a data URL\n */\n toDataURL,\n /**\n * Converts the poster to a blob\n */\n toBlob,\n /**\n * Downloads the poster as an image\n */\n download,\n /**\n * Browser if supports copy image to clipboard\n */\n canCopy,\n copy,\n } as const;\n};\n"],"names":["useCallback","useEffect","useRef","useState","mergeDeepRight","PosterPainter","DefaultLayoutConfig","SDKError","usePoster","data","options","error","setError","canCopy","setCanCopy","navigator","clipboard","painterRef","target","setTarget","current","ratio","draw","layout","fontFamily","toDataURL","type","encoderOptions","toBlob","Promise","resolve","ref","tagName","toUpperCase","download","filename","img","Image","src","link","document","createElement","href","click","copy","reject","blob","write","ClipboardItem","then"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,57 +1,2 @@
|
|
|
1
|
-
import { OrderType, type API, OrderEntity } from "@orderly.network/types";
|
|
2
|
-
export type VerifyResult = {
|
|
3
|
-
[P in keyof OrderEntity]?: {
|
|
4
|
-
type: string;
|
|
5
|
-
message: string;
|
|
6
|
-
};
|
|
7
|
-
};
|
|
8
|
-
export type OrderFormEntity = Pick<OrderEntity, "order_price" | "order_quantity" | "total">;
|
|
9
|
-
type ValuesDepConfig = {
|
|
10
|
-
symbol: API.SymbolExt;
|
|
11
|
-
maxQty: number;
|
|
12
|
-
markPrice: number;
|
|
13
|
-
};
|
|
14
|
-
export interface OrderCreator {
|
|
15
|
-
create: (values: OrderEntity, configs: ValuesDepConfig) => OrderEntity;
|
|
16
|
-
validate: (values: OrderFormEntity, configs: ValuesDepConfig) => Promise<VerifyResult>;
|
|
17
|
-
}
|
|
18
|
-
export declare abstract class BaseOrderCreator implements OrderCreator {
|
|
19
|
-
abstract create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;
|
|
20
|
-
abstract validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
|
|
21
|
-
baseOrder(data: OrderEntity): OrderEntity;
|
|
22
|
-
baseValidate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
|
|
23
|
-
fixOrderQuantity(order: Partial<OrderEntity>, config: ValuesDepConfig): OrderEntity;
|
|
24
|
-
}
|
|
25
1
|
export declare function checkNotional(price?: string | number, qty?: string | number, minNotional?: number): string | undefined;
|
|
26
|
-
export declare class LimitOrderCreator extends BaseOrderCreator {
|
|
27
|
-
create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;
|
|
28
|
-
validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
|
|
29
|
-
}
|
|
30
|
-
export declare class MarketOrderCreator extends BaseOrderCreator {
|
|
31
|
-
create(values: OrderEntity): OrderEntity;
|
|
32
|
-
validate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
|
|
33
|
-
}
|
|
34
|
-
export declare class PostOnlyOrderCreator extends LimitOrderCreator {
|
|
35
|
-
}
|
|
36
|
-
export declare class FOKOrderCreator extends LimitOrderCreator {
|
|
37
|
-
}
|
|
38
|
-
export declare class IOCOrderCreator extends LimitOrderCreator {
|
|
39
|
-
}
|
|
40
|
-
export declare class StopLimitOrderCreator extends LimitOrderCreator {
|
|
41
|
-
create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;
|
|
42
|
-
validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
|
|
43
|
-
}
|
|
44
|
-
export declare class StopMarketOrderCreator extends LimitOrderCreator {
|
|
45
|
-
create(values: OrderEntity, _: ValuesDepConfig): OrderEntity;
|
|
46
|
-
validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
|
|
47
|
-
}
|
|
48
|
-
export declare class GeneralOrderCreator extends BaseOrderCreator {
|
|
49
|
-
create(data: OrderEntity): OrderEntity;
|
|
50
|
-
validate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
|
|
51
|
-
}
|
|
52
|
-
export declare const availableOrderTypes: OrderType[];
|
|
53
|
-
export declare class OrderFactory {
|
|
54
|
-
static create(type: OrderType): OrderCreator | null;
|
|
55
|
-
}
|
|
56
|
-
export {};
|
|
57
2
|
//# sourceMappingURL=createOrder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOrder.d.ts","sourceRoot":"","sources":["../../src/utils/createOrder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createOrder.d.ts","sourceRoot":"","sources":["../../src/utils/createOrder.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,GAAG,SAAS,CAiBpB"}
|
package/esm/utils/createOrder.js
CHANGED
|
@@ -1,95 +1,4 @@
|
|
|
1
|
-
import { OrderType } from "@orderly.network/types";
|
|
2
1
|
import { Decimal } from "@orderly.network/utils";
|
|
3
|
-
import { order } from "@orderly.network/perp";
|
|
4
|
-
const { maxPrice, minPrice, scropePrice } = order;
|
|
5
|
-
export class BaseOrderCreator {
|
|
6
|
-
baseOrder(data) {
|
|
7
|
-
const order = {
|
|
8
|
-
symbol: data.symbol,
|
|
9
|
-
order_type: data.order_type === OrderType.LIMIT ? !!data.order_type_ext ? data.order_type_ext : data.order_type : data.order_type,
|
|
10
|
-
side: data.side,
|
|
11
|
-
reduce_only: data.reduce_only,
|
|
12
|
-
order_quantity: data.order_quantity,
|
|
13
|
-
total: data.total
|
|
14
|
-
};
|
|
15
|
-
if (data.visible_quantity === 0) {
|
|
16
|
-
order.visible_quantity = data.visible_quantity;
|
|
17
|
-
}
|
|
18
|
-
return order;
|
|
19
|
-
}
|
|
20
|
-
baseValidate(values, configs) {
|
|
21
|
-
const errors = {};
|
|
22
|
-
const { maxQty, symbol } = configs;
|
|
23
|
-
// @ts-ignore
|
|
24
|
-
let { order_quantity, total, order_price, reduce_only } = values;
|
|
25
|
-
const { min_notional } = symbol;
|
|
26
|
-
if (!order_quantity) {
|
|
27
|
-
// calculate order_quantity from total
|
|
28
|
-
if (total && order_price) {
|
|
29
|
-
const { quote_dp } = configs.symbol;
|
|
30
|
-
const totalNumber = new Decimal(total);
|
|
31
|
-
const qty = totalNumber.dividedBy(order_price).toFixed(quote_dp);
|
|
32
|
-
order_quantity = qty;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (!order_quantity) {
|
|
36
|
-
errors.order_quantity = {
|
|
37
|
-
type: "required",
|
|
38
|
-
message: "quantity is required"
|
|
39
|
-
};
|
|
40
|
-
} else {
|
|
41
|
-
// need to use MaxQty+base_max, base_min to compare
|
|
42
|
-
const { base_min, quote_dp, base_dp } = configs.symbol;
|
|
43
|
-
const qty = new Decimal(order_quantity);
|
|
44
|
-
if (qty.lt(base_min)) {
|
|
45
|
-
errors.order_quantity = {
|
|
46
|
-
type: "min",
|
|
47
|
-
message: `quantity must be greater than ${new Decimal(base_min).todp(base_dp)}`
|
|
48
|
-
};
|
|
49
|
-
// errors.order_quantity = `quantity must be greater than ${base_min}`;
|
|
50
|
-
} else if (qty.gt(maxQty)) {
|
|
51
|
-
errors.order_quantity = {
|
|
52
|
-
type: "max",
|
|
53
|
-
message: `quantity must be less than ${new Decimal(maxQty).todp(base_dp)}`
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (!!total) {
|
|
58
|
-
const { quote_max, quote_min, quote_dp } = configs.symbol;
|
|
59
|
-
const totalNumber = new Decimal(total);
|
|
60
|
-
if (totalNumber.lt(quote_min)) {
|
|
61
|
-
errors.total = {
|
|
62
|
-
type: "min",
|
|
63
|
-
message: `Quantity must be at least ${new Decimal(quote_min).todp(quote_dp)}`
|
|
64
|
-
};
|
|
65
|
-
} else if (totalNumber.gt(quote_max)) {
|
|
66
|
-
errors.total = {
|
|
67
|
-
type: "max",
|
|
68
|
-
message: `Quantity should be less or equal than ${new Decimal(quote_max).todp(quote_dp)}`
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const notionalHintStr = checkNotional(order_price, order_quantity, min_notional);
|
|
73
|
-
if (notionalHintStr !== undefined && reduce_only !== true) {
|
|
74
|
-
errors.total = {
|
|
75
|
-
type: "min",
|
|
76
|
-
message: notionalHintStr
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
return Promise.resolve(errors);
|
|
80
|
-
}
|
|
81
|
-
fixOrderQuantity(order, config) {
|
|
82
|
-
// if order_quantity is not set but total is set, calculate order_quantity from total
|
|
83
|
-
if (!order.order_quantity && order.total && order.order_price) {
|
|
84
|
-
const { base_dp } = config.symbol;
|
|
85
|
-
const totalNumber = new Decimal(order.total);
|
|
86
|
-
const qty = totalNumber.div(order.order_price).toDecimalPlaces(base_dp);
|
|
87
|
-
order.order_quantity = qty.toNumber();
|
|
88
|
-
delete order.total;
|
|
89
|
-
}
|
|
90
|
-
return order;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
2
|
export function checkNotional(price, qty, minNotional) {
|
|
94
3
|
if (price !== undefined && qty !== undefined && minNotional !== undefined) {
|
|
95
4
|
try {
|
|
@@ -103,248 +12,5 @@ export function checkNotional(price, qty, minNotional) {
|
|
|
103
12
|
}
|
|
104
13
|
return undefined;
|
|
105
14
|
}
|
|
106
|
-
export class LimitOrderCreator extends BaseOrderCreator {
|
|
107
|
-
create(values, config) {
|
|
108
|
-
const order = {
|
|
109
|
-
...this.baseOrder(values),
|
|
110
|
-
order_price: values.order_price
|
|
111
|
-
};
|
|
112
|
-
this.fixOrderQuantity(order, config);
|
|
113
|
-
delete order['total'];
|
|
114
|
-
delete order['trigger_price'];
|
|
115
|
-
delete order['isStopOrder'];
|
|
116
|
-
const { quote_dp } = config.symbol;
|
|
117
|
-
if (values.order_price) {
|
|
118
|
-
order["order_price"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);
|
|
119
|
-
}
|
|
120
|
-
return order;
|
|
121
|
-
}
|
|
122
|
-
validate(values, config) {
|
|
123
|
-
return this.baseValidate(values, config).then((errors)=>{
|
|
124
|
-
// const errors = this.baseValidate(values, config);
|
|
125
|
-
// @ts-ignore
|
|
126
|
-
const { order_price, side } = values;
|
|
127
|
-
if (!order_price) {
|
|
128
|
-
errors.order_price = {
|
|
129
|
-
type: "required",
|
|
130
|
-
message: "price is required"
|
|
131
|
-
};
|
|
132
|
-
} else {
|
|
133
|
-
const price = new Decimal(order_price);
|
|
134
|
-
const { symbol } = config;
|
|
135
|
-
const { price_range, price_scope } = symbol;
|
|
136
|
-
const maxPriceNumber = maxPrice(config.markPrice, price_range);
|
|
137
|
-
const minPriceNumber = minPrice(config.markPrice, price_range);
|
|
138
|
-
const scropePriceNumbere = scropePrice(config.markPrice, price_scope, side);
|
|
139
|
-
const priceRange = side === "BUY" ? {
|
|
140
|
-
min: scropePriceNumbere,
|
|
141
|
-
max: maxPriceNumber
|
|
142
|
-
} : {
|
|
143
|
-
min: minPriceNumber,
|
|
144
|
-
max: scropePriceNumbere
|
|
145
|
-
};
|
|
146
|
-
/// if side is 'buy', only check max price,
|
|
147
|
-
/// if side is 'sell', only check min price,
|
|
148
|
-
if (price.gt(priceRange?.max)) {
|
|
149
|
-
errors.order_price = {
|
|
150
|
-
type: "max",
|
|
151
|
-
message: `Price must be less than ${new Decimal(priceRange.max).todp(symbol.quote_dp)}`
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
if (price.lt(priceRange?.min)) {
|
|
155
|
-
errors.order_price = {
|
|
156
|
-
type: "min",
|
|
157
|
-
message: `Price must be greater than ${new Decimal(priceRange.min).todp(symbol.quote_dp)}`
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return errors;
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
export class MarketOrderCreator extends BaseOrderCreator {
|
|
166
|
-
create(values) {
|
|
167
|
-
const data = this.baseOrder(values);
|
|
168
|
-
delete data["order_price"];
|
|
169
|
-
delete data['total'];
|
|
170
|
-
delete data['trigger_price'];
|
|
171
|
-
delete data['isStopOrder'];
|
|
172
|
-
return {
|
|
173
|
-
...data
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
validate(values, configs) {
|
|
177
|
-
return this.baseValidate(values, configs);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
export class PostOnlyOrderCreator extends LimitOrderCreator {
|
|
181
|
-
}
|
|
182
|
-
export class FOKOrderCreator extends LimitOrderCreator {
|
|
183
|
-
}
|
|
184
|
-
export class IOCOrderCreator extends LimitOrderCreator {
|
|
185
|
-
}
|
|
186
|
-
export class StopLimitOrderCreator extends LimitOrderCreator {
|
|
187
|
-
create(values, config) {
|
|
188
|
-
const order = {
|
|
189
|
-
...this.baseOrder(values),
|
|
190
|
-
order_price: values.order_price,
|
|
191
|
-
trigger_price: values.trigger_price,
|
|
192
|
-
algo_type: "STOP",
|
|
193
|
-
type: "LIMIT",
|
|
194
|
-
quantity: values["order_quantity"],
|
|
195
|
-
price: values["order_price"],
|
|
196
|
-
trigger_price_type: "MARK_PRICE"
|
|
197
|
-
};
|
|
198
|
-
this.fixOrderQuantity(order, config);
|
|
199
|
-
delete order["order_quantity"];
|
|
200
|
-
delete order["order_price"];
|
|
201
|
-
// @ts-ignore
|
|
202
|
-
delete order["order_type"];
|
|
203
|
-
// @ts-ignore
|
|
204
|
-
delete order["isStopOrder"];
|
|
205
|
-
delete order['total'];
|
|
206
|
-
const { quote_dp } = config.symbol;
|
|
207
|
-
if (values.order_price) {
|
|
208
|
-
order["order_price"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);
|
|
209
|
-
}
|
|
210
|
-
if (values.trigger_price) {
|
|
211
|
-
order["trigger_price"] = new Decimal(Number.parseFloat(values.trigger_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);
|
|
212
|
-
}
|
|
213
|
-
return order;
|
|
214
|
-
}
|
|
215
|
-
validate(values, config) {
|
|
216
|
-
return this.baseValidate(values, config).then((errors)=>{
|
|
217
|
-
// const errors = this.baseValidate(values, config);
|
|
218
|
-
// @ts-ignore
|
|
219
|
-
const { order_price, trigger_price, side } = values;
|
|
220
|
-
if (!order_price) {
|
|
221
|
-
errors.order_price = {
|
|
222
|
-
type: "required",
|
|
223
|
-
message: "price is required"
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
if (!trigger_price) {
|
|
227
|
-
errors.trigger_price = {
|
|
228
|
-
type: "required",
|
|
229
|
-
message: "Trigger price is required"
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
if (trigger_price && order_price) {
|
|
233
|
-
const price = new Decimal(order_price);
|
|
234
|
-
const { symbol } = config;
|
|
235
|
-
const { price_range, price_scope } = symbol;
|
|
236
|
-
const maxPriceNumber = maxPrice(trigger_price, price_range);
|
|
237
|
-
const minPriceNumber = minPrice(trigger_price, price_range);
|
|
238
|
-
const scropePriceNumbere = scropePrice(trigger_price, price_scope, side);
|
|
239
|
-
const priceRange = side === "BUY" ? {
|
|
240
|
-
min: scropePriceNumbere,
|
|
241
|
-
max: maxPriceNumber
|
|
242
|
-
} : {
|
|
243
|
-
min: minPriceNumber,
|
|
244
|
-
max: scropePriceNumbere
|
|
245
|
-
};
|
|
246
|
-
/// if side is 'buy', only check max price,
|
|
247
|
-
/// if side is 'sell', only check min price,
|
|
248
|
-
if (price.gt(priceRange?.max)) {
|
|
249
|
-
errors.order_price = {
|
|
250
|
-
type: "max",
|
|
251
|
-
message: `Price must be less than ${new Decimal(priceRange.max).todp(symbol.quote_dp)}`
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
if (price.lt(priceRange?.min)) {
|
|
255
|
-
errors.order_price = {
|
|
256
|
-
type: "min",
|
|
257
|
-
message: `Price must be greater than ${new Decimal(priceRange.min).todp(symbol.quote_dp)}`
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return errors;
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
export class StopMarketOrderCreator extends LimitOrderCreator {
|
|
266
|
-
create(values, _) {
|
|
267
|
-
const result = {
|
|
268
|
-
...this.baseOrder(values),
|
|
269
|
-
// order_price: values.order_price,
|
|
270
|
-
trigger_price: values.trigger_price,
|
|
271
|
-
algo_type: "STOP",
|
|
272
|
-
type: "MARKET",
|
|
273
|
-
quantity: values["order_quantity"],
|
|
274
|
-
// price: values["order_price"],
|
|
275
|
-
trigger_price_type: "MARK_PRICE"
|
|
276
|
-
};
|
|
277
|
-
delete result["order_quantity"];
|
|
278
|
-
delete result["order_price"];
|
|
279
|
-
// @ts-ignore
|
|
280
|
-
delete result["order_type"];
|
|
281
|
-
// @ts-ignore
|
|
282
|
-
delete result["isStopOrder"];
|
|
283
|
-
delete result['total'];
|
|
284
|
-
;
|
|
285
|
-
return result;
|
|
286
|
-
}
|
|
287
|
-
validate(values, config) {
|
|
288
|
-
return this.baseValidate(values, config).then((errors)=>{
|
|
289
|
-
// const errors = this.baseValidate(values, config);
|
|
290
|
-
// @ts-ignore
|
|
291
|
-
const { order_price, trigger_price, side } = values;
|
|
292
|
-
if (!trigger_price) {
|
|
293
|
-
errors.trigger_price = {
|
|
294
|
-
type: "required",
|
|
295
|
-
message: "Trigger price is required"
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
return errors;
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
export class GeneralOrderCreator extends BaseOrderCreator {
|
|
303
|
-
create(data) {
|
|
304
|
-
return {
|
|
305
|
-
...this.baseOrder(data),
|
|
306
|
-
order_price: data.order_price,
|
|
307
|
-
order_quantity: data.order_quantity
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
validate(values, configs) {
|
|
311
|
-
return super.baseValidate(values, configs);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
export const availableOrderTypes = [
|
|
315
|
-
OrderType.LIMIT,
|
|
316
|
-
OrderType.MARKET,
|
|
317
|
-
OrderType.IOC,
|
|
318
|
-
OrderType.FOK,
|
|
319
|
-
OrderType.POST_ONLY,
|
|
320
|
-
OrderType.STOP_LIMIT,
|
|
321
|
-
OrderType.STOP_MARKET
|
|
322
|
-
];
|
|
323
|
-
export class OrderFactory {
|
|
324
|
-
static create(type) {
|
|
325
|
-
switch(type){
|
|
326
|
-
case OrderType.LIMIT:
|
|
327
|
-
return new LimitOrderCreator();
|
|
328
|
-
case OrderType.MARKET:
|
|
329
|
-
return new MarketOrderCreator();
|
|
330
|
-
// case OrderType.ASK:
|
|
331
|
-
// return new AskOrderCreator();
|
|
332
|
-
// case OrderType.BID:
|
|
333
|
-
// return new BidOrderCreator();
|
|
334
|
-
case OrderType.IOC:
|
|
335
|
-
return new IOCOrderCreator();
|
|
336
|
-
case OrderType.FOK:
|
|
337
|
-
return new FOKOrderCreator();
|
|
338
|
-
case OrderType.POST_ONLY:
|
|
339
|
-
return new PostOnlyOrderCreator();
|
|
340
|
-
case OrderType.STOP_LIMIT:
|
|
341
|
-
return new StopLimitOrderCreator();
|
|
342
|
-
case OrderType.STOP_MARKET:
|
|
343
|
-
return new StopMarketOrderCreator();
|
|
344
|
-
default:
|
|
345
|
-
return new GeneralOrderCreator();
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
15
|
|
|
350
16
|
//# sourceMappingURL=createOrder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/createOrder.ts"],"sourcesContent":["import { OrderType, type API, OrderEntity } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { order } from \"@orderly.network/perp\";\nimport { OrderSide } from \"@orderly.network/types\";\n\nexport type VerifyResult = {\n [P in keyof OrderEntity]?: { type: string; message: string };\n};\nexport type OrderFormEntity = Pick<\n OrderEntity,\n \"order_price\" | \"order_quantity\" | \"total\"\n>;\n\ntype ValuesDepConfig = {\n // token: API.TokenInfo;\n symbol: API.SymbolExt;\n maxQty: number;\n markPrice: number;\n};\n\nexport interface OrderCreator {\n create: (values: OrderEntity, configs: ValuesDepConfig) => OrderEntity;\n validate: (\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ) => Promise<VerifyResult>;\n}\n\nconst { maxPrice, minPrice, scropePrice } = order;\n\nexport abstract class BaseOrderCreator implements OrderCreator {\n abstract create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;\n abstract validate(\n values: OrderFormEntity,\n config: ValuesDepConfig\n ): Promise<VerifyResult>;\n\n baseOrder(data: OrderEntity): OrderEntity {\n const order: Partial<OrderEntity> = {\n symbol: data.symbol,\n order_type:\n data.order_type === OrderType.LIMIT\n ? !!data.order_type_ext\n ? data.order_type_ext\n : data.order_type\n : data.order_type,\n side: data.side,\n reduce_only: data.reduce_only,\n order_quantity: data.order_quantity,\n total: data.total,\n };\n\n if (data.visible_quantity === 0) {\n order.visible_quantity = data.visible_quantity;\n }\n\n return order as OrderEntity;\n }\n\n baseValidate(\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ): Promise<VerifyResult> {\n const errors: {\n [P in keyof OrderEntity]?: { type: string; message: string };\n } = {};\n\n const { maxQty, symbol } = configs;\n\n // @ts-ignore\n let { order_quantity, total, order_price, reduce_only } = values;\n const { min_notional } = symbol;\n\n if (!order_quantity) {\n // calculate order_quantity from total\n if (total && order_price) {\n const { quote_dp } = configs.symbol;\n const totalNumber = new Decimal(total);\n const qty = totalNumber.dividedBy(order_price).toFixed(quote_dp);\n order_quantity = qty;\n }\n }\n\n if (!order_quantity) {\n errors.order_quantity = {\n type: \"required\",\n message: \"quantity is required\",\n };\n } else {\n // need to use MaxQty+base_max, base_min to compare\n const { base_min, quote_dp, base_dp } = configs.symbol;\n const qty = new Decimal(order_quantity);\n if (qty.lt(base_min)) {\n errors.order_quantity = {\n type: \"min\",\n message: `quantity must be greater than ${new Decimal(base_min).todp(\n base_dp\n )}`,\n };\n // errors.order_quantity = `quantity must be greater than ${base_min}`;\n } else if (qty.gt(maxQty)) {\n errors.order_quantity = {\n type: \"max\",\n message: `quantity must be less than ${new Decimal(maxQty).todp(\n base_dp\n )}`,\n };\n }\n }\n\n if (!!total) {\n const { quote_max, quote_min, quote_dp } = configs.symbol;\n const totalNumber = new Decimal(total);\n if (totalNumber.lt(quote_min)) {\n errors.total = {\n type: \"min\",\n message: `Quantity must be at least ${new Decimal(quote_min).todp(\n quote_dp\n )}`,\n };\n } else if (totalNumber.gt(quote_max)) {\n errors.total = {\n type: \"max\",\n message: `Quantity should be less or equal than ${new Decimal(\n quote_max\n ).todp(quote_dp)}`,\n };\n }\n }\n\n const notionalHintStr = checkNotional(order_price, order_quantity, min_notional);\n \n if (notionalHintStr !== undefined && reduce_only !== true) {\n errors.total = {\n type: \"min\",\n message: notionalHintStr,\n }\n }\n\n return Promise.resolve(errors);\n }\n\n fixOrderQuantity(\n order: Partial<OrderEntity>,\n config: ValuesDepConfig\n ): OrderEntity {\n // if order_quantity is not set but total is set, calculate order_quantity from total\n if (!order.order_quantity && order.total && order.order_price) {\n const { base_dp } = config.symbol;\n const totalNumber = new Decimal(order.total);\n const qty = totalNumber.div(order.order_price).toDecimalPlaces(base_dp);\n order.order_quantity = qty.toNumber();\n\n delete order.total;\n }\n\n return order as OrderEntity;\n }\n}\n\nexport function checkNotional(price?: string | number, qty?: string | number, minNotional?: number): string | undefined {\n\n \n \n if (price !== undefined && qty !== undefined && minNotional !== undefined) {\n \n try {\n const calcNotional = new Decimal(price).mul(new Decimal(qty)).toNumber();\n const notional = Number.parseFloat(`${minNotional}`);\n \n const str = calcNotional < notional ? `The order value should be greater or equal to ${minNotional} USDC` : undefined;\n return str;\n } catch (e) {\n return undefined;\n }\n }\n\n return undefined;\n}\n\nexport class LimitOrderCreator extends BaseOrderCreator {\n create(values: OrderEntity, config: ValuesDepConfig): OrderEntity {\n const order = {\n ...this.baseOrder(values),\n order_price: values.order_price,\n };\n\n this.fixOrderQuantity(order, config);\n\n delete order['total'];\n delete order['trigger_price'];\n delete order['isStopOrder'];\n\n const { quote_dp } = config.symbol;\n if (values.order_price) {\n order[\"order_price\"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);\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, side } = values;\n\n if (!order_price) {\n errors.order_price = {\n type: \"required\",\n message: \"price is required\",\n };\n } else {\n const price = new Decimal(order_price);\n const { symbol } = config;\n const { price_range, price_scope } = symbol;\n const maxPriceNumber = maxPrice(config.markPrice, price_range);\n const minPriceNumber = minPrice(config.markPrice, price_range);\n const scropePriceNumbere = scropePrice(\n config.markPrice,\n price_scope,\n side\n );\n\n const priceRange = side === \"BUY\" ? {\n min: scropePriceNumbere,\n max: maxPriceNumber,\n } : {\n min: minPriceNumber,\n max: scropePriceNumbere\n };\n\n /// if side is 'buy', only check max price,\n /// if side is 'sell', only check min price,\n if (price.gt(priceRange?.max)) {\n errors.order_price = {\n type: \"max\",\n message: `Price must be less than ${new Decimal(\n priceRange.max\n ).todp(symbol.quote_dp)}`,\n };\n }\n if (price.lt(priceRange?.min)) {\n errors.order_price = {\n type: \"min\",\n message: `Price must be greater than ${new Decimal(\n priceRange.min\n ).todp(symbol.quote_dp)}`,\n };\n }\n\n }\n\n return errors;\n });\n }\n}\n\nexport class MarketOrderCreator extends BaseOrderCreator {\n create(values: OrderEntity): OrderEntity {\n const data = this.baseOrder(values);\n\n delete data[\"order_price\"];\n delete data['total'];\n delete data['trigger_price'];\n delete data['isStopOrder'];\n\n return {\n ...data,\n };\n }\n validate(\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ): Promise<VerifyResult> {\n return this.baseValidate(values, configs);\n }\n}\n\nexport class PostOnlyOrderCreator extends LimitOrderCreator { }\n\nexport class FOKOrderCreator extends LimitOrderCreator { }\nexport class IOCOrderCreator extends LimitOrderCreator { }\n\nexport class StopLimitOrderCreator extends LimitOrderCreator {\n create(values: OrderEntity, config: ValuesDepConfig): OrderEntity {\n const order = {\n ...this.baseOrder(values),\n order_price: values.order_price,\n trigger_price: values.trigger_price,\n algo_type: \"STOP\",\n type: \"LIMIT\",\n quantity: values[\"order_quantity\"],\n price: values[\"order_price\"],\n trigger_price_type: \"MARK_PRICE\",\n };\n this.fixOrderQuantity(order, config);\n delete order[\"order_quantity\"];\n delete order[\"order_price\"];\n // @ts-ignore\n delete order[\"order_type\"];\n // @ts-ignore\n delete order[\"isStopOrder\"];\n delete order['total'];\n\n const { quote_dp } = config.symbol;\n if (values.order_price) {\n order[\"order_price\"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);\n }\n \n if (values.trigger_price) {\n order[\"trigger_price\"] = new Decimal(Number.parseFloat(values.trigger_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);\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 (!order_price) {\n errors.order_price = {\n type: \"required\",\n message: \"price is required\",\n };\n }\n \n if (!trigger_price) {\n errors.trigger_price = {\n type: \"required\",\n message: \"Trigger price is required\",\n };\n } \n \n if (trigger_price && order_price) {\n const price = new Decimal(order_price);\n const { symbol } = config;\n const { price_range, price_scope } = symbol;\n const maxPriceNumber = maxPrice(trigger_price, price_range);\n const minPriceNumber = minPrice(trigger_price, price_range);\n const scropePriceNumbere = scropePrice(\n trigger_price,\n price_scope,\n side\n );\n\n const priceRange = side === \"BUY\" ? {\n min: scropePriceNumbere,\n max: maxPriceNumber,\n } : {\n min: minPriceNumber,\n max: scropePriceNumbere\n };\n\n /// if side is 'buy', only check max price,\n /// if side is 'sell', only check min price,\n if (price.gt(priceRange?.max)) {\n errors.order_price = {\n type: \"max\",\n message: `Price must be less than ${new Decimal(\n priceRange.max\n ).todp(symbol.quote_dp)}`,\n };\n }\n if (price.lt(priceRange?.min)) {\n errors.order_price = {\n type: \"min\",\n message: `Price must be greater than ${new Decimal(\n priceRange.min\n ).todp(symbol.quote_dp)}`,\n };\n }\n }\n\n return errors;\n });\n }\n}\nexport class StopMarketOrderCreator extends LimitOrderCreator {\n create(values: OrderEntity, _: ValuesDepConfig): OrderEntity {\n const result = {\n ...this.baseOrder(values),\n // order_price: values.order_price,\n trigger_price: values.trigger_price,\n algo_type: \"STOP\",\n type: \"MARKET\",\n quantity: values[\"order_quantity\"],\n // price: values[\"order_price\"],\n trigger_price_type: \"MARK_PRICE\",\n };\n delete result[\"order_quantity\"];\n delete result[\"order_price\"];\n // @ts-ignore\n delete result[\"order_type\"];\n // @ts-ignore\n delete result[\"isStopOrder\"];\n delete result['total'];\n\n console.log(\"result is\", result);\n return result;\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\nexport class GeneralOrderCreator extends BaseOrderCreator {\n create(data: OrderEntity): OrderEntity {\n return {\n ...this.baseOrder(data),\n order_price: data.order_price,\n order_quantity: data.order_quantity,\n };\n }\n validate(\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ): Promise<VerifyResult> {\n return super.baseValidate(values, configs);\n }\n}\n\nexport const availableOrderTypes = [\n OrderType.LIMIT,\n OrderType.MARKET,\n OrderType.IOC,\n OrderType.FOK,\n OrderType.POST_ONLY,\n OrderType.STOP_LIMIT,\n OrderType.STOP_MARKET,\n];\n\nexport class OrderFactory {\n static create(type: OrderType): OrderCreator | null {\n switch (type) {\n case OrderType.LIMIT:\n return new LimitOrderCreator();\n case OrderType.MARKET:\n return new MarketOrderCreator();\n // case OrderType.ASK:\n // return new AskOrderCreator();\n // case OrderType.BID:\n // return new BidOrderCreator();\n case OrderType.IOC:\n return new IOCOrderCreator();\n case OrderType.FOK:\n return new FOKOrderCreator();\n case OrderType.POST_ONLY:\n return new PostOnlyOrderCreator();\n\n case OrderType.STOP_LIMIT:\n return new StopLimitOrderCreator();\n case OrderType.STOP_MARKET:\n return new StopMarketOrderCreator();\n\n default:\n return new GeneralOrderCreator();\n }\n }\n}\n"],"names":["OrderType","Decimal","order","maxPrice","minPrice","scropePrice","BaseOrderCreator","baseOrder","data","symbol","order_type","LIMIT","order_type_ext","side","reduce_only","order_quantity","total","visible_quantity","baseValidate","values","configs","errors","maxQty","order_price","min_notional","quote_dp","totalNumber","qty","dividedBy","toFixed","type","message","base_min","base_dp","lt","todp","gt","quote_max","quote_min","notionalHintStr","checkNotional","undefined","Promise","resolve","fixOrderQuantity","config","div","toDecimalPlaces","toNumber","price","minNotional","calcNotional","mul","notional","Number","parseFloat","str","e","LimitOrderCreator","create","toString","ROUND_DOWN","validate","then","price_range","price_scope","maxPriceNumber","markPrice","minPriceNumber","scropePriceNumbere","priceRange","min","max","MarketOrderCreator","PostOnlyOrderCreator","FOKOrderCreator","IOCOrderCreator","StopLimitOrderCreator","trigger_price","algo_type","quantity","trigger_price_type","StopMarketOrderCreator","_","result","GeneralOrderCreator","availableOrderTypes","MARKET","IOC","FOK","POST_ONLY","STOP_LIMIT","STOP_MARKET","OrderFactory"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/createOrder.ts"],"sourcesContent":["import { Decimal } from \"@orderly.network/utils\";\n\nexport function checkNotional(\n price?: string | number,\n qty?: string | number,\n minNotional?: number\n): string | undefined {\n if (price !== undefined && qty !== undefined && minNotional !== undefined) {\n try {\n const calcNotional = new Decimal(price).mul(new Decimal(qty)).toNumber();\n const notional = Number.parseFloat(`${minNotional}`);\n\n const str =\n calcNotional < notional\n ? `The order value should be greater or equal to ${minNotional} USDC`\n : undefined;\n return str;\n } catch (e) {\n return undefined;\n }\n }\n\n return undefined;\n}\n"],"names":["Decimal","checkNotional","price","qty","minNotional","undefined","calcNotional","mul","toNumber","notional","Number","parseFloat","str","e"],"rangeMappings":";;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,yBAAyB;AAEjD,OAAO,SAASC,cACdC,KAAuB,EACvBC,GAAqB,EACrBC,WAAoB;IAEpB,IAAIF,UAAUG,aAAaF,QAAQE,aAAaD,gBAAgBC,WAAW;QACzE,IAAI;YACF,MAAMC,eAAe,IAAIN,QAAQE,OAAOK,GAAG,CAAC,IAAIP,QAAQG,MAAMK,QAAQ;YACtE,MAAMC,WAAWC,OAAOC,UAAU,CAAC,CAAC,EAAEP,YAAY,CAAC;YAEnD,MAAMQ,MACJN,eAAeG,WACX,CAAC,8CAA8C,EAAEL,YAAY,KAAK,CAAC,GACnEC;YACN,OAAOO;QACT,EAAE,OAAOC,GAAG;YACV,OAAOR;QACT;IACF;IAEA,OAAOA;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=fokCreator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fokCreator.d.ts","sourceRoot":"","sources":["../../src/utils/fokCreator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/fokCreator.ts"],"names":[],"rangeMappings":"","mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { findTPSLFromOrder, findTPSLFromOrders, findPositionTPSLFromOrders, } from "../orderly/usePositionStream/utils";
|
|
2
|
+
export { cleanStringStyle } from "./orderEntryHelper";
|
|
3
|
+
export { getPositionBySymbol } from "./swr";
|
|
4
|
+
export { priceToPnl } from "../orderly/useTakeProfitAndStopLoss/utils";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { findTPSLFromOrder, findTPSLFromOrders, findPositionTPSLFromOrders } from "../orderly/usePositionStream/utils";
|
|
2
|
+
export { cleanStringStyle } from "./orderEntryHelper";
|
|
3
|
+
export { getPositionBySymbol } from "./swr";
|
|
4
|
+
export { priceToPnl } from "../orderly/useTakeProfitAndStopLoss/utils";
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export {\n findTPSLFromOrder,\n findTPSLFromOrders,\n findPositionTPSLFromOrders,\n} from \"../orderly/usePositionStream/utils\";\n\nexport { cleanStringStyle } from \"./orderEntryHelper\";\n\nexport { getPositionBySymbol } from \"./swr\";\n\nexport { priceToPnl } from \"../orderly/useTakeProfitAndStopLoss/utils\";\n"],"names":["findTPSLFromOrder","findTPSLFromOrders","findPositionTPSLFromOrders","cleanStringStyle","getPositionBySymbol","priceToPnl"],"rangeMappings":";;;","mappings":"AAAA,SACEA,iBAAiB,EACjBC,kBAAkB,EAClBC,0BAA0B,QACrB,qCAAqC;AAE5C,SAASC,gBAAgB,QAAQ,qBAAqB;AAEtD,SAASC,mBAAmB,QAAQ,QAAQ;AAE5C,SAASC,UAAU,QAAQ,4CAA4C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/utils/order.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/order.ts"],"sourcesContent":["import { API } from \"@orderly.network/types\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,WAA6C"}
|