@orderly.network/hooks 1.5.0 → 1.5.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.
Files changed (171) hide show
  1. package/esm/orderly/orderlyHooks.d.ts +1 -0
  2. package/esm/orderly/orderlyHooks.d.ts.map +1 -1
  3. package/esm/orderly/orderlyHooks.js +1 -0
  4. package/esm/orderly/orderlyHooks.js.map +1 -1
  5. package/esm/orderly/useCollateral.d.ts.map +1 -1
  6. package/esm/orderly/useCollateral.js +8 -9
  7. package/esm/orderly/useCollateral.js.map +1 -1
  8. package/esm/orderly/usePositionStream/usePositionStream.d.ts +4 -0
  9. package/esm/orderly/usePositionStream/usePositionStream.d.ts.map +1 -1
  10. package/esm/orderly/usePositionStream/usePositionStream.js +9 -1
  11. package/esm/orderly/usePositionStream/usePositionStream.js.map +1 -1
  12. package/esm/orderly/usePrivateDataObserver.d.ts.map +1 -1
  13. package/esm/orderly/usePrivateDataObserver.js +8 -2
  14. package/esm/orderly/usePrivateDataObserver.js.map +1 -1
  15. package/esm/orderly/useSymbolLeverage.d.ts +2 -0
  16. package/esm/orderly/useSymbolLeverage.d.ts.map +1 -0
  17. package/esm/orderly/useSymbolLeverage.js +31 -0
  18. package/esm/orderly/useSymbolLeverage.js.map +1 -0
  19. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -1
  20. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js +2 -1
  21. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -1
  22. package/esm/referral/index.d.ts +3 -0
  23. package/esm/referral/index.d.ts.map +1 -1
  24. package/esm/referral/index.js +3 -0
  25. package/esm/referral/index.js.map +1 -1
  26. package/esm/referral/useCheckReferralCode.d.ts +6 -0
  27. package/esm/referral/useCheckReferralCode.d.ts.map +1 -0
  28. package/esm/referral/useCheckReferralCode.js +18 -0
  29. package/esm/referral/useCheckReferralCode.js.map +1 -0
  30. package/esm/referral/useGetReferralCode.d.ts +6 -0
  31. package/esm/referral/useGetReferralCode.d.ts.map +1 -0
  32. package/esm/referral/useGetReferralCode.js +18 -0
  33. package/esm/referral/useGetReferralCode.js.map +1 -0
  34. package/esm/referral/useReferralInfo.d.ts +10 -0
  35. package/esm/referral/useReferralInfo.d.ts.map +1 -0
  36. package/esm/referral/useReferralInfo.js +56 -0
  37. package/esm/referral/useReferralInfo.js.map +1 -0
  38. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts +1 -0
  39. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -1
  40. package/esm/services/orderMerge/algoOrderMergeHandler.js +8 -0
  41. package/esm/services/orderMerge/algoOrderMergeHandler.js.map +1 -1
  42. package/esm/services/orderMerge/baseMergeHandler.d.ts +1 -0
  43. package/esm/services/orderMerge/baseMergeHandler.d.ts.map +1 -1
  44. package/esm/services/orderMerge/baseMergeHandler.js +1 -1
  45. package/esm/services/orderMerge/baseMergeHandler.js.map +1 -1
  46. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts +1 -0
  47. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -1
  48. package/esm/services/orderMerge/regularOrderMergeHandler.js +3 -0
  49. package/esm/services/orderMerge/regularOrderMergeHandler.js.map +1 -1
  50. package/esm/services/painter/basePaint.d.ts +5 -0
  51. package/esm/services/painter/basePaint.d.ts.map +1 -1
  52. package/esm/services/painter/basePaint.js.map +1 -1
  53. package/esm/services/painter/dataPaint.d.ts +3 -0
  54. package/esm/services/painter/dataPaint.d.ts.map +1 -1
  55. package/esm/services/painter/dataPaint.js +88 -16
  56. package/esm/services/painter/dataPaint.js.map +1 -1
  57. package/esm/services/painter/layout.config.js +1 -1
  58. package/esm/services/painter/layout.config.js.map +1 -1
  59. package/esm/services/painter/painter.d.ts.map +1 -1
  60. package/esm/services/painter/painter.js +7 -2
  61. package/esm/services/painter/painter.js.map +1 -1
  62. package/esm/services/painter/qrPaint.d.ts +8 -0
  63. package/esm/services/painter/qrPaint.d.ts.map +1 -0
  64. package/esm/services/painter/qrPaint.js +39 -0
  65. package/esm/services/painter/qrPaint.js.map +1 -0
  66. package/esm/useLocalStorage.js +2 -2
  67. package/esm/useLocalStorage.js.map +1 -1
  68. package/esm/useMediaQuery.js +7 -7
  69. package/esm/useMediaQuery.js.map +1 -1
  70. package/esm/usePoster.d.ts.map +1 -1
  71. package/esm/usePoster.js +18 -15
  72. package/esm/usePoster.js.map +1 -1
  73. package/esm/useSessionStorage.js +2 -2
  74. package/esm/useSessionStorage.js.map +1 -1
  75. package/esm/utils/index.d.ts +1 -0
  76. package/esm/utils/index.d.ts.map +1 -1
  77. package/esm/utils/index.js +1 -0
  78. package/esm/utils/index.js.map +1 -1
  79. package/esm/utils/orderEntryHelper.d.ts +1 -0
  80. package/esm/utils/orderEntryHelper.d.ts.map +1 -1
  81. package/esm/utils/orderEntryHelper.js +27 -2
  82. package/esm/utils/orderEntryHelper.js.map +1 -1
  83. package/esm/version.d.ts +1 -1
  84. package/esm/version.js +2 -2
  85. package/esm/version.js.map +1 -1
  86. package/lib/orderly/orderlyHooks.d.ts +1 -0
  87. package/lib/orderly/orderlyHooks.d.ts.map +1 -1
  88. package/lib/orderly/orderlyHooks.js +4 -0
  89. package/lib/orderly/orderlyHooks.js.map +1 -1
  90. package/lib/orderly/useCollateral.d.ts.map +1 -1
  91. package/lib/orderly/useCollateral.js +8 -9
  92. package/lib/orderly/useCollateral.js.map +1 -1
  93. package/lib/orderly/usePositionStream/usePositionStream.d.ts +4 -0
  94. package/lib/orderly/usePositionStream/usePositionStream.d.ts.map +1 -1
  95. package/lib/orderly/usePositionStream/usePositionStream.js +9 -1
  96. package/lib/orderly/usePositionStream/usePositionStream.js.map +1 -1
  97. package/lib/orderly/usePrivateDataObserver.d.ts.map +1 -1
  98. package/lib/orderly/usePrivateDataObserver.js +8 -2
  99. package/lib/orderly/usePrivateDataObserver.js.map +1 -1
  100. package/lib/orderly/useSymbolLeverage.d.ts +2 -0
  101. package/lib/orderly/useSymbolLeverage.d.ts.map +1 -0
  102. package/lib/orderly/useSymbolLeverage.js +41 -0
  103. package/lib/orderly/useSymbolLeverage.js.map +1 -0
  104. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -1
  105. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js +2 -1
  106. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -1
  107. package/lib/referral/index.d.ts +3 -0
  108. package/lib/referral/index.d.ts.map +1 -1
  109. package/lib/referral/index.js +12 -0
  110. package/lib/referral/index.js.map +1 -1
  111. package/lib/referral/useCheckReferralCode.d.ts +6 -0
  112. package/lib/referral/useCheckReferralCode.d.ts.map +1 -0
  113. package/lib/referral/useCheckReferralCode.js +28 -0
  114. package/lib/referral/useCheckReferralCode.js.map +1 -0
  115. package/lib/referral/useGetReferralCode.d.ts +6 -0
  116. package/lib/referral/useGetReferralCode.d.ts.map +1 -0
  117. package/lib/referral/useGetReferralCode.js +28 -0
  118. package/lib/referral/useGetReferralCode.js.map +1 -0
  119. package/lib/referral/useReferralInfo.d.ts +10 -0
  120. package/lib/referral/useReferralInfo.d.ts.map +1 -0
  121. package/lib/referral/useReferralInfo.js +66 -0
  122. package/lib/referral/useReferralInfo.js.map +1 -0
  123. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts +1 -0
  124. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -1
  125. package/lib/services/orderMerge/algoOrderMergeHandler.js +8 -0
  126. package/lib/services/orderMerge/algoOrderMergeHandler.js.map +1 -1
  127. package/lib/services/orderMerge/baseMergeHandler.d.ts +1 -0
  128. package/lib/services/orderMerge/baseMergeHandler.d.ts.map +1 -1
  129. package/lib/services/orderMerge/baseMergeHandler.js +1 -1
  130. package/lib/services/orderMerge/baseMergeHandler.js.map +1 -1
  131. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts +1 -0
  132. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -1
  133. package/lib/services/orderMerge/regularOrderMergeHandler.js +3 -0
  134. package/lib/services/orderMerge/regularOrderMergeHandler.js.map +1 -1
  135. package/lib/services/painter/basePaint.d.ts +5 -0
  136. package/lib/services/painter/basePaint.d.ts.map +1 -1
  137. package/lib/services/painter/basePaint.js.map +1 -1
  138. package/lib/services/painter/dataPaint.d.ts +3 -0
  139. package/lib/services/painter/dataPaint.d.ts.map +1 -1
  140. package/lib/services/painter/dataPaint.js +88 -16
  141. package/lib/services/painter/dataPaint.js.map +1 -1
  142. package/lib/services/painter/layout.config.js +1 -1
  143. package/lib/services/painter/layout.config.js.map +1 -1
  144. package/lib/services/painter/painter.d.ts.map +1 -1
  145. package/lib/services/painter/painter.js +7 -2
  146. package/lib/services/painter/painter.js.map +1 -1
  147. package/lib/services/painter/qrPaint.d.ts +8 -0
  148. package/lib/services/painter/qrPaint.d.ts.map +1 -0
  149. package/lib/services/painter/qrPaint.js +49 -0
  150. package/lib/services/painter/qrPaint.js.map +1 -0
  151. package/lib/useLocalStorage.js +2 -2
  152. package/lib/useLocalStorage.js.map +1 -1
  153. package/lib/useMediaQuery.js +7 -7
  154. package/lib/useMediaQuery.js.map +1 -1
  155. package/lib/usePoster.d.ts.map +1 -1
  156. package/lib/usePoster.js +18 -15
  157. package/lib/usePoster.js.map +1 -1
  158. package/lib/useSessionStorage.js +2 -2
  159. package/lib/useSessionStorage.js.map +1 -1
  160. package/lib/utils/index.d.ts +1 -0
  161. package/lib/utils/index.d.ts.map +1 -1
  162. package/lib/utils/index.js +3 -0
  163. package/lib/utils/index.js.map +1 -1
  164. package/lib/utils/orderEntryHelper.d.ts +1 -0
  165. package/lib/utils/orderEntryHelper.d.ts.map +1 -1
  166. package/lib/utils/orderEntryHelper.js +29 -2
  167. package/lib/utils/orderEntryHelper.js.map +1 -1
  168. package/lib/version.d.ts +1 -1
  169. package/lib/version.js +2 -2
  170. package/lib/version.js.map +1 -1
  171. package/package.json +10 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/orderEntryHelper.ts"],"sourcesContent":["import { OrderEntity, OrderType } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport type OrderEntityKey = keyof OrderEntity & string;\n\n// index 3: markPrice\ntype orderEntryInputs = [\n Partial<OrderEntity>,\n // to update field\n keyof OrderEntity,\n any,\n number,\n {\n baseDP: number;\n quoteDP: number;\n }\n];\n\ntype orderEntryInputHandle = (inputs: orderEntryInputs) => orderEntryInputs;\n\nconst needNumberOnlyFields: (keyof OrderEntity)[] = [\n \"order_quantity\",\n \"order_price\",\n \"trigger_price\",\n \"total\",\n];\n\n/// only save number\nexport const cleanStringStyle = (str: string | number): string => {\n if (typeof str !== \"string\") {\n str = str.toString();\n }\n str = str.replace(/,/g, \"\");\n // clear extra character expect number and .\n str = str\n .replace(/[^\\d.]/g, \"\")\n .replace(\".\", \"$#$\")\n .replace(/\\./g, \"\")\n .replace(\"$#$\", \".\");\n\n return str;\n};\n\nexport function baseInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n let [values, input, value, markPrice, config] = inputs;\n\n needNumberOnlyFields.forEach((field) => {\n if (typeof values[field] !== \"undefined\") {\n // @ts-ignore\n values[field] = cleanStringStyle(values[field] as string);\n }\n });\n\n if (needNumberOnlyFields.includes(input)) {\n value = cleanStringStyle(value);\n }\n\n return [\n {\n ...values,\n [input]: value,\n },\n input,\n value,\n markPrice,\n config,\n ];\n\n // return [values, input, value, markPrice];\n}\n\nexport function orderTypeHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === OrderType.LIMIT || value === OrderType.STOP_LIMIT) {\n if (values.order_price === \"\") {\n values.total = \"\";\n }\n }\n\n return [values, input, value, markPrice, config];\n}\n\n/**\n * digital precision processing\n * @param inputs\n * @returns\n */\nexport function orderEntityFormatHandle(baseTick: number, quoteTick: number) {\n return function (inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n // TODO: formatting only deals with the thousandths and so on\n // if (!!values.order_quantity) {\n //\n // const d = new Decimal(values.order_quantity);\n // const dp = d.dp();\n // if (dp > quoteTick) {\n // values.order_quantity = d.toDecimalPlaces(baseTick).toNumber();\n // }\n // }\n\n // if (!!values.order_price && values.order_type === OrderType.LIMIT) {\n // const sd = new Decimal(values.order_price).sd(false);\n // if (sd > quoteTick) {\n // values.order_price = new Decimal(values.order_price).toFixed(quoteTick);\n // }\n // }\n\n // if (!!values.total) {\n // const sd = new Decimal(values.total).sd(false);\n // if (sd > quoteTick) {\n // values.total = new Decimal(values.total).toFixed(quoteTick);\n // }\n // }\n\n return [values, input, value, markPrice, config];\n };\n}\n\n/**\n * price input handle\n * @param inputs\n * @returns\n */\nfunction priceInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === \"\") {\n return [{ ...values, total: \"\" }, input, value, markPrice, config];\n }\n\n // when entering the price, total also needs to be linked\n const price = new Decimal(value);\n const priceDP = price.dp();\n\n if (priceDP > config.quoteDP) {\n values.order_price = price.toDecimalPlaces(config.quoteDP).toString();\n }\n\n price.toDecimalPlaces(Math.min(priceDP, config.quoteDP));\n\n if (!values.order_quantity && !values.total) {\n return [values, input, value, markPrice, config];\n }\n\n const newValue = {\n ...values,\n };\n\n if (values.order_quantity) {\n // total = price.mul(values.order_quantity);\n newValue.total = price.mul(values.order_quantity).todp(2).toString();\n } else if (values.total) {\n // total = new Decimal(values.total);\n newValue.order_quantity = new Decimal(values.total)\n .div(price)\n .todp(config.baseDP)\n .toString();\n }\n\n // const quantityDP = total.dp();\n return [\n // {\n // ...values,\n // total: total.todp(2).toString(),\n // },\n newValue,\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * quantity input handle\n * @param inputs\n * @returns\n */\nfunction quantityInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === \"\") {\n return [{ ...values, total: \"\" }, input, value, markPrice, config];\n }\n\n let quantity = new Decimal(value);\n const quantityDP = quantity.dp();\n\n // check the length for precision and recalculate\n if (quantityDP > config.baseDP) {\n quantity = quantity.toDecimalPlaces(config.baseDP);\n values.order_quantity = quantity.toNumber();\n }\n\n // if(values.order_type === OrderType.MARKET) {\n\n // }\n\n if (\n values.order_type === OrderType.MARKET ||\n values.order_type === OrderType.STOP_MARKET\n ) {\n const price = markPrice;\n values.total = quantity.mul(price).todp(2).toString();\n }\n\n if (\n values.order_type === OrderType.LIMIT ||\n values.order_type === OrderType.STOP_LIMIT\n ) {\n if (values.order_price) {\n const price = Number(values.order_price);\n const total = quantity.mul(price);\n values.total = total.todp(2).toString();\n } else {\n values.total = \"\";\n }\n }\n\n // const totalDP = total.dp();\n // total.todp(Math.min(config.quoteDP, totalDP));\n\n return [\n {\n ...values,\n // total: total.todp(2).toNumber(),\n },\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * total input handle\n * @param inputs\n * @returns\n */\nfunction totalInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n if (value === \"\") {\n return [{ ...values, order_quantity: \"\" }, input, value, markPrice, config];\n }\n\n let price = markPrice;\n\n if (\n (values.order_type === OrderType.LIMIT ||\n values.order_type === OrderType.STOP_LIMIT) &&\n !!values.order_price\n ) {\n price = Number(values.order_price);\n }\n let total = new Decimal(value);\n const totalDP = total.dp();\n\n if (totalDP > config.quoteDP) {\n total = total.toDecimalPlaces(config.quoteDP);\n values.total = total.toString();\n }\n\n const quantity = total.div(price);\n\n return [\n {\n ...values,\n order_quantity: quantity\n .toDecimalPlaces(Math.min(config.baseDP, quantity.dp()))\n .toString(),\n },\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * other input handle\n * @param inputs\n * @returns\n */\nfunction otherInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n return inputs;\n}\n\nexport const getCalculateHandler = (\n fieldName: string\n): orderEntryInputHandle => {\n switch (fieldName) {\n case \"order_type\":\n return orderTypeHandle;\n case \"order_quantity\": {\n return quantityInputHandle;\n }\n case \"order_price\": {\n return priceInputHandle;\n }\n case \"total\": {\n return totalInputHandle;\n }\n default:\n return otherInputHandle;\n }\n};\n"],"names":["OrderType","Decimal","needNumberOnlyFields","cleanStringStyle","str","toString","replace","baseInputHandle","inputs","values","input","value","markPrice","config","forEach","field","includes","orderTypeHandle","LIMIT","STOP_LIMIT","order_price","total","orderEntityFormatHandle","baseTick","quoteTick","priceInputHandle","price","priceDP","dp","quoteDP","toDecimalPlaces","Math","min","order_quantity","newValue","mul","todp","div","baseDP","quantityInputHandle","quantity","quantityDP","toNumber","order_type","MARKET","STOP_MARKET","Number","totalInputHandle","totalDP","otherInputHandle","getCalculateHandler","fieldName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/orderEntryHelper.ts"],"sourcesContent":["import { OrderEntity, OrderType } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport type OrderEntityKey = keyof OrderEntity & string;\n\n// index 3: markPrice\ntype orderEntryInputs = [\n Partial<OrderEntity>,\n // to update field\n keyof OrderEntity,\n any,\n number,\n {\n baseDP: number;\n quoteDP: number;\n }\n];\n\ntype orderEntryInputHandle = (inputs: orderEntryInputs) => orderEntryInputs;\n\nconst needNumberOnlyFields: (keyof OrderEntity)[] = [\n \"order_quantity\",\n \"order_price\",\n \"trigger_price\",\n \"total\",\n];\n\n/// only save number\nexport const cleanStringStyle = (str: string | number): string => {\n if (typeof str !== \"string\") {\n str = `${str}`;\n }\n str = str.replace(/,/g, \"\");\n // clear extra character expect number and .\n str = str\n .replace(/[^\\d.]/g, \"\")\n .replace(\".\", \"$#$\")\n .replace(/\\./g, \"\")\n .replace(\"$#$\", \".\");\n\n return str;\n};\n\nexport function baseInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n let [values, input, value, markPrice, config] = inputs;\n\n needNumberOnlyFields.forEach((field) => {\n if (typeof values[field] !== \"undefined\") {\n // @ts-ignore\n values[field] = cleanStringStyle(values[field] as string);\n }\n });\n\n if (needNumberOnlyFields.includes(input)) {\n value = cleanStringStyle(value);\n }\n\n return [\n {\n ...values,\n [input]: value,\n },\n input,\n value,\n markPrice,\n config,\n ];\n\n // return [values, input, value, markPrice];\n}\n\nexport function orderTypeHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === OrderType.LIMIT || value === OrderType.STOP_LIMIT) {\n if (values.order_price === \"\") {\n values.total = \"\";\n }\n }\n\n return [values, input, value, markPrice, config];\n}\n\n/**\n * digital precision processing\n * @param inputs\n * @returns\n */\nexport function orderEntityFormatHandle(baseTick: number, quoteTick: number) {\n return function (inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n // TODO: formatting only deals with the thousandths and so on\n // if (!!values.order_quantity) {\n //\n // const d = new Decimal(values.order_quantity);\n // const dp = d.dp();\n // if (dp > quoteTick) {\n // values.order_quantity = d.toDecimalPlaces(baseTick).toNumber();\n // }\n // }\n\n // if (!!values.order_price && values.order_type === OrderType.LIMIT) {\n // const sd = new Decimal(values.order_price).sd(false);\n // if (sd > quoteTick) {\n // values.order_price = new Decimal(values.order_price).toFixed(quoteTick);\n // }\n // }\n\n // if (!!values.total) {\n // const sd = new Decimal(values.total).sd(false);\n // if (sd > quoteTick) {\n // values.total = new Decimal(values.total).toFixed(quoteTick);\n // }\n // }\n\n return [values, input, value, markPrice, config];\n };\n}\n\n/**\n * price input handle\n * @param inputs\n * @returns\n */\nfunction priceInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === \"\") {\n return [{ ...values, total: \"\" }, input, value, markPrice, config];\n }\n\n // when entering the price, total also needs to be linked\n const price = new Decimal(value);\n const priceDP = price.dp();\n\n if (priceDP > config.quoteDP) {\n values.order_price = price.toDecimalPlaces(config.quoteDP).toString();\n }\n\n price.toDecimalPlaces(Math.min(priceDP, config.quoteDP));\n\n if (!values.order_quantity && !values.total) {\n return [values, input, value, markPrice, config];\n }\n\n const newValue = {\n ...values,\n };\n\n if (values.order_quantity) {\n // total = price.mul(values.order_quantity);\n newValue.total = price.mul(values.order_quantity).todp(2).toString();\n } else if (values.total) {\n // total = new Decimal(values.total);\n newValue.order_quantity = new Decimal(values.total)\n .div(price)\n .todp(config.baseDP)\n .toString();\n }\n\n // const quantityDP = total.dp();\n return [\n // {\n // ...values,\n // total: total.todp(2).toString(),\n // },\n newValue,\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * quantity input handle\n * @param inputs\n * @returns\n */\nfunction quantityInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === \"\") {\n return [{ ...values, total: \"\" }, input, value, markPrice, config];\n }\n\n let quantity = new Decimal(value);\n const quantityDP = quantity.dp();\n\n // check the length for precision and recalculate\n if (quantityDP > config.baseDP) {\n quantity = quantity.toDecimalPlaces(config.baseDP);\n values.order_quantity = quantity.toNumber();\n }\n\n // if(values.order_type === OrderType.MARKET) {\n\n // }\n\n if (\n values.order_type === OrderType.MARKET ||\n values.order_type === OrderType.STOP_MARKET\n ) {\n const price = markPrice;\n values.total = quantity.mul(price).todp(2).toString();\n }\n\n if (\n values.order_type === OrderType.LIMIT ||\n values.order_type === OrderType.STOP_LIMIT\n ) {\n if (values.order_price) {\n const price = Number(values.order_price);\n const total = quantity.mul(price);\n values.total = total.todp(config.quoteDP).toString();\n } else {\n values.total = \"\";\n }\n }\n\n // const totalDP = total.dp();\n // total.todp(Math.min(config.quoteDP, totalDP));\n\n return [\n {\n ...values,\n // total: total.todp(2).toNumber(),\n },\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * total input handle\n * @param inputs\n * @returns\n */\nfunction totalInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n if (value === \"\") {\n return [{ ...values, order_quantity: \"\" }, input, value, markPrice, config];\n }\n\n let price = markPrice;\n\n if (\n (values.order_type === OrderType.LIMIT ||\n values.order_type === OrderType.STOP_LIMIT) &&\n !!values.order_price\n ) {\n price = Number(values.order_price);\n }\n let total = new Decimal(value);\n const totalDP = total.dp();\n\n if (totalDP > config.quoteDP) {\n total = total.toDecimalPlaces(config.quoteDP);\n values.total = total.toString();\n }\n\n const quantity = total.div(price);\n\n return [\n {\n ...values,\n order_quantity: quantity\n .toDecimalPlaces(Math.min(config.baseDP, quantity.dp()))\n .toString(),\n },\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * other input handle\n * @param inputs\n * @returns\n */\nfunction otherInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n return inputs;\n}\n\nexport const getCalculateHandler = (\n fieldName: string\n): orderEntryInputHandle => {\n switch (fieldName) {\n case \"order_type\":\n return orderTypeHandle;\n case \"order_quantity\": {\n return quantityInputHandle;\n }\n case \"order_price\": {\n return priceInputHandle;\n }\n case \"total\": {\n return totalInputHandle;\n }\n default:\n return otherInputHandle;\n }\n};\n\n//** format number */\nexport function formatNumber(\n qty?: string | number,\n dp?: number | string\n): string | undefined {\n if (typeof qty === \"undefined\") return qty;\n if (typeof dp === \"undefined\") return `${qty}`;\n\n // console.log(\"qty\", qty, \"dp\", dp);\n \n const _qty = `${qty}`.replace(/,/g, \"\");\n \n \n try {\n const _dp = new Decimal(dp);\n const _qtyDecimal = new Decimal(_qty);\n \n if (_dp.lessThan(1)) {\n if (`${_qty}`.endsWith(\".\")) return `${_qty}`;\n \n const numStr = dp.toString();\n const decimalIndex = numStr.indexOf(\".\");\n const digitsAfterDecimal =\n decimalIndex === -1 ? 0 : numStr.length - decimalIndex - 1;\n\n const result = _qtyDecimal\n .toDecimalPlaces(digitsAfterDecimal, Decimal.ROUND_DOWN)\n .toString();\n\n return result;\n }\n\n if (_qtyDecimal.lessThan(_dp)) {\n return _qty;\n }\n\n return _qtyDecimal\n .dividedBy(_dp)\n .toDecimalPlaces(0, Decimal.ROUND_DOWN)\n .mul(dp)\n .toString();\n } catch (e) { \n return undefined;\n }\n}\n"],"names":["OrderType","Decimal","needNumberOnlyFields","cleanStringStyle","str","replace","baseInputHandle","inputs","values","input","value","markPrice","config","forEach","field","includes","orderTypeHandle","LIMIT","STOP_LIMIT","order_price","total","orderEntityFormatHandle","baseTick","quoteTick","priceInputHandle","price","priceDP","dp","quoteDP","toDecimalPlaces","toString","Math","min","order_quantity","newValue","mul","todp","div","baseDP","quantityInputHandle","quantity","quantityDP","toNumber","order_type","MARKET","STOP_MARKET","Number","totalInputHandle","totalDP","otherInputHandle","getCalculateHandler","fieldName","formatNumber","qty","_qty","_dp","_qtyDecimal","lessThan","endsWith","numStr","decimalIndex","indexOf","digitsAfterDecimal","length","result","ROUND_DOWN","dividedBy","e","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
package/esm/version.d.ts CHANGED
@@ -5,6 +5,6 @@ declare global {
5
5
  };
6
6
  }
7
7
  }
8
- declare const _default: "1.5.0";
8
+ declare const _default: "1.5.1";
9
9
  export default _default;
10
10
  //# sourceMappingURL=version.d.ts.map
package/esm/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  if (typeof window !== 'undefined') {
2
2
  window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
3
- window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.5.0";
3
+ window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.5.1";
4
4
  }
5
- export default "1.5.0";
5
+ export default "1.5.1";
6
6
 
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/hooks\"] = \"1.5.0\";\n};\n\nexport default \"1.5.0\";\n"],"names":["window","__ORDERLY_VERSION__"],"rangeMappings":";;;;","mappings":"AAQA,IAAG,OAAOA,WAAW,aAAa;IAC9BA,OAAOC,mBAAmB,GAAGD,OAAOC,mBAAmB,IAAI,CAAC;IAC5DD,OAAOC,mBAAmB,CAAC,yBAAyB,GAAG;AAC3D;AAEA,eAAe,QAAQ"}
1
+ {"version":3,"sources":["../src/version.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/hooks\"] = \"1.5.1\";\n};\n\nexport default \"1.5.1\";\n"],"names":["window","__ORDERLY_VERSION__"],"rangeMappings":";;;;","mappings":"AAQA,IAAG,OAAOA,WAAW,aAAa;IAC9BA,OAAOC,mBAAmB,GAAGD,OAAOC,mBAAmB,IAAI,CAAC;IAC5DD,OAAOC,mBAAmB,CAAC,yBAAyB,GAAG;AAC3D;AAEA,eAAe,QAAQ"}
@@ -31,4 +31,5 @@ export { useSettleSubscription } from "./useSettleSubscription";
31
31
  export { usePrivateDataObserver } from "./usePrivateDataObserver";
32
32
  export { useSymbolPriceRange } from "./useSymbolPriceRange";
33
33
  export { useTPSLOrder, type ComputedAlgoOrder, } from "./useTakeProfitAndStopLoss";
34
+ export { useSymbolLeverage } from "./useSymbolLeverage";
34
35
  //# sourceMappingURL=orderlyHooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderlyHooks.d.ts","sourceRoot":"","sources":["../../src/orderly/orderlyHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"orderlyHooks.d.ts","sourceRoot":"","sources":["../../src/orderly/orderlyHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -78,6 +78,9 @@ _export(exports, {
78
78
  useSettleSubscription: function() {
79
79
  return _useSettleSubscription.useSettleSubscription;
80
80
  },
81
+ useSymbolLeverage: function() {
82
+ return _useSymbolLeverage.useSymbolLeverage;
83
+ },
81
84
  useSymbolPriceRange: function() {
82
85
  return _useSymbolPriceRange.useSymbolPriceRange;
83
86
  },
@@ -125,5 +128,6 @@ const _useSettleSubscription = require("./useSettleSubscription");
125
128
  const _usePrivateDataObserver = require("./usePrivateDataObserver");
126
129
  const _useSymbolPriceRange = require("./useSymbolPriceRange");
127
130
  const _useTakeProfitAndStopLoss = require("./useTakeProfitAndStopLoss");
131
+ const _useSymbolLeverage = require("./useSymbolLeverage");
128
132
 
129
133
  //# sourceMappingURL=orderlyHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/orderlyHooks.ts"],"sourcesContent":["export { useOrderbookStream } from \"./useOrderbookStream\";\nexport type {\n OrderbookData,\n OrderBookItem,\n OrderbookOptions,\n} from \"./useOrderbookStream\";\nexport { useOrderEntry } from \"./useOrderEntry\";\nexport type { UseOrderEntryMetaState, OrderParams } from \"./useOrderEntry\";\nexport { useSymbolsInfo } from \"./useSymbolsInfo\";\nexport { useAccountInfo } from \"./useAccountInfo\";\n\nexport { useMarketsStream } from \"./useMarketsStream\";\nexport { useMarkets, MarketsType } from \"./useMarkets\";\nexport type { FavoriteTab, Favorite, Recent } from \"./useMarkets\";\nexport { useMarkPricesStream } from \"./useMarkPricesStream\";\nexport { useMarkPrice } from \"./useMarkPrice\";\nexport { useIndexPrice } from \"./useIndexPrice\";\nexport { useLeverage } from \"./useLeverage\";\n\nexport { useTickerStream } from \"./useTickerStream\";\nexport { useFundingRate } from \"./useFundingRate\";\nexport { usePositionStream } from \"./usePositionStream/usePositionStream\";\nexport { useOrderStream } from \"./useOrderStream/useOrderStream\";\nexport { useMarketTradeStream } from \"./useMarketTradeStream\";\n\nexport { useCollateral } from \"./useCollateral\";\nexport type { CollateralOutputs } from \"./useCollateral\";\nexport { useMaxQty } from \"./useMaxQty\";\nexport { useMarginRatio } from \"./useMarginRatio\";\n\nexport { useChains } from \"./useChains\";\nexport type {\n UseChainsOptions,\n Chain,\n Chains,\n UseChainsReturnObject,\n} from \"./useChains\";\nexport { useChain } from \"./useChain\";\nexport { useWithdraw } from \"./useWithdraw\";\nexport { useDeposit } from \"./useDeposit\";\n\nexport { useHoldingStream } from \"./useHoldingStream\";\nexport { useWalletSubscription } from \"./useWalletSubscription\";\nexport { useSettleSubscription } from \"./useSettleSubscription\";\nexport { usePrivateDataObserver } from \"./usePrivateDataObserver\";\n\nexport { useSymbolPriceRange } from \"./useSymbolPriceRange\";\n\nexport {\n useTPSLOrder,\n type ComputedAlgoOrder,\n} from \"./useTakeProfitAndStopLoss\";\n"],"names":["MarketsType","useAccountInfo","useChain","useChains","useCollateral","useDeposit","useFundingRate","useHoldingStream","useIndexPrice","useLeverage","useMarginRatio","useMarkPrice","useMarkPricesStream","useMarketTradeStream","useMarkets","useMarketsStream","useMaxQty","useOrderEntry","useOrderStream","useOrderbookStream","usePositionStream","usePrivateDataObserver","useSettleSubscription","useSymbolPriceRange","useSymbolsInfo","useTPSLOrder","useTickerStream","useWalletSubscription","useWithdraw"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAYqBA,WAAW;eAAXA,uBAAW;;IAHvBC,cAAc;eAAdA,8BAAc;;IA4BdC,QAAQ;eAARA,kBAAQ;;IAPRC,SAAS;eAATA,oBAAS;;IALTC,aAAa;eAAbA,4BAAa;;IAcbC,UAAU;eAAVA,sBAAU;;IAnBVC,cAAc;eAAdA,8BAAc;;IAqBdC,gBAAgB;eAAhBA,kCAAgB;;IAzBhBC,aAAa;eAAbA,4BAAa;;IACbC,WAAW;eAAXA,wBAAW;;IAWXC,cAAc;eAAdA,8BAAc;;IAbdC,YAAY;eAAZA,0BAAY;;IADZC,mBAAmB;eAAnBA,wCAAmB;;IASnBC,oBAAoB;eAApBA,0CAAoB;;IAXpBC,UAAU;eAAVA,sBAAU;;IADVC,gBAAgB;eAAhBA,kCAAgB;;IAgBhBC,SAAS;eAATA,oBAAS;;IArBTC,aAAa;eAAbA,4BAAa;;IAgBbC,cAAc;eAAdA,8BAAc;;IAtBdC,kBAAkB;eAAlBA,sCAAkB;;IAqBlBC,iBAAiB;eAAjBA,oCAAiB;;IAuBjBC,sBAAsB;eAAtBA,8CAAsB;;IADtBC,qBAAqB;eAArBA,4CAAqB;;IAGrBC,mBAAmB;eAAnBA,wCAAmB;;IAtCnBC,cAAc;eAAdA,8BAAc;;IAyCrBC,YAAY;eAAZA,sCAAY;;IA9BLC,eAAe;eAAfA,gCAAe;;IAuBfC,qBAAqB;eAArBA,4CAAqB;;IAJrBC,WAAW;eAAXA,wBAAW;;;oCAtCe;+BAML;gCAEC;gCACA;kCAEE;4BACO;qCAEJ;8BACP;+BACC;6BACF;iCAEI;gCACD;mCACG;gCACH;sCACM;+BAEP;2BAEJ;gCACK;2BAEL;0BAOD;6BACG;4BACD;kCAEM;uCACK;uCACA;wCACC;qCAEH;0CAK7B"}
1
+ {"version":3,"sources":["../../src/orderly/orderlyHooks.ts"],"sourcesContent":["export { useOrderbookStream } from \"./useOrderbookStream\";\nexport type {\n OrderbookData,\n OrderBookItem,\n OrderbookOptions,\n} from \"./useOrderbookStream\";\nexport { useOrderEntry } from \"./useOrderEntry\";\nexport type { UseOrderEntryMetaState, OrderParams } from \"./useOrderEntry\";\nexport { useSymbolsInfo } from \"./useSymbolsInfo\";\nexport { useAccountInfo } from \"./useAccountInfo\";\n\nexport { useMarketsStream } from \"./useMarketsStream\";\nexport { useMarkets, MarketsType } from \"./useMarkets\";\nexport type { FavoriteTab, Favorite, Recent } from \"./useMarkets\";\nexport { useMarkPricesStream } from \"./useMarkPricesStream\";\nexport { useMarkPrice } from \"./useMarkPrice\";\nexport { useIndexPrice } from \"./useIndexPrice\";\nexport { useLeverage } from \"./useLeverage\";\n\nexport { useTickerStream } from \"./useTickerStream\";\nexport { useFundingRate } from \"./useFundingRate\";\nexport { usePositionStream } from \"./usePositionStream/usePositionStream\";\nexport { useOrderStream } from \"./useOrderStream/useOrderStream\";\nexport { useMarketTradeStream } from \"./useMarketTradeStream\";\n\nexport { useCollateral } from \"./useCollateral\";\nexport type { CollateralOutputs } from \"./useCollateral\";\nexport { useMaxQty } from \"./useMaxQty\";\nexport { useMarginRatio } from \"./useMarginRatio\";\n\nexport { useChains } from \"./useChains\";\nexport type {\n UseChainsOptions,\n Chain,\n Chains,\n UseChainsReturnObject,\n} from \"./useChains\";\nexport { useChain } from \"./useChain\";\nexport { useWithdraw } from \"./useWithdraw\";\nexport { useDeposit } from \"./useDeposit\";\n\nexport { useHoldingStream } from \"./useHoldingStream\";\nexport { useWalletSubscription } from \"./useWalletSubscription\";\nexport { useSettleSubscription } from \"./useSettleSubscription\";\nexport { usePrivateDataObserver } from \"./usePrivateDataObserver\";\n\nexport { useSymbolPriceRange } from \"./useSymbolPriceRange\";\n\nexport {\n useTPSLOrder,\n type ComputedAlgoOrder,\n} from \"./useTakeProfitAndStopLoss\";\n\n\nexport { useSymbolLeverage } from \"./useSymbolLeverage\";"],"names":["MarketsType","useAccountInfo","useChain","useChains","useCollateral","useDeposit","useFundingRate","useHoldingStream","useIndexPrice","useLeverage","useMarginRatio","useMarkPrice","useMarkPricesStream","useMarketTradeStream","useMarkets","useMarketsStream","useMaxQty","useOrderEntry","useOrderStream","useOrderbookStream","usePositionStream","usePrivateDataObserver","useSettleSubscription","useSymbolLeverage","useSymbolPriceRange","useSymbolsInfo","useTPSLOrder","useTickerStream","useWalletSubscription","useWithdraw"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAYqBA,WAAW;eAAXA,uBAAW;;IAHvBC,cAAc;eAAdA,8BAAc;;IA4BdC,QAAQ;eAARA,kBAAQ;;IAPRC,SAAS;eAATA,oBAAS;;IALTC,aAAa;eAAbA,4BAAa;;IAcbC,UAAU;eAAVA,sBAAU;;IAnBVC,cAAc;eAAdA,8BAAc;;IAqBdC,gBAAgB;eAAhBA,kCAAgB;;IAzBhBC,aAAa;eAAbA,4BAAa;;IACbC,WAAW;eAAXA,wBAAW;;IAWXC,cAAc;eAAdA,8BAAc;;IAbdC,YAAY;eAAZA,0BAAY;;IADZC,mBAAmB;eAAnBA,wCAAmB;;IASnBC,oBAAoB;eAApBA,0CAAoB;;IAXpBC,UAAU;eAAVA,sBAAU;;IADVC,gBAAgB;eAAhBA,kCAAgB;;IAgBhBC,SAAS;eAATA,oBAAS;;IArBTC,aAAa;eAAbA,4BAAa;;IAgBbC,cAAc;eAAdA,8BAAc;;IAtBdC,kBAAkB;eAAlBA,sCAAkB;;IAqBlBC,iBAAiB;eAAjBA,oCAAiB;;IAuBjBC,sBAAsB;eAAtBA,8CAAsB;;IADtBC,qBAAqB;eAArBA,4CAAqB;;IAWrBC,iBAAiB;eAAjBA,oCAAiB;;IARjBC,mBAAmB;eAAnBA,wCAAmB;;IAtCnBC,cAAc;eAAdA,8BAAc;;IAyCrBC,YAAY;eAAZA,sCAAY;;IA9BLC,eAAe;eAAfA,gCAAe;;IAuBfC,qBAAqB;eAArBA,4CAAqB;;IAJrBC,WAAW;eAAXA,wBAAW;;;oCAtCe;+BAML;gCAEC;gCACA;kCAEE;4BACO;qCAEJ;8BACP;+BACC;6BACF;iCAEI;gCACD;mCACG;gCACH;sCACM;+BAEP;2BAEJ;gCACK;2BAEL;0BAOD;6BACG;4BACD;kCAEM;uCACK;uCACA;wCACC;qCAEH;0CAK7B;mCAG2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCollateral.d.ts","sourceRoot":"","sources":["../../src/orderly/useCollateral.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,wBAAwB,CAAC;AAO/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,aAAa,aACf;IACP,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,KACA,iBA2EF,CAAC"}
1
+ {"version":3,"file":"useCollateral.d.ts","sourceRoot":"","sources":["../../src/orderly/useCollateral.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,wBAAwB,CAAC;AAO/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,aAAa,aACf;IACP,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,KACA,iBAoFF,CAAC"}
@@ -13,12 +13,10 @@ const _usePrivateQuery = require("../usePrivateQuery");
13
13
  const _usePositionStream = require("./usePositionStream/usePositionStream");
14
14
  const _ramda = require("ramda");
15
15
  const _perp = require("@orderly.network/perp");
16
- const _types = require("@orderly.network/types");
17
16
  const _useSymbolsInfo = require("./useSymbolsInfo");
18
17
  const _utils = require("@orderly.network/utils");
19
18
  const _useMarkPricesStream = require("./useMarkPricesStream");
20
19
  const _useHoldingStream = require("./useHoldingStream");
21
- const _useOrderStream = require("./useOrderStream/useOrderStream");
22
20
  const positionsPath = (0, _ramda.pathOr)([], [
23
21
  0,
24
22
  "rows"
@@ -31,15 +29,17 @@ const useCollateral = (options = {
31
29
  dp: 6
32
30
  })=>{
33
31
  const { dp } = options;
34
- const positions = (0, _usePositionStream.usePositionStream)();
35
- const [orders] = (0, _useOrderStream.useOrderStream)({
36
- status: _types.OrderStatus.NEW
32
+ const positions = (0, _usePositionStream.usePositionStream)(undefined, {
33
+ includedPendingOrder: true
37
34
  });
35
+ // console.log("positions", positions);
36
+ // const [orders] = useOrderStream({ status: OrderStatus.NEW });
38
37
  const { data: accountInfo } = (0, _usePrivateQuery.usePrivateQuery)("/v1/client/info");
39
38
  const symbolInfo = (0, _useSymbolsInfo.useSymbolsInfo)();
40
39
  const { data: markPrices } = (0, _useMarkPricesStream.useMarkPricesStream)();
41
40
  const { usdc } = (0, _useHoldingStream.useHoldingStream)();
42
- const filterAlgoOrders = orders?.filter((item)=>item.algo_order_id === undefined) ?? [];
41
+ // const filterAlgoOrders =
42
+ // orders?.filter((item) => item.algo_order_id === undefined) ?? [];
43
43
  // const { data: holding } = usePrivateQuery<API.Holding[]>(
44
44
  // "/v1/client/holding",
45
45
  // {
@@ -67,9 +67,8 @@ const useCollateral = (options = {
67
67
  if (!accountInfo || !symbolInfo || !markPrices) {
68
68
  return 0;
69
69
  }
70
- return _perp.account.totalInitialMarginWithOrders({
70
+ return _perp.account.totalInitialMarginWithQty({
71
71
  positions: positionsPath(positions),
72
- orders: filterAlgoOrders,
73
72
  markPrices,
74
73
  IMR_Factors: accountInfo.imr_factor,
75
74
  maxLeverage: accountInfo.max_leverage,
@@ -77,7 +76,7 @@ const useCollateral = (options = {
77
76
  });
78
77
  }, [
79
78
  positions,
80
- filterAlgoOrders,
79
+ // filterAlgoOrders,
81
80
  markPrices,
82
81
  accountInfo,
83
82
  symbolInfo
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/useCollateral.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport {\n pathOr_unsettledPnLPathOr,\n usePositionStream,\n} from \"./usePositionStream/usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { account } from \"@orderly.network/perp\";\nimport { type API, OrderStatus } from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { zero } from \"@orderly.network/utils\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useHoldingStream } from \"./useHoldingStream\";\nimport { useOrderStream } from \"./useOrderStream/useOrderStream\";\n\nexport type CollateralOutputs = {\n totalCollateral: number;\n freeCollateral: number;\n totalValue: number;\n availableBalance: number;\n unsettledPnL: number;\n\n positions: API.Position[];\n accountInfo?: API.AccountInfo;\n};\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\nconst totalCollateralPath = pathOr(0, [0, \"totalCollateral\"]);\n\nexport const useCollateral = (\n options: {\n /** decimal precision */\n dp: number;\n } = { dp: 6 }\n): CollateralOutputs => {\n const { dp } = options;\n const positions = usePositionStream();\n\n const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const { usdc } = useHoldingStream();\n\n const filterAlgoOrders =\n orders?.filter((item) => item.algo_order_id === undefined) ?? [];\n\n // const { data: holding } = usePrivateQuery<API.Holding[]>(\n // \"/v1/client/holding\",\n // {\n // formatter: (data) => {\n // return data.holding;\n // },\n // }\n // );\n\n const [totalCollateral, totalValue] = useMemo(() => {\n return [\n pathOr(zero, [0, \"totalCollateral\"], positions),\n pathOr(zero, [0, \"totalValue\"], positions),\n ];\n }, [positions, markPrices]);\n\n const totalInitialMarginWithOrders = useMemo(() => {\n if (!accountInfo || !symbolInfo || !markPrices) {\n return 0;\n }\n\n return account.totalInitialMarginWithOrders({\n positions: positionsPath(positions),\n orders: filterAlgoOrders,\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n symbolInfo,\n });\n }, [positions, filterAlgoOrders, markPrices, accountInfo, symbolInfo]);\n\n const freeCollateral = useMemo(() => {\n return account.freeCollateral({\n totalCollateral,\n totalInitialMarginWithOrders,\n });\n }, [totalCollateral, totalInitialMarginWithOrders]);\n\n const availableBalance = useMemo(() => {\n return account.availableBalance({\n USDCHolding: usdc?.holding ?? 0,\n unsettlementPnL: pathOr_unsettledPnLPathOr(positions),\n });\n }, [usdc?.holding, pathOr_unsettledPnLPathOr(positions)]);\n\n return {\n totalCollateral: totalCollateral.toDecimalPlaces(dp).toNumber(),\n freeCollateral: freeCollateral.toDecimalPlaces(dp).toNumber(),\n totalValue: totalValue.toDecimalPlaces(dp).toNumber(),\n availableBalance,\n unsettledPnL: pathOr_unsettledPnLPathOr(positions),\n\n accountInfo,\n\n // @hidden\n positions: positionsPath(positions),\n };\n};\n"],"names":["useCollateral","positionsPath","pathOr","totalCollateralPath","options","dp","positions","usePositionStream","orders","useOrderStream","status","OrderStatus","NEW","data","accountInfo","usePrivateQuery","symbolInfo","useSymbolsInfo","markPrices","useMarkPricesStream","usdc","useHoldingStream","filterAlgoOrders","filter","item","algo_order_id","undefined","totalCollateral","totalValue","useMemo","zero","totalInitialMarginWithOrders","account","IMR_Factors","imr_factor","maxLeverage","max_leverage","freeCollateral","availableBalance","USDCHolding","holding","unsettlementPnL","pathOr_unsettledPnLPathOr","toDecimalPlaces","toNumber","unsettledPnL"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA6BaA;;;eAAAA;;;uBA7BW;iCACQ;mCAIzB;uBACgB;sBACC;uBACc;gCACP;uBACV;qCACe;kCACH;gCACF;AAa/B,MAAMC,gBAAgBC,IAAAA,aAAM,EAAC,EAAE,EAAE;IAAC;IAAG;CAAO;AAC5C,MAAMC,sBAAsBD,IAAAA,aAAM,EAAC,GAAG;IAAC;IAAG;CAAkB;AAErD,MAAMF,gBAAgB,CAC3BI,UAGI;IAAEC,IAAI;AAAE,CAAC;IAEb,MAAM,EAAEA,EAAE,EAAE,GAAGD;IACf,MAAME,YAAYC,IAAAA,oCAAiB;IAEnC,MAAM,CAACC,OAAO,GAAGC,IAAAA,8BAAc,EAAC;QAAEC,QAAQC,kBAAW,CAACC,GAAG;IAAC;IAE1D,MAAM,EAAEC,MAAMC,WAAW,EAAE,GACzBC,IAAAA,gCAAe,EAAkB;IAEnC,MAAMC,aAAaC,IAAAA,8BAAc;IAEjC,MAAM,EAAEJ,MAAMK,UAAU,EAAE,GAAGC,IAAAA,wCAAmB;IAEhD,MAAM,EAAEC,IAAI,EAAE,GAAGC,IAAAA,kCAAgB;IAEjC,MAAMC,mBACJd,QAAQe,OAAO,CAACC,OAASA,KAAKC,aAAa,KAAKC,cAAc,EAAE;IAElE,4DAA4D;IAC5D,0BAA0B;IAC1B,MAAM;IACN,6BAA6B;IAC7B,6BAA6B;IAC7B,SAAS;IACT,MAAM;IACN,KAAK;IAEL,MAAM,CAACC,iBAAiBC,WAAW,GAAGC,IAAAA,cAAO,EAAC;QAC5C,OAAO;YACL3B,IAAAA,aAAM,EAAC4B,WAAI,EAAE;gBAAC;gBAAG;aAAkB,EAAExB;YACrCJ,IAAAA,aAAM,EAAC4B,WAAI,EAAE;gBAAC;gBAAG;aAAa,EAAExB;SACjC;IACH,GAAG;QAACA;QAAWY;KAAW;IAE1B,MAAMa,+BAA+BF,IAAAA,cAAO,EAAC;QAC3C,IAAI,CAACf,eAAe,CAACE,cAAc,CAACE,YAAY;YAC9C,OAAO;QACT;QAEA,OAAOc,aAAO,CAACD,4BAA4B,CAAC;YAC1CzB,WAAWL,cAAcK;YACzBE,QAAQc;YACRJ;YACAe,aAAanB,YAAYoB,UAAU;YACnCC,aAAarB,YAAYsB,YAAY;YACrCpB;QACF;IACF,GAAG;QAACV;QAAWgB;QAAkBJ;QAAYJ;QAAaE;KAAW;IAErE,MAAMqB,iBAAiBR,IAAAA,cAAO,EAAC;QAC7B,OAAOG,aAAO,CAACK,cAAc,CAAC;YAC5BV;YACAI;QACF;IACF,GAAG;QAACJ;QAAiBI;KAA6B;IAElD,MAAMO,mBAAmBT,IAAAA,cAAO,EAAC;QAC/B,OAAOG,aAAO,CAACM,gBAAgB,CAAC;YAC9BC,aAAanB,MAAMoB,WAAW;YAC9BC,iBAAiBC,IAAAA,4CAAyB,EAACpC;QAC7C;IACF,GAAG;QAACc,MAAMoB;QAASE,IAAAA,4CAAyB,EAACpC;KAAW;IAExD,OAAO;QACLqB,iBAAiBA,gBAAgBgB,eAAe,CAACtC,IAAIuC,QAAQ;QAC7DP,gBAAgBA,eAAeM,eAAe,CAACtC,IAAIuC,QAAQ;QAC3DhB,YAAYA,WAAWe,eAAe,CAACtC,IAAIuC,QAAQ;QACnDN;QACAO,cAAcH,IAAAA,4CAAyB,EAACpC;QAExCQ;QAEA,UAAU;QACVR,WAAWL,cAAcK;IAC3B;AACF"}
1
+ {"version":3,"sources":["../../src/orderly/useCollateral.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport {\n pathOr_unsettledPnLPathOr,\n usePositionStream,\n} from \"./usePositionStream/usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { account } from \"@orderly.network/perp\";\nimport { type API, OrderStatus } from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { zero } from \"@orderly.network/utils\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useHoldingStream } from \"./useHoldingStream\";\nimport { useOrderStream } from \"./useOrderStream/useOrderStream\";\n\nexport type CollateralOutputs = {\n totalCollateral: number;\n freeCollateral: number;\n totalValue: number;\n availableBalance: number;\n unsettledPnL: number;\n\n positions: API.Position[];\n accountInfo?: API.AccountInfo;\n};\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\nconst totalCollateralPath = pathOr(0, [0, \"totalCollateral\"]);\n\nexport const useCollateral = (\n options: {\n /** decimal precision */\n dp: number;\n } = { dp: 6 }\n): CollateralOutputs => {\n const { dp } = options;\n const positions = usePositionStream(undefined, {\n includedPendingOrder: true,\n });\n\n // console.log(\"positions\", positions);\n\n // const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const { usdc } = useHoldingStream();\n\n // const filterAlgoOrders =\n // orders?.filter((item) => item.algo_order_id === undefined) ?? [];\n\n // const { data: holding } = usePrivateQuery<API.Holding[]>(\n // \"/v1/client/holding\",\n // {\n // formatter: (data) => {\n // return data.holding;\n // },\n // }\n // );\n\n const [totalCollateral, totalValue] = useMemo(() => {\n return [\n pathOr(zero, [0, \"totalCollateral\"], positions),\n pathOr(zero, [0, \"totalValue\"], positions),\n ];\n }, [positions, markPrices]);\n\n const totalInitialMarginWithOrders = useMemo(() => {\n if (!accountInfo || !symbolInfo || !markPrices) {\n return 0;\n }\n\n return account.totalInitialMarginWithQty({\n positions: positionsPath(positions),\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n symbolInfo,\n });\n }, [\n positions,\n // filterAlgoOrders,\n markPrices,\n accountInfo,\n symbolInfo,\n ]);\n\n const freeCollateral = useMemo(() => {\n return account.freeCollateral({\n totalCollateral,\n totalInitialMarginWithOrders,\n });\n }, [totalCollateral, totalInitialMarginWithOrders]);\n\n const availableBalance = useMemo(() => {\n return account.availableBalance({\n USDCHolding: usdc?.holding ?? 0,\n unsettlementPnL: pathOr_unsettledPnLPathOr(positions),\n });\n }, [usdc?.holding, pathOr_unsettledPnLPathOr(positions)]);\n\n return {\n totalCollateral: totalCollateral.toDecimalPlaces(dp).toNumber(),\n freeCollateral: freeCollateral.toDecimalPlaces(dp).toNumber(),\n totalValue: totalValue.toDecimalPlaces(dp).toNumber(),\n availableBalance,\n unsettledPnL: pathOr_unsettledPnLPathOr(positions),\n\n accountInfo,\n\n // @hidden\n positions: positionsPath(positions),\n };\n};\n"],"names":["useCollateral","positionsPath","pathOr","totalCollateralPath","options","dp","positions","usePositionStream","undefined","includedPendingOrder","data","accountInfo","usePrivateQuery","symbolInfo","useSymbolsInfo","markPrices","useMarkPricesStream","usdc","useHoldingStream","totalCollateral","totalValue","useMemo","zero","totalInitialMarginWithOrders","account","totalInitialMarginWithQty","IMR_Factors","imr_factor","maxLeverage","max_leverage","freeCollateral","availableBalance","USDCHolding","holding","unsettlementPnL","pathOr_unsettledPnLPathOr","toDecimalPlaces","toNumber","unsettledPnL"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA6BaA;;;eAAAA;;;uBA7BW;iCACQ;mCAIzB;uBACgB;sBACC;gCAEO;uBACV;qCACe;kCACH;AAcjC,MAAMC,gBAAgBC,IAAAA,aAAM,EAAC,EAAE,EAAE;IAAC;IAAG;CAAO;AAC5C,MAAMC,sBAAsBD,IAAAA,aAAM,EAAC,GAAG;IAAC;IAAG;CAAkB;AAErD,MAAMF,gBAAgB,CAC3BI,UAGI;IAAEC,IAAI;AAAE,CAAC;IAEb,MAAM,EAAEA,EAAE,EAAE,GAAGD;IACf,MAAME,YAAYC,IAAAA,oCAAiB,EAACC,WAAW;QAC7CC,sBAAsB;IACxB;IAEA,uCAAuC;IAEvC,gEAAgE;IAEhE,MAAM,EAAEC,MAAMC,WAAW,EAAE,GACzBC,IAAAA,gCAAe,EAAkB;IAEnC,MAAMC,aAAaC,IAAAA,8BAAc;IAEjC,MAAM,EAAEJ,MAAMK,UAAU,EAAE,GAAGC,IAAAA,wCAAmB;IAEhD,MAAM,EAAEC,IAAI,EAAE,GAAGC,IAAAA,kCAAgB;IAEjC,2BAA2B;IAC3B,sEAAsE;IAEtE,4DAA4D;IAC5D,0BAA0B;IAC1B,MAAM;IACN,6BAA6B;IAC7B,6BAA6B;IAC7B,SAAS;IACT,MAAM;IACN,KAAK;IAEL,MAAM,CAACC,iBAAiBC,WAAW,GAAGC,IAAAA,cAAO,EAAC;QAC5C,OAAO;YACLnB,IAAAA,aAAM,EAACoB,WAAI,EAAE;gBAAC;gBAAG;aAAkB,EAAEhB;YACrCJ,IAAAA,aAAM,EAACoB,WAAI,EAAE;gBAAC;gBAAG;aAAa,EAAEhB;SACjC;IACH,GAAG;QAACA;QAAWS;KAAW;IAE1B,MAAMQ,+BAA+BF,IAAAA,cAAO,EAAC;QAC3C,IAAI,CAACV,eAAe,CAACE,cAAc,CAACE,YAAY;YAC9C,OAAO;QACT;QAEA,OAAOS,aAAO,CAACC,yBAAyB,CAAC;YACvCnB,WAAWL,cAAcK;YACzBS;YACAW,aAAaf,YAAYgB,UAAU;YACnCC,aAAajB,YAAYkB,YAAY;YACrChB;QACF;IACF,GAAG;QACDP;QACA,oBAAoB;QACpBS;QACAJ;QACAE;KACD;IAED,MAAMiB,iBAAiBT,IAAAA,cAAO,EAAC;QAC7B,OAAOG,aAAO,CAACM,cAAc,CAAC;YAC5BX;YACAI;QACF;IACF,GAAG;QAACJ;QAAiBI;KAA6B;IAElD,MAAMQ,mBAAmBV,IAAAA,cAAO,EAAC;QAC/B,OAAOG,aAAO,CAACO,gBAAgB,CAAC;YAC9BC,aAAaf,MAAMgB,WAAW;YAC9BC,iBAAiBC,IAAAA,4CAAyB,EAAC7B;QAC7C;IACF,GAAG;QAACW,MAAMgB;QAASE,IAAAA,4CAAyB,EAAC7B;KAAW;IAExD,OAAO;QACLa,iBAAiBA,gBAAgBiB,eAAe,CAAC/B,IAAIgC,QAAQ;QAC7DP,gBAAgBA,eAAeM,eAAe,CAAC/B,IAAIgC,QAAQ;QAC3DjB,YAAYA,WAAWgB,eAAe,CAAC/B,IAAIgC,QAAQ;QACnDN;QACAO,cAAcH,IAAAA,4CAAyB,EAAC7B;QAExCK;QAEA,UAAU;QACVL,WAAWL,cAAcK;IAC3B;AACF"}
@@ -9,6 +9,10 @@ export interface PositionReturn {
9
9
  }
10
10
  export declare const usePositionStream: (symbol?: string, options?: SWRConfiguration & {
11
11
  calcMode?: PriceMode;
12
+ /**
13
+ * If true, the pending order will be included in the result.
14
+ */
15
+ includedPendingOrder?: boolean;
12
16
  }) => readonly [{
13
17
  readonly rows: API.PositionTPSLExt[] | null;
14
18
  readonly aggregated: any;
@@ -1 +1 @@
1
- {"version":3,"file":"usePositionStream.d.ts","sourceRoot":"","sources":["../../../src/orderly/usePositionStream/usePositionStream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,EACL,KAAK,GAAG,EACR,WAAW,EAIZ,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,OAAO,EAAQ,MAAM,wBAAwB,CAAC;AASvD,KAAK,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,CACL,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,KAC5D,IAAI,CAAC;CACX;AAED,eAAO,MAAM,iBAAiB,YAInB,MAAM,YACL,gBAAgB,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;EAiStD,CAAC;AAEF,eAAO,MAAM,yBAAyB,sBAIpC,CAAC"}
1
+ {"version":3,"file":"usePositionStream.d.ts","sourceRoot":"","sources":["../../../src/orderly/usePositionStream/usePositionStream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,EACL,KAAK,GAAG,EACR,WAAW,EAIZ,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,OAAO,EAAQ,MAAM,wBAAwB,CAAC;AASvD,KAAK,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,CACL,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,KAC5D,IAAI,CAAC;CACX;AAED,eAAO,MAAM,iBAAiB,YAInB,MAAM,YACL,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;;;;;;;;;;;;;;;;;;;;;;;EA+SF,CAAC;AAEF,eAAO,MAAM,yBAAyB,sBAIpC,CAAC"}
@@ -34,6 +34,7 @@ const usePositionStream = (/**
34
34
  * If symbol is passed, only the position of that symbol will be returned.
35
35
  */ symbol, options)=>{
36
36
  const symbolInfo = (0, _useSymbolsInfo.useSymbolsInfo)();
37
+ const { includedPendingOrder = false } = options || {};
37
38
  const { data: accountInfo } = (0, _usePrivateQuery.usePrivateQuery)("/v1/client/info");
38
39
  const { data: holding } = (0, _usePrivateQuery.usePrivateQuery)("/v1/client/holding", {
39
40
  formatter: (data)=>{
@@ -199,7 +200,14 @@ const usePositionStream = (/**
199
200
  if (!formatedPositions) return null;
200
201
  if (!symbolInfo || !accountInfo) return formatedPositions[0];
201
202
  const total = totalCollateral.toNumber();
202
- let rows = formatedPositions[0].filter((item)=>item.position_qty !== 0).map((item)=>{
203
+ let rows = formatedPositions[0];
204
+ if (!includedPendingOrder) {
205
+ rows = rows.filter((item)=>item.position_qty !== 0);
206
+ } else {
207
+ rows = rows.filter((item)=>item.position_qty !== 0 || item.pending_long_qty !== 0 || item.pending_short_qty !== 0);
208
+ }
209
+ // .filter((item) => item.position_qty !== 0)
210
+ rows = rows.map((item)=>{
203
211
  const info = symbolInfo?.[item.symbol];
204
212
  const related_order = Array.isArray(tpslOrders) ? (0, _utils1.findPositionTPSLFromOrders)(tpslOrders, item.symbol) : undefined;
205
213
  const tp_sl_pricer = !!related_order ? (0, _utils1.findTPSLFromOrder)(related_order) : undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/orderly/usePositionStream/usePositionStream.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { usePrivateQuery } from \"../../usePrivateQuery\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { type SWRConfiguration } from \"swr\";\nimport { createGetter } from \"../../utils/createGetter\";\nimport { useFundingRates } from \"../useFundingRates\";\nimport {\n type API,\n OrderEntity,\n AlgoOrderType,\n AlgoOrderRootType,\n OrderStatus,\n} from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"../useSymbolsInfo\";\nimport { useMarkPricesStream } from \"../useMarkPricesStream\";\nimport { pathOr, propOr } from \"ramda\";\nimport { parseHolding } from \"../../utils/parseHolding\";\nimport { Decimal, zero } from \"@orderly.network/utils\";\nimport { useMarketsStream } from \"../useMarketsStream\";\nimport { useOrderStream } from \"../orderlyHooks\";\nimport {\n findPositionTPSLFromOrders,\n findTPSLFromOrder,\n findTPSLFromOrders,\n} from \"./utils\";\n\ntype PriceMode = \"markPrice\" | \"lastPrice\";\n\nexport interface PositionReturn {\n data: any[];\n loading: boolean;\n close: (\n order: Pick<OrderEntity, \"order_type\" | \"order_price\" | \"side\">\n ) => void;\n}\n\nexport const usePositionStream = (\n /**\n * If symbol is passed, only the position of that symbol will be returned.\n */\n symbol?: string,\n options?: SWRConfiguration & { calcMode?: PriceMode }\n) => {\n const symbolInfo = useSymbolsInfo();\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const { data: holding } = usePrivateQuery<API.Holding[]>(\n \"/v1/client/holding\",\n {\n formatter: (data) => {\n return data.holding;\n },\n }\n );\n\n const fundingRates = useFundingRates();\n\n const {\n data,\n error,\n mutate: refreshPositions,\n } = usePrivateQuery<API.PositionInfo>(`/v1/positions`, {\n // revalidateOnFocus: false,\n // revalidateOnReconnect: false,\n // dedupingInterval: 200,\n // keepPreviousData: false,\n // revalidateIfStale: true,\n ...options,\n\n formatter: (data) => data,\n onError: (err) => {},\n });\n\n const { data: markPrices } = useMarkPricesStream();\n\n // get TP/SL orders;\n\n const [tpslOrders] = useOrderStream({\n status: OrderStatus.INCOMPLETE,\n includes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n });\n //\n\n // console.log(\"---------------\");\n\n const [priceMode, setPriceMode] = useState(options?.calcMode || \"markPrice\");\n\n useEffect(() => {\n if (options?.calcMode && priceMode !== options?.calcMode) {\n setPriceMode(options?.calcMode);\n }\n }, [options?.calcMode]);\n\n const { data: tickers } = useMarketsStream();\n\n const tickerPrices = useMemo(() => {\n const data: Record<string, number> = Object.create(null);\n tickers?.forEach((item) => {\n // @ts-ignore\n data[item.symbol] = item[\"24h_close\"];\n });\n return data;\n }, [tickers]);\n\n const formatedPositions = useMemo<[API.PositionExt[], any] | null>(() => {\n if (!data?.rows || symbolInfo.isNil || !accountInfo) return null;\n\n const filteredData =\n typeof symbol === \"undefined\" || symbol === \"\"\n ? data.rows\n : data.rows.filter((item) => {\n return item.symbol === symbol;\n });\n\n let unrealPnL_total = zero,\n notional_total = zero,\n unsettlementPnL_total = zero;\n\n const formatted = filteredData.map((item: API.Position) => {\n // const price = (markPrices as any)[item.symbol] ?? item.mark_price;\n const unRealizedPrice = propOr(\n item.mark_price,\n item.symbol,\n priceMode === \"markPrice\" ? markPrices : tickerPrices\n ) as unknown as number;\n\n const price = propOr(\n item.mark_price,\n item.symbol,\n markPrices\n ) as unknown as number;\n\n const info = symbolInfo[item.symbol];\n //\n\n const notional = positions.notional(item.position_qty, price);\n\n const unrealPnl = positions.unrealizedPnL({\n qty: item.position_qty,\n openPrice: item?.average_open_price,\n markPrice: unRealizedPrice,\n });\n\n const imr = account.IMR({\n maxLeverage: accountInfo.max_leverage,\n baseIMR: info(\"base_imr\"),\n IMR_Factor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: notional,\n ordersNotional: 0,\n IMR_factor_power: 4 / 5,\n });\n\n const unrealPnlROI = positions.unrealizedPnLROI({\n positionQty: item.position_qty,\n openPrice: item.average_open_price,\n IMR: imr,\n unrealizedPnL: unrealPnl,\n });\n\n const unsettlementPnL = positions.unsettlementPnL({\n positionQty: item.position_qty,\n markPrice: price,\n costPosition: item.cost_position,\n sumUnitaryFunding: fundingRates[item.symbol]?.(\n \"sum_unitary_funding\",\n 0\n ),\n lastSumUnitaryFunding: item.last_sum_unitary_funding,\n });\n\n unrealPnL_total = unrealPnL_total.add(unrealPnl);\n notional_total = notional_total.add(notional);\n unsettlementPnL_total = unsettlementPnL_total.add(unsettlementPnL);\n\n return {\n ...item,\n mark_price: price,\n mm: 0,\n notional,\n unsettlement_pnl: unsettlementPnL,\n unrealized_pnl: unrealPnl,\n unrealized_pnl_ROI: unrealPnlROI,\n };\n });\n\n return [\n formatted,\n {\n unrealPnL: unrealPnL_total.toNumber(),\n notional: notional_total.toNumber(),\n unsettledPnL: unsettlementPnL_total.toNumber(),\n },\n ];\n }, [\n data?.rows,\n symbolInfo,\n accountInfo,\n markPrices,\n priceMode,\n tickerPrices,\n symbol,\n holding,\n ]);\n\n // const showSymbol = useCallback((symbol: string) => {\n // setVisibleSymbol(symbol);\n // }, []);\n\n const [totalCollateral, totalValue, totalUnrealizedROI] = useMemo<\n [Decimal, Decimal, number]\n >(() => {\n if (!holding || !markPrices) {\n return [zero, zero, 0];\n }\n const unsettlemnedPnL = pathOr(0, [1, \"unsettledPnL\"])(formatedPositions);\n const unrealizedPnL = pathOr(0, [1, \"unrealPnL\"])(formatedPositions);\n\n const [USDC_holding, nonUSDC] = parseHolding(holding, markPrices);\n\n const totalCollateral = account.totalCollateral({\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n unsettlementPnL: unsettlemnedPnL,\n });\n\n const totalValue = account.totalValue({\n totalUnsettlementPnL: unsettlemnedPnL,\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n });\n\n const totalUnrealizedROI = account.totalUnrealizedROI({\n totalUnrealizedPnL: unrealizedPnL,\n totalValue: totalValue.toNumber(),\n });\n\n return [totalCollateral, totalValue, totalUnrealizedROI];\n }, [holding, formatedPositions, markPrices]);\n\n const positionsRows = useMemo<API.PositionTPSLExt[] | null>(() => {\n if (!formatedPositions) return null;\n\n if (!symbolInfo || !accountInfo) return formatedPositions[0];\n\n const total = totalCollateral.toNumber();\n\n let rows = formatedPositions[0]\n .filter((item) => item.position_qty !== 0)\n .map((item) => {\n const info = symbolInfo?.[item.symbol];\n\n const related_order = Array.isArray(tpslOrders)\n ? findPositionTPSLFromOrders(tpslOrders, item.symbol)\n : undefined;\n\n const tp_sl_pricer = !!related_order\n ? findTPSLFromOrder(related_order)\n : undefined;\n\n const MMR = positions.MMR({\n baseMMR: info(\"base_mmr\"),\n baseIMR: info(\"base_imr\"),\n IMRFactor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: item.notional,\n IMR_factor_power: 4 / 5,\n });\n\n return {\n ...item,\n mm: positions.maintenanceMargin({\n positionQty: item.position_qty,\n markPrice: item.mark_price,\n MMR,\n }),\n tp_trigger_price: tp_sl_pricer?.tp_trigger_price,\n sl_trigger_price: tp_sl_pricer?.sl_trigger_price,\n\n mmr: MMR,\n\n // has_position_tp_sl:\n // !tp_sl_pricer?.sl_trigger_price && !tp_sl_pricer?.tp_trigger_price,\n algo_order: related_order,\n };\n });\n\n // calculate est_liq_price\n rows = rows.map((item) => {\n const est_liq_price = positions.liqPrice({\n markPrice: item.mark_price,\n totalCollateral: total,\n positionQty: item.position_qty,\n positions: rows,\n MMR: item.mmr,\n });\n return {\n ...item,\n est_liq_price,\n };\n });\n\n return rows;\n }, [formatedPositions, symbolInfo, accountInfo, totalCollateral, tpslOrders]);\n\n const positionInfoGetter = createGetter<\n Omit<API.PositionInfo, \"rows\">,\n keyof Omit<API.PositionInfo, \"rows\">\n >(data as any, 1);\n\n return [\n {\n rows: positionsRows,\n aggregated: {\n ...(formatedPositions?.[1] ?? {}),\n unrealPnlROI: totalUnrealizedROI,\n },\n totalCollateral,\n totalValue,\n totalUnrealizedROI,\n },\n positionInfoGetter,\n {\n // close: onClosePosition,\n loading: false,\n // showSymbol,\n error,\n // loadMore: () => {},\n refresh: refreshPositions,\n },\n ] as const;\n};\n\nexport const pathOr_unsettledPnLPathOr = pathOr(0, [\n 0,\n \"aggregated\",\n \"unsettledPnL\",\n]);\n"],"names":["pathOr_unsettledPnLPathOr","usePositionStream","symbol","options","symbolInfo","useSymbolsInfo","data","accountInfo","usePrivateQuery","holding","formatter","fundingRates","useFundingRates","error","mutate","refreshPositions","onError","err","markPrices","useMarkPricesStream","tpslOrders","useOrderStream","status","OrderStatus","INCOMPLETE","includes","AlgoOrderRootType","POSITIONAL_TP_SL","TP_SL","priceMode","setPriceMode","useState","calcMode","useEffect","tickers","useMarketsStream","tickerPrices","useMemo","Object","create","forEach","item","formatedPositions","rows","isNil","filteredData","filter","unrealPnL_total","zero","notional_total","unsettlementPnL_total","formatted","map","unRealizedPrice","propOr","mark_price","price","info","notional","positions","position_qty","unrealPnl","unrealizedPnL","qty","openPrice","average_open_price","markPrice","imr","account","IMR","maxLeverage","max_leverage","baseIMR","IMR_Factor","imr_factor","positionNotional","ordersNotional","IMR_factor_power","unrealPnlROI","unrealizedPnLROI","positionQty","unsettlementPnL","costPosition","cost_position","sumUnitaryFunding","lastSumUnitaryFunding","last_sum_unitary_funding","add","mm","unsettlement_pnl","unrealized_pnl","unrealized_pnl_ROI","unrealPnL","toNumber","unsettledPnL","totalCollateral","totalValue","totalUnrealizedROI","unsettlemnedPnL","pathOr","USDC_holding","nonUSDC","parseHolding","USDCHolding","nonUSDCHolding","totalUnsettlementPnL","totalUnrealizedPnL","positionsRows","total","related_order","Array","isArray","findPositionTPSLFromOrders","undefined","tp_sl_pricer","findTPSLFromOrder","MMR","baseMMR","IMRFactor","maintenanceMargin","tp_trigger_price","sl_trigger_price","mmr","algo_order","est_liq_price","liqPrice","positionInfoGetter","createGetter","aggregated","loading","refresh"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/orderly/usePositionStream/usePositionStream.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { usePrivateQuery } from \"../../usePrivateQuery\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { type SWRConfiguration } from \"swr\";\nimport { createGetter } from \"../../utils/createGetter\";\nimport { useFundingRates } from \"../useFundingRates\";\nimport {\n type API,\n OrderEntity,\n AlgoOrderType,\n AlgoOrderRootType,\n OrderStatus,\n} from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"../useSymbolsInfo\";\nimport { useMarkPricesStream } from \"../useMarkPricesStream\";\nimport { pathOr, propOr } from \"ramda\";\nimport { parseHolding } from \"../../utils/parseHolding\";\nimport { Decimal, zero } from \"@orderly.network/utils\";\nimport { useMarketsStream } from \"../useMarketsStream\";\nimport { useOrderStream } from \"../orderlyHooks\";\nimport {\n findPositionTPSLFromOrders,\n findTPSLFromOrder,\n findTPSLFromOrders,\n} from \"./utils\";\n\ntype PriceMode = \"markPrice\" | \"lastPrice\";\n\nexport interface PositionReturn {\n data: any[];\n loading: boolean;\n close: (\n order: Pick<OrderEntity, \"order_type\" | \"order_price\" | \"side\">\n ) => void;\n}\n\nexport const usePositionStream = (\n /**\n * If symbol is passed, only the position of that symbol will be returned.\n */\n symbol?: string,\n options?: SWRConfiguration & {\n calcMode?: PriceMode;\n /**\n * If true, the pending order will be included in the result.\n */\n includedPendingOrder?: boolean;\n }\n) => {\n const symbolInfo = useSymbolsInfo();\n\n const { includedPendingOrder = false } = options || {};\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const { data: holding } = usePrivateQuery<API.Holding[]>(\n \"/v1/client/holding\",\n {\n formatter: (data) => {\n return data.holding;\n },\n }\n );\n\n const fundingRates = useFundingRates();\n\n const {\n data,\n error,\n mutate: refreshPositions,\n } = usePrivateQuery<API.PositionInfo>(`/v1/positions`, {\n // revalidateOnFocus: false,\n // revalidateOnReconnect: false,\n // dedupingInterval: 200,\n // keepPreviousData: false,\n // revalidateIfStale: true,\n ...options,\n\n formatter: (data) => data,\n onError: (err) => {},\n });\n\n const { data: markPrices } = useMarkPricesStream();\n\n // get TP/SL orders;\n\n const [tpslOrders] = useOrderStream({\n status: OrderStatus.INCOMPLETE,\n includes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n });\n //\n\n // console.log(\"---------------\");\n\n const [priceMode, setPriceMode] = useState(options?.calcMode || \"markPrice\");\n\n useEffect(() => {\n if (options?.calcMode && priceMode !== options?.calcMode) {\n setPriceMode(options?.calcMode);\n }\n }, [options?.calcMode]);\n\n const { data: tickers } = useMarketsStream();\n\n const tickerPrices = useMemo(() => {\n const data: Record<string, number> = Object.create(null);\n tickers?.forEach((item) => {\n // @ts-ignore\n data[item.symbol] = item[\"24h_close\"];\n });\n return data;\n }, [tickers]);\n\n const formatedPositions = useMemo<[API.PositionExt[], any] | null>(() => {\n if (!data?.rows || symbolInfo.isNil || !accountInfo) return null;\n\n const filteredData =\n typeof symbol === \"undefined\" || symbol === \"\"\n ? data.rows\n : data.rows.filter((item) => {\n return item.symbol === symbol;\n });\n\n let unrealPnL_total = zero,\n notional_total = zero,\n unsettlementPnL_total = zero;\n\n const formatted = filteredData.map((item: API.Position) => {\n // const price = (markPrices as any)[item.symbol] ?? item.mark_price;\n const unRealizedPrice = propOr(\n item.mark_price,\n item.symbol,\n priceMode === \"markPrice\" ? markPrices : tickerPrices\n ) as unknown as number;\n\n const price = propOr(\n item.mark_price,\n item.symbol,\n markPrices\n ) as unknown as number;\n\n const info = symbolInfo[item.symbol];\n //\n\n const notional = positions.notional(item.position_qty, price);\n\n const unrealPnl = positions.unrealizedPnL({\n qty: item.position_qty,\n openPrice: item?.average_open_price,\n markPrice: unRealizedPrice,\n });\n\n const imr = account.IMR({\n maxLeverage: accountInfo.max_leverage,\n baseIMR: info(\"base_imr\"),\n IMR_Factor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: notional,\n ordersNotional: 0,\n IMR_factor_power: 4 / 5,\n });\n\n const unrealPnlROI = positions.unrealizedPnLROI({\n positionQty: item.position_qty,\n openPrice: item.average_open_price,\n IMR: imr,\n unrealizedPnL: unrealPnl,\n });\n\n const unsettlementPnL = positions.unsettlementPnL({\n positionQty: item.position_qty,\n markPrice: price,\n costPosition: item.cost_position,\n sumUnitaryFunding: fundingRates[item.symbol]?.(\n \"sum_unitary_funding\",\n 0\n ),\n lastSumUnitaryFunding: item.last_sum_unitary_funding,\n });\n\n unrealPnL_total = unrealPnL_total.add(unrealPnl);\n notional_total = notional_total.add(notional);\n unsettlementPnL_total = unsettlementPnL_total.add(unsettlementPnL);\n\n return {\n ...item,\n mark_price: price,\n mm: 0,\n notional,\n unsettlement_pnl: unsettlementPnL,\n unrealized_pnl: unrealPnl,\n unrealized_pnl_ROI: unrealPnlROI,\n };\n });\n\n return [\n formatted,\n {\n unrealPnL: unrealPnL_total.toNumber(),\n notional: notional_total.toNumber(),\n unsettledPnL: unsettlementPnL_total.toNumber(),\n },\n ];\n }, [\n data?.rows,\n symbolInfo,\n accountInfo,\n markPrices,\n priceMode,\n tickerPrices,\n symbol,\n holding,\n ]);\n\n // const showSymbol = useCallback((symbol: string) => {\n // setVisibleSymbol(symbol);\n // }, []);\n\n const [totalCollateral, totalValue, totalUnrealizedROI] = useMemo<\n [Decimal, Decimal, number]\n >(() => {\n if (!holding || !markPrices) {\n return [zero, zero, 0];\n }\n const unsettlemnedPnL = pathOr(0, [1, \"unsettledPnL\"])(formatedPositions);\n const unrealizedPnL = pathOr(0, [1, \"unrealPnL\"])(formatedPositions);\n\n const [USDC_holding, nonUSDC] = parseHolding(holding, markPrices);\n\n const totalCollateral = account.totalCollateral({\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n unsettlementPnL: unsettlemnedPnL,\n });\n\n const totalValue = account.totalValue({\n totalUnsettlementPnL: unsettlemnedPnL,\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n });\n\n const totalUnrealizedROI = account.totalUnrealizedROI({\n totalUnrealizedPnL: unrealizedPnL,\n totalValue: totalValue.toNumber(),\n });\n\n return [totalCollateral, totalValue, totalUnrealizedROI];\n }, [holding, formatedPositions, markPrices]);\n\n const positionsRows = useMemo<API.PositionTPSLExt[] | null>(() => {\n if (!formatedPositions) return null;\n\n if (!symbolInfo || !accountInfo) return formatedPositions[0];\n\n const total = totalCollateral.toNumber();\n\n let rows = formatedPositions[0];\n\n if (!includedPendingOrder) {\n rows = rows.filter((item) => item.position_qty !== 0);\n } else {\n rows = rows.filter(\n (item) =>\n item.position_qty !== 0 ||\n item.pending_long_qty !== 0 ||\n item.pending_short_qty !== 0\n );\n }\n // .filter((item) => item.position_qty !== 0)\n rows = rows.map((item) => {\n const info = symbolInfo?.[item.symbol];\n\n const related_order = Array.isArray(tpslOrders)\n ? findPositionTPSLFromOrders(tpslOrders, item.symbol)\n : undefined;\n\n const tp_sl_pricer = !!related_order\n ? findTPSLFromOrder(related_order)\n : undefined;\n\n const MMR = positions.MMR({\n baseMMR: info(\"base_mmr\"),\n baseIMR: info(\"base_imr\"),\n IMRFactor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: item.notional,\n IMR_factor_power: 4 / 5,\n });\n\n return {\n ...item,\n mm: positions.maintenanceMargin({\n positionQty: item.position_qty,\n markPrice: item.mark_price,\n MMR,\n }),\n tp_trigger_price: tp_sl_pricer?.tp_trigger_price,\n sl_trigger_price: tp_sl_pricer?.sl_trigger_price,\n\n mmr: MMR,\n\n // has_position_tp_sl:\n // !tp_sl_pricer?.sl_trigger_price && !tp_sl_pricer?.tp_trigger_price,\n algo_order: related_order,\n };\n });\n\n // calculate est_liq_price\n rows = rows.map((item) => {\n const est_liq_price = positions.liqPrice({\n markPrice: item.mark_price,\n totalCollateral: total,\n positionQty: item.position_qty,\n positions: rows,\n MMR: item.mmr,\n });\n return {\n ...item,\n est_liq_price,\n };\n });\n\n return rows;\n }, [formatedPositions, symbolInfo, accountInfo, totalCollateral, tpslOrders]);\n\n const positionInfoGetter = createGetter<\n Omit<API.PositionInfo, \"rows\">,\n keyof Omit<API.PositionInfo, \"rows\">\n >(data as any, 1);\n\n return [\n {\n rows: positionsRows,\n aggregated: {\n ...(formatedPositions?.[1] ?? {}),\n unrealPnlROI: totalUnrealizedROI,\n },\n totalCollateral,\n totalValue,\n totalUnrealizedROI,\n },\n positionInfoGetter,\n {\n // close: onClosePosition,\n loading: false,\n // showSymbol,\n error,\n // loadMore: () => {},\n refresh: refreshPositions,\n },\n ] as const;\n};\n\nexport const pathOr_unsettledPnLPathOr = pathOr(0, [\n 0,\n \"aggregated\",\n \"unsettledPnL\",\n]);\n"],"names":["pathOr_unsettledPnLPathOr","usePositionStream","symbol","options","symbolInfo","useSymbolsInfo","includedPendingOrder","data","accountInfo","usePrivateQuery","holding","formatter","fundingRates","useFundingRates","error","mutate","refreshPositions","onError","err","markPrices","useMarkPricesStream","tpslOrders","useOrderStream","status","OrderStatus","INCOMPLETE","includes","AlgoOrderRootType","POSITIONAL_TP_SL","TP_SL","priceMode","setPriceMode","useState","calcMode","useEffect","tickers","useMarketsStream","tickerPrices","useMemo","Object","create","forEach","item","formatedPositions","rows","isNil","filteredData","filter","unrealPnL_total","zero","notional_total","unsettlementPnL_total","formatted","map","unRealizedPrice","propOr","mark_price","price","info","notional","positions","position_qty","unrealPnl","unrealizedPnL","qty","openPrice","average_open_price","markPrice","imr","account","IMR","maxLeverage","max_leverage","baseIMR","IMR_Factor","imr_factor","positionNotional","ordersNotional","IMR_factor_power","unrealPnlROI","unrealizedPnLROI","positionQty","unsettlementPnL","costPosition","cost_position","sumUnitaryFunding","lastSumUnitaryFunding","last_sum_unitary_funding","add","mm","unsettlement_pnl","unrealized_pnl","unrealized_pnl_ROI","unrealPnL","toNumber","unsettledPnL","totalCollateral","totalValue","totalUnrealizedROI","unsettlemnedPnL","pathOr","USDC_holding","nonUSDC","parseHolding","USDCHolding","nonUSDCHolding","totalUnsettlementPnL","totalUnrealizedPnL","positionsRows","total","pending_long_qty","pending_short_qty","related_order","Array","isArray","findPositionTPSLFromOrders","undefined","tp_sl_pricer","findTPSLFromOrder","MMR","baseMMR","IMRFactor","maintenanceMargin","tp_trigger_price","sl_trigger_price","mmr","algo_order","est_liq_price","liqPrice","positionInfoGetter","createGetter","aggregated","loading","refresh"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePrivateDataObserver.d.ts","sourceRoot":"","sources":["../../src/orderly/usePrivateDataObserver.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMjD,eAAO,MAAM,sBAAsB;uBAEd,MAAM,KAAK,IAAI,MAAM,EAAE,cAAc,CAAC;UAgK1D,CAAC"}
1
+ {"version":3,"file":"usePrivateDataObserver.d.ts","sourceRoot":"","sources":["../../src/orderly/usePrivateDataObserver.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOjD,eAAO,MAAM,sBAAsB;uBAEd,MAAM,KAAK,IAAI,MAAM,EAAE,cAAc,CAAC;UAoK1D,CAAC"}
@@ -17,6 +17,7 @@ const _useEventEmitter = require("../useEventEmitter");
17
17
  const _swr1 = require("../utils/swr");
18
18
  const _algoOrderMergeHandler = require("../services/orderMerge/algoOrderMergeHandler");
19
19
  const _ws = require("../utils/ws");
20
+ const _useLocalStorage = require("../useLocalStorage");
20
21
  const usePrivateDataObserver = (options)=>{
21
22
  const ws = (0, _useWS.useWS)();
22
23
  // const { mutate } = useSWRConfig();
@@ -24,6 +25,7 @@ const usePrivateDataObserver = (options)=>{
24
25
  const { state } = (0, _useAccount.useAccount)();
25
26
  // TODO: remove this when the WS service provides the correct data
26
27
  // const algoOrderCacheQuneue = useRef<API.AlgoOrder[]>([]);
28
+ const [subOrder, setSubOrder] = (0, _useLocalStorage.useLocalStorage)("orderly_subscribe_order", true);
27
29
  const updateOrders = (data, isAlgoOrder)=>{
28
30
  const keysMap = options.getKeysMap("orders");
29
31
  keysMap.forEach((getKey, key)=>{
@@ -58,6 +60,7 @@ const usePrivateDataObserver = (options)=>{
58
60
  // orders
59
61
  (0, _react.useEffect)(()=>{
60
62
  if (!state.accountId) return;
63
+ if (subOrder !== true) return;
61
64
  const unsubscribe = ws.privateSubscribe("executionreport", {
62
65
  onMessage: (data)=>{
63
66
  updateOrders(data, false);
@@ -65,11 +68,13 @@ const usePrivateDataObserver = (options)=>{
65
68
  });
66
69
  return ()=>unsubscribe?.();
67
70
  }, [
68
- state.accountId
71
+ state.accountId,
72
+ subOrder
69
73
  ]);
70
74
  // algo orders
71
75
  (0, _react.useEffect)(()=>{
72
76
  if (!state.accountId) return;
77
+ if (subOrder !== true) return;
73
78
  const unsubscribe = ws.privateSubscribe("algoexecutionreport", {
74
79
  onMessage: (data)=>{
75
80
  updateOrders(data, true);
@@ -77,7 +82,8 @@ const usePrivateDataObserver = (options)=>{
77
82
  });
78
83
  return ()=>unsubscribe?.();
79
84
  }, [
80
- state.accountId
85
+ state.accountId,
86
+ subOrder
81
87
  ]);
82
88
  // positions
83
89
  (0, _react.useEffect)(()=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/usePrivateDataObserver.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useWS } from \"../useWS\";\nimport { mutate } from \"swr\";\nimport { WSMessage, API } from \"@orderly.network/types\";\nimport { useAccount } from \"../useAccount\";\nimport { unstable_serialize } from \"swr/infinite\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { useEventEmitter } from \"../useEventEmitter\";\nimport { getKeyFunction } from \"../dataProvider\";\nimport { parseJSON } from \"../utils/json\";\nimport { updateOrdersHandler, updateAlgoOrdersHandler } from \"../utils/swr\";\nimport { AlgoOrderMergeHandler } from \"../services/orderMerge/algoOrderMergeHandler\";\nimport { object2underscore } from \"../utils/ws\";\n\nexport const usePrivateDataObserver = (options: {\n // onUpdateOrders: (data: any) => void;\n getKeysMap: (type: string) => Map<string, getKeyFunction>;\n}) => {\n const ws = useWS();\n // const { mutate } = useSWRConfig();\n const ee = useEventEmitter();\n const { state } = useAccount();\n\n // TODO: remove this when the WS service provides the correct data\n // const algoOrderCacheQuneue = useRef<API.AlgoOrder[]>([]);\n\n const updateOrders = (\n data: WSMessage.AlgoOrder[] | WSMessage.Order,\n isAlgoOrder: boolean\n ) => {\n const keysMap = options.getKeysMap(\"orders\");\n\n keysMap.forEach((getKey, key) => {\n mutate(\n unstable_serialize((index, prevData) => [\n getKey(index, prevData),\n state.accountId,\n ]),\n (prevData?: any[]) => {\n try {\n if (isAlgoOrder) {\n const result = updateAlgoOrdersHandler(\n key,\n data as WSMessage.AlgoOrder[],\n prevData!\n );\n\n return result;\n }\n return updateOrdersHandler(key, data as WSMessage.Order, prevData);\n } catch (error) {\n return prevData;\n }\n },\n {\n revalidate: false,\n }\n );\n });\n\n // emit events;\n // ee.emit(\"orders:changed\", {\n // ...data,\n // status: data.status || (data as WSMessage.AlgoOrder).algoStatus,\n // });\n\n const formattedData = isAlgoOrder\n ? AlgoOrderMergeHandler.groupOrders(data as WSMessage.AlgoOrder[])\n : object2underscore(data);\n\n ee.emit(\"orders:changed\", {\n ...formattedData,\n status: isAlgoOrder\n ? formattedData.algo_status\n : (data as WSMessage.Order).status,\n });\n };\n\n // orders\n useEffect(() => {\n if (!state.accountId) return;\n const unsubscribe = ws.privateSubscribe(\"executionreport\", {\n onMessage: (data: any) => {\n updateOrders(data, false);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId]);\n\n // algo orders\n useEffect(() => {\n if (!state.accountId) return;\n const unsubscribe = ws.privateSubscribe(\"algoexecutionreport\", {\n onMessage: (data: any) => {\n updateOrders(data, true);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId]);\n\n // positions\n useEffect(() => {\n if (!state.accountId) return;\n const key = [\"/v1/positions\", state.accountId];\n const unsubscribe = ws.privateSubscribe(\"position\", {\n onMessage: (data: { positions: WSMessage.Position[] }) => {\n const { positions: nextPostions } = data;\n\n // console.log(\"ws----- positions data-----\", data);\n\n // updatePositions();\n\n mutate(\n key,\n (prevPositions: any) => {\n // return nextPostions;\n if (!!prevPositions) {\n return {\n ...prevPositions,\n rows: prevPositions.rows.map((row: any) => {\n const item = nextPostions.find(\n (item) => item.symbol === row.symbol\n );\n if (item) {\n return {\n symbol: item.symbol,\n position_qty: item.positionQty,\n cost_position: item.costPosition,\n last_sum_unitary_funding: item.lastSumUnitaryFunding,\n pending_long_qty: item.pendingLongQty,\n pending_short_qty: item.pendingShortQty,\n settle_price: item.settlePrice,\n average_open_price: item.averageOpenPrice,\n unsettled_pnl: item.unsettledPnl,\n mark_price: item.markPrice,\n est_liq_price: item.estLiqPrice,\n timestamp: Date.now(),\n imr: item.imr,\n mmr: item.mmr,\n IMR_withdraw_orders: item.imrwithOrders,\n MMR_with_orders: item.mmrwithOrders,\n pnl_24_h: item.pnl24H,\n fee_24_h: item.fee24H,\n };\n }\n\n return row;\n }),\n };\n }\n },\n {\n revalidate: false,\n }\n );\n },\n });\n return () => {\n unsubscribe?.();\n };\n }, [state.accountId]);\n\n // cache algo orders\n // useEffect(() => {\n // const handler = (data: API.AlgoOrder) => {\n // algoOrderCacheQuneue.current.push(data);\n // };\n\n // ee.on(\"algoOrder:cache\", handler);\n\n // return () => {\n // ee.off(\"algoOrder:cache\", handler);\n // };\n // }, []);\n};\n"],"names":["usePrivateDataObserver","options","ws","useWS","ee","useEventEmitter","state","useAccount","updateOrders","data","isAlgoOrder","keysMap","getKeysMap","forEach","getKey","key","mutate","unstable_serialize","index","prevData","accountId","result","updateAlgoOrdersHandler","updateOrdersHandler","error","revalidate","formattedData","AlgoOrderMergeHandler","groupOrders","object2underscore","emit","status","algo_status","useEffect","unsubscribe","privateSubscribe","onMessage","positions","nextPostions","prevPositions","rows","map","row","item","find","symbol","position_qty","positionQty","cost_position","costPosition","last_sum_unitary_funding","lastSumUnitaryFunding","pending_long_qty","pendingLongQty","pending_short_qty","pendingShortQty","settle_price","settlePrice","average_open_price","averageOpenPrice","unsettled_pnl","unsettledPnl","mark_price","markPrice","est_liq_price","estLiqPrice","timestamp","Date","now","imr","mmr","IMR_withdraw_orders","imrwithOrders","MMR_with_orders","mmrwithOrders","pnl_24_h","pnl24H","fee_24_h","fee24H"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/orderly/usePrivateDataObserver.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useWS } from \"../useWS\";\nimport { mutate } from \"swr\";\nimport { WSMessage, API } from \"@orderly.network/types\";\nimport { useAccount } from \"../useAccount\";\nimport { unstable_serialize } from \"swr/infinite\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { useEventEmitter } from \"../useEventEmitter\";\nimport { getKeyFunction } from \"../dataProvider\";\nimport { parseJSON } from \"../utils/json\";\nimport { updateOrdersHandler, updateAlgoOrdersHandler } from \"../utils/swr\";\nimport { AlgoOrderMergeHandler } from \"../services/orderMerge/algoOrderMergeHandler\";\nimport { object2underscore } from \"../utils/ws\";\nimport { useLocalStorage } from \"../useLocalStorage\";\n\nexport const usePrivateDataObserver = (options: {\n // onUpdateOrders: (data: any) => void;\n getKeysMap: (type: string) => Map<string, getKeyFunction>;\n}) => {\n const ws = useWS();\n // const { mutate } = useSWRConfig();\n const ee = useEventEmitter();\n const { state } = useAccount();\n\n // TODO: remove this when the WS service provides the correct data\n // const algoOrderCacheQuneue = useRef<API.AlgoOrder[]>([]);\n\n const [subOrder, setSubOrder] = useLocalStorage(\"orderly_subscribe_order\", true);\n\n const updateOrders = (\n data: WSMessage.AlgoOrder[] | WSMessage.Order,\n isAlgoOrder: boolean\n ) => {\n const keysMap = options.getKeysMap(\"orders\");\n\n keysMap.forEach((getKey, key) => {\n mutate(\n unstable_serialize((index, prevData) => [\n getKey(index, prevData),\n state.accountId,\n ]),\n (prevData?: any[]) => {\n try {\n if (isAlgoOrder) {\n const result = updateAlgoOrdersHandler(\n key,\n data as WSMessage.AlgoOrder[],\n prevData!\n );\n\n return result;\n }\n return updateOrdersHandler(key, data as WSMessage.Order, prevData);\n } catch (error) {\n return prevData;\n }\n },\n {\n revalidate: false,\n }\n );\n });\n\n // emit events;\n // ee.emit(\"orders:changed\", {\n // ...data,\n // status: data.status || (data as WSMessage.AlgoOrder).algoStatus,\n // });\n\n const formattedData = isAlgoOrder\n ? AlgoOrderMergeHandler.groupOrders(data as WSMessage.AlgoOrder[])\n : object2underscore(data);\n\n ee.emit(\"orders:changed\", {\n ...formattedData,\n status: isAlgoOrder\n ? formattedData.algo_status\n : (data as WSMessage.Order).status,\n });\n };\n\n // orders\n useEffect(() => {\n if (!state.accountId) return;\n if (subOrder !== true) return;\n const unsubscribe = ws.privateSubscribe(\"executionreport\", {\n onMessage: (data: any) => {\n updateOrders(data, false);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId, subOrder]);\n\n // algo orders\n useEffect(() => {\n if (!state.accountId) return;\n if (subOrder !== true) return;\n const unsubscribe = ws.privateSubscribe(\"algoexecutionreport\", {\n onMessage: (data: any) => {\n updateOrders(data, true);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId, subOrder]);\n\n // positions\n useEffect(() => {\n if (!state.accountId) return;\n const key = [\"/v1/positions\", state.accountId];\n const unsubscribe = ws.privateSubscribe(\"position\", {\n onMessage: (data: { positions: WSMessage.Position[] }) => {\n const { positions: nextPostions } = data;\n\n // console.log(\"ws----- positions data-----\", data);\n\n // updatePositions();\n\n mutate(\n key,\n (prevPositions: any) => {\n // return nextPostions;\n if (!!prevPositions) {\n return {\n ...prevPositions,\n rows: prevPositions.rows.map((row: any) => {\n const item = nextPostions.find(\n (item) => item.symbol === row.symbol\n );\n if (item) {\n return {\n symbol: item.symbol,\n position_qty: item.positionQty,\n cost_position: item.costPosition,\n last_sum_unitary_funding: item.lastSumUnitaryFunding,\n pending_long_qty: item.pendingLongQty,\n pending_short_qty: item.pendingShortQty,\n settle_price: item.settlePrice,\n average_open_price: item.averageOpenPrice,\n unsettled_pnl: item.unsettledPnl,\n mark_price: item.markPrice,\n est_liq_price: item.estLiqPrice,\n timestamp: Date.now(),\n imr: item.imr,\n mmr: item.mmr,\n IMR_withdraw_orders: item.imrwithOrders,\n MMR_with_orders: item.mmrwithOrders,\n pnl_24_h: item.pnl24H,\n fee_24_h: item.fee24H,\n };\n }\n\n return row;\n }),\n };\n }\n },\n {\n revalidate: false,\n }\n );\n },\n });\n return () => {\n unsubscribe?.();\n };\n }, [state.accountId]);\n\n // cache algo orders\n // useEffect(() => {\n // const handler = (data: API.AlgoOrder) => {\n // algoOrderCacheQuneue.current.push(data);\n // };\n\n // ee.on(\"algoOrder:cache\", handler);\n\n // return () => {\n // ee.off(\"algoOrder:cache\", handler);\n // };\n // }, []);\n};\n"],"names":["usePrivateDataObserver","options","ws","useWS","ee","useEventEmitter","state","useAccount","subOrder","setSubOrder","useLocalStorage","updateOrders","data","isAlgoOrder","keysMap","getKeysMap","forEach","getKey","key","mutate","unstable_serialize","index","prevData","accountId","result","updateAlgoOrdersHandler","updateOrdersHandler","error","revalidate","formattedData","AlgoOrderMergeHandler","groupOrders","object2underscore","emit","status","algo_status","useEffect","unsubscribe","privateSubscribe","onMessage","positions","nextPostions","prevPositions","rows","map","row","item","find","symbol","position_qty","positionQty","cost_position","costPosition","last_sum_unitary_funding","lastSumUnitaryFunding","pending_long_qty","pendingLongQty","pending_short_qty","pendingShortQty","settle_price","settlePrice","average_open_price","averageOpenPrice","unsettled_pnl","unsettledPnl","mark_price","markPrice","est_liq_price","estLiqPrice","timestamp","Date","now","imr","mmr","IMR_withdraw_orders","imrwithOrders","MMR_with_orders","mmrwithOrders","pnl_24_h","pnl24H","fee_24_h","fee24H"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAeaA;;;eAAAA;;;uBAfqB;uBACZ;qBACC;4BAEI;0BACQ;iCAEH;sBAG6B;uCACvB;oBACJ;iCACF;AAEzB,MAAMA,yBAAyB,CAACC;IAIrC,MAAMC,KAAKC,IAAAA,YAAK;IAChB,qCAAqC;IACrC,MAAMC,KAAKC,IAAAA,gCAAe;IAC1B,MAAM,EAAEC,KAAK,EAAE,GAAGC,IAAAA,sBAAU;IAE5B,kEAAkE;IAClE,4DAA4D;IAE5D,MAAM,CAACC,UAAUC,YAAY,GAAGC,IAAAA,gCAAe,EAAC,2BAA2B;IAE3E,MAAMC,eAAe,CACnBC,MACAC;QAEA,MAAMC,UAAUb,QAAQc,UAAU,CAAC;QAEnCD,QAAQE,OAAO,CAAC,CAACC,QAAQC;YACvBC,IAAAA,WAAM,EACJC,IAAAA,4BAAkB,EAAC,CAACC,OAAOC,WAAa;oBACtCL,OAAOI,OAAOC;oBACdhB,MAAMiB,SAAS;iBAChB,GACD,CAACD;gBACC,IAAI;oBACF,IAAIT,aAAa;wBACf,MAAMW,SAASC,IAAAA,6BAAuB,EACpCP,KACAN,MACAU;wBAGF,OAAOE;oBACT;oBACA,OAAOE,IAAAA,yBAAmB,EAACR,KAAKN,MAAyBU;gBAC3D,EAAE,OAAOK,OAAO;oBACd,OAAOL;gBACT;YACF,GACA;gBACEM,YAAY;YACd;QAEJ;QAEA,gBAAgB;QAChB,8BAA8B;QAC9B,aAAa;QACb,qEAAqE;QACrE,MAAM;QAEN,MAAMC,gBAAgBhB,cAClBiB,4CAAqB,CAACC,WAAW,CAACnB,QAClCoB,IAAAA,qBAAiB,EAACpB;QAEtBR,GAAG6B,IAAI,CAAC,kBAAkB;YACxB,GAAGJ,aAAa;YAChBK,QAAQrB,cACJgB,cAAcM,WAAW,GACzB,AAACvB,KAAyBsB,MAAM;QACtC;IACF;IAEA,SAAS;IACTE,IAAAA,gBAAS,EAAC;QACR,IAAI,CAAC9B,MAAMiB,SAAS,EAAE;QACtB,IAAIf,aAAa,MAAM;QACvB,MAAM6B,cAAcnC,GAAGoC,gBAAgB,CAAC,mBAAmB;YACzDC,WAAW,CAAC3B;gBACVD,aAAaC,MAAM;YACrB;QACF;QAEA,OAAO,IAAMyB;IACf,GAAG;QAAC/B,MAAMiB,SAAS;QAAEf;KAAS;IAE9B,cAAc;IACd4B,IAAAA,gBAAS,EAAC;QACR,IAAI,CAAC9B,MAAMiB,SAAS,EAAE;QACtB,IAAIf,aAAa,MAAM;QACvB,MAAM6B,cAAcnC,GAAGoC,gBAAgB,CAAC,uBAAuB;YAC7DC,WAAW,CAAC3B;gBACVD,aAAaC,MAAM;YACrB;QACF;QAEA,OAAO,IAAMyB;IACf,GAAG;QAAC/B,MAAMiB,SAAS;QAAEf;KAAS;IAE9B,YAAY;IACZ4B,IAAAA,gBAAS,EAAC;QACR,IAAI,CAAC9B,MAAMiB,SAAS,EAAE;QACtB,MAAML,MAAM;YAAC;YAAiBZ,MAAMiB,SAAS;SAAC;QAC9C,MAAMc,cAAcnC,GAAGoC,gBAAgB,CAAC,YAAY;YAClDC,WAAW,CAAC3B;gBACV,MAAM,EAAE4B,WAAWC,YAAY,EAAE,GAAG7B;gBAEpC,oDAAoD;gBAEpD,qBAAqB;gBAErBO,IAAAA,WAAM,EACJD,KACA,CAACwB;oBACC,uBAAuB;oBACvB,IAAI,CAAC,CAACA,eAAe;wBACnB,OAAO;4BACL,GAAGA,aAAa;4BAChBC,MAAMD,cAAcC,IAAI,CAACC,GAAG,CAAC,CAACC;gCAC5B,MAAMC,OAAOL,aAAaM,IAAI,CAC5B,CAACD,OAASA,KAAKE,MAAM,KAAKH,IAAIG,MAAM;gCAEtC,IAAIF,MAAM;oCACR,OAAO;wCACLE,QAAQF,KAAKE,MAAM;wCACnBC,cAAcH,KAAKI,WAAW;wCAC9BC,eAAeL,KAAKM,YAAY;wCAChCC,0BAA0BP,KAAKQ,qBAAqB;wCACpDC,kBAAkBT,KAAKU,cAAc;wCACrCC,mBAAmBX,KAAKY,eAAe;wCACvCC,cAAcb,KAAKc,WAAW;wCAC9BC,oBAAoBf,KAAKgB,gBAAgB;wCACzCC,eAAejB,KAAKkB,YAAY;wCAChCC,YAAYnB,KAAKoB,SAAS;wCAC1BC,eAAerB,KAAKsB,WAAW;wCAC/BC,WAAWC,KAAKC,GAAG;wCACnBC,KAAK1B,KAAK0B,GAAG;wCACbC,KAAK3B,KAAK2B,GAAG;wCACbC,qBAAqB5B,KAAK6B,aAAa;wCACvCC,iBAAiB9B,KAAK+B,aAAa;wCACnCC,UAAUhC,KAAKiC,MAAM;wCACrBC,UAAUlC,KAAKmC,MAAM;oCACvB;gCACF;gCAEA,OAAOpC;4BACT;wBACF;oBACF;gBACF,GACA;oBACEjB,YAAY;gBACd;YAEJ;QACF;QACA,OAAO;YACLS;QACF;IACF,GAAG;QAAC/B,MAAMiB,SAAS;KAAC;AAEpB,oBAAoB;AACpB,oBAAoB;AACpB,+CAA+C;AAC/C,+CAA+C;AAC/C,OAAO;AAEP,uCAAuC;AAEvC,mBAAmB;AACnB,0CAA0C;AAC1C,OAAO;AACP,UAAU;AACZ"}
@@ -0,0 +1,2 @@
1
+ export declare const useSymbolLeverage: (symbol: string) => number | "-";
2
+ //# sourceMappingURL=useSymbolLeverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSymbolLeverage.d.ts","sourceRoot":"","sources":["../../src/orderly/useSymbolLeverage.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,WAAY,MAAM,KAAI,MAAM,GAAG,GA0B5D,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useSymbolLeverage", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return useSymbolLeverage;
9
+ }
10
+ });
11
+ const _react = require("react");
12
+ const _useQuery = require("../useQuery");
13
+ const _useAccountInfo = require("./useAccountInfo");
14
+ const useSymbolLeverage = (symbol)=>{
15
+ const { data: info } = (0, _useAccountInfo.useAccountInfo)();
16
+ const maxAccountLeverage = info?.max_leverage;
17
+ const res = (0, _useQuery.useQuery)(`/v1/public/info/${symbol}`, {
18
+ dedupingInterval: 1000 * 60 * 60 * 24,
19
+ revalidateOnFocus: false,
20
+ errorRetryCount: 2,
21
+ errorRetryInterval: 200
22
+ });
23
+ const maxSymbolLeverage = (0, _react.useMemo)(()=>{
24
+ const base = res?.data?.base_imr;
25
+ if (base) return 1 / base;
26
+ }, [
27
+ res
28
+ ]);
29
+ const maxLeverage = (0, _react.useMemo)(()=>{
30
+ if (!maxAccountLeverage || !maxSymbolLeverage) {
31
+ return "-";
32
+ }
33
+ return Math.min(maxAccountLeverage, maxSymbolLeverage);
34
+ }, [
35
+ maxAccountLeverage,
36
+ maxSymbolLeverage
37
+ ]);
38
+ return maxLeverage;
39
+ };
40
+
41
+ //# sourceMappingURL=useSymbolLeverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useSymbolLeverage.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useQuery } from \"../useQuery\";\nimport { useAccountInfo } from \"./useAccountInfo\";\n\nexport const useSymbolLeverage = (symbol: string) : number | \"-\" => {\n const { data: info } = useAccountInfo();\n\n const maxAccountLeverage = info?.max_leverage;\n\n const res = useQuery<any>(`/v1/public/info/${symbol}`, {\n dedupingInterval: 1000 * 60 * 60 * 24,\n revalidateOnFocus: false,\n errorRetryCount: 2,\n errorRetryInterval: 200,\n });\n\n const maxSymbolLeverage = useMemo(() => {\n const base = res?.data?.base_imr;\n if (base) return 1 / base;\n }, [res]);\n\n const maxLeverage = useMemo(() => {\n if (!maxAccountLeverage || !maxSymbolLeverage) {\n return \"-\";\n }\n\n return Math.min(maxAccountLeverage, maxSymbolLeverage);\n }, [maxAccountLeverage, maxSymbolLeverage]);\n\n return maxLeverage;\n};\n"],"names":["useSymbolLeverage","symbol","data","info","useAccountInfo","maxAccountLeverage","max_leverage","res","useQuery","dedupingInterval","revalidateOnFocus","errorRetryCount","errorRetryInterval","maxSymbolLeverage","useMemo","base","base_imr","maxLeverage","Math","min"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAIaA;;;eAAAA;;;uBAJW;0BACC;gCACM;AAExB,MAAMA,oBAAoB,CAACC;IAChC,MAAM,EAAEC,MAAMC,IAAI,EAAE,GAAGC,IAAAA,8BAAc;IAErC,MAAMC,qBAAqBF,MAAMG;IAEjC,MAAMC,MAAMC,IAAAA,kBAAQ,EAAM,CAAC,gBAAgB,EAAEP,OAAO,CAAC,EAAE;QACrDQ,kBAAkB,OAAO,KAAK,KAAK;QACnCC,mBAAmB;QACnBC,iBAAiB;QACjBC,oBAAoB;IACtB;IAEA,MAAMC,oBAAoBC,IAAAA,cAAO,EAAC;QAChC,MAAMC,OAAOR,KAAKL,MAAMc;QACxB,IAAID,MAAM,OAAO,IAAIA;IACvB,GAAG;QAACR;KAAI;IAER,MAAMU,cAAcH,IAAAA,cAAO,EAAC;QAC1B,IAAI,CAACT,sBAAsB,CAACQ,mBAAmB;YAC7C,OAAO;QACT;QAEA,OAAOK,KAAKC,GAAG,CAACd,oBAAoBQ;IACtC,GAAG;QAACR;QAAoBQ;KAAkB;IAE1C,OAAOI;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTPSL.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,GAAG,EACH,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG;IACzC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAC,EAAE;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,aACjC,QAAQ,IAAI,eAAe,CAAC,GACpC,KAAK,IAAI,eAAe,EAAE,QAAQ,GAAG,oBAAoB,GAAG,cAAc,CAAC,YACnE;IACR,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC;CAC9B;IA/BC;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;IAE5B;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;;IA0B5B;;OAEG;oBACa,MAAM,SAAS,MAAM,GAAG,MAAM,KAAK,IAAI;wBACnC,QAAQ,iBAAiB,CAAC,KAAK,IAAI;IAEvD;;OAEG;YACK,MAAM,QAAQ,IAAI,CAAC;YAMnB,aAAa,GAAG,IAAI;IAC5B;;OAEG;cACO,MAAM,QACd,gBACE,kBAAkB,gBAAgB,GAAG,kBAAkB,KAAK,CAC7D,CACF;EAmSJ,CAAC"}
1
+ {"version":3,"file":"useTPSL.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,GAAG,EACH,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG;IACzC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAC,EAAE;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,aACjC,QAAQ,IAAI,eAAe,CAAC,GACpC,KAAK,IAAI,eAAe,EAAE,QAAQ,GAAG,oBAAoB,GAAG,cAAc,CAAC,YACnE;IACR,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC;CAC9B;IA/BC;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;IAE5B;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;;IA0B5B;;OAEG;oBACa,MAAM,SAAS,MAAM,GAAG,MAAM,KAAK,IAAI;wBACnC,QAAQ,iBAAiB,CAAC,KAAK,IAAI;IAEvD;;OAEG;YACK,MAAM,QAAQ,IAAI,CAAC;YAMnB,aAAa,GAAG,IAAI;IAC5B;;OAEG;cACO,MAAM,QACd,gBACE,kBAAkB,gBAAgB,GAAG,kBAAkB,KAAK,CAC7D,CACF;EAoSJ,CAAC"}
@@ -46,7 +46,7 @@ const useTaskProfitAndStopLossInternal = (position, options)=>{
46
46
  }
47
47
  }, []);
48
48
  const _setOrderValue = (key, value, options)=>{
49
- // console.log("[updateOrder:]", key, value, order.quantity);
49
+ ;
50
50
  setOrder((prev)=>{
51
51
  const side = position.position_qty > 0 ? _types.OrderSide.BUY : _types.OrderSide.SELL;
52
52
  if (key === "sl_pnl") {
@@ -69,6 +69,7 @@ const useTaskProfitAndStopLossInternal = (position, options)=>{
69
69
  });
70
70
  };
71
71
  const setOrderValue = async (key, value, options)=>{
72
+ // console.log("-------->>>>>", key, value);
72
73
  if (key === "quantity") {
73
74
  setOrder((prev)=>({
74
75
  ...prev,