@orderly.network/hooks 1.4.0 → 1.5.0-alpha.0

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 (137) hide show
  1. package/esm/index.d.ts +1 -0
  2. package/esm/index.d.ts.map +1 -1
  3. package/esm/index.js +1 -0
  4. package/esm/index.js.map +1 -1
  5. package/esm/middleware/signatureMiddleware.js.map +1 -1
  6. package/esm/orderly/useMarkets.d.ts.map +1 -1
  7. package/esm/orderly/useMarkets.js.map +1 -1
  8. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts +4 -4
  9. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +4 -4
  10. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -1
  11. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -1
  12. package/esm/referral/api.d.ts +87 -0
  13. package/esm/referral/api.d.ts.map +1 -0
  14. package/esm/referral/api.js +3 -0
  15. package/esm/referral/api.js.map +1 -0
  16. package/esm/referral/format.d.ts +2 -0
  17. package/esm/referral/format.d.ts.map +1 -0
  18. package/esm/referral/format.js +8 -0
  19. package/esm/referral/format.js.map +1 -0
  20. package/esm/referral/index.d.ts +9 -0
  21. package/esm/referral/index.d.ts.map +1 -0
  22. package/esm/referral/index.js +10 -0
  23. package/esm/referral/index.js.map +1 -0
  24. package/esm/referral/swr.d.ts +7 -0
  25. package/esm/referral/swr.d.ts.map +1 -0
  26. package/esm/referral/swr.js +24 -0
  27. package/esm/referral/swr.js.map +1 -0
  28. package/esm/referral/useCommission.d.ts +4 -0
  29. package/esm/referral/useCommission.d.ts.map +1 -0
  30. package/esm/referral/useCommission.js +59 -0
  31. package/esm/referral/useCommission.js.map +1 -0
  32. package/esm/referral/useDaily.d.ts +9 -0
  33. package/esm/referral/useDaily.d.ts.map +1 -0
  34. package/esm/referral/useDaily.js +19 -0
  35. package/esm/referral/useDaily.js.map +1 -0
  36. package/esm/referral/useDistribution.d.ts +9 -0
  37. package/esm/referral/useDistribution.d.ts.map +1 -0
  38. package/esm/referral/useDistribution.js +53 -0
  39. package/esm/referral/useDistribution.js.map +1 -0
  40. package/esm/referral/useRefereeHistory.d.ts +9 -0
  41. package/esm/referral/useRefereeHistory.d.ts.map +1 -0
  42. package/esm/referral/useRefereeHistory.js +47 -0
  43. package/esm/referral/useRefereeHistory.js.map +1 -0
  44. package/esm/referral/useRefereeInfo.d.ts +9 -0
  45. package/esm/referral/useRefereeInfo.d.ts.map +1 -0
  46. package/esm/referral/useRefereeInfo.js +47 -0
  47. package/esm/referral/useRefereeInfo.js.map +1 -0
  48. package/esm/referral/useRefereeRebateSummary.d.ts +12 -0
  49. package/esm/referral/useRefereeRebateSummary.d.ts.map +1 -0
  50. package/esm/referral/useRefereeRebateSummary.js +31 -0
  51. package/esm/referral/useRefereeRebateSummary.js.map +1 -0
  52. package/esm/referral/useReferralRebateSummary.d.ts +9 -0
  53. package/esm/referral/useReferralRebateSummary.d.ts.map +1 -0
  54. package/esm/referral/useReferralRebateSummary.js +47 -0
  55. package/esm/referral/useReferralRebateSummary.js.map +1 -0
  56. package/esm/services/orderCreator/baseCreator.d.ts.map +1 -1
  57. package/esm/services/orderCreator/baseCreator.js +5 -3
  58. package/esm/services/orderCreator/baseCreator.js.map +1 -1
  59. package/esm/unuse/useSyncEnd.d.ts.map +1 -1
  60. package/esm/unuse/useSyncEnd.js.map +1 -1
  61. package/esm/useConfig.d.ts +2 -1
  62. package/esm/useConfig.d.ts.map +1 -1
  63. package/esm/useConfig.js +2 -2
  64. package/esm/useConfig.js.map +1 -1
  65. package/esm/version.d.ts +1 -1
  66. package/esm/version.d.ts.map +1 -1
  67. package/esm/version.js +2 -2
  68. package/esm/version.js.map +1 -1
  69. package/lib/index.d.ts +1 -0
  70. package/lib/index.d.ts.map +1 -1
  71. package/lib/index.js +1 -0
  72. package/lib/index.js.map +1 -1
  73. package/lib/middleware/signatureMiddleware.js.map +1 -1
  74. package/lib/orderly/useMarkets.d.ts.map +1 -1
  75. package/lib/orderly/useMarkets.js.map +1 -1
  76. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts +4 -4
  77. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +4 -4
  78. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -1
  79. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -1
  80. package/lib/referral/api.d.ts +87 -0
  81. package/lib/referral/api.d.ts.map +1 -0
  82. package/lib/referral/api.js +6 -0
  83. package/lib/referral/api.js.map +1 -0
  84. package/lib/referral/format.d.ts +2 -0
  85. package/lib/referral/format.d.ts.map +1 -0
  86. package/lib/referral/format.js +18 -0
  87. package/lib/referral/format.js.map +1 -0
  88. package/lib/referral/index.d.ts +9 -0
  89. package/lib/referral/index.d.ts.map +1 -0
  90. package/lib/referral/index.js +56 -0
  91. package/lib/referral/index.js.map +1 -0
  92. package/lib/referral/swr.d.ts +7 -0
  93. package/lib/referral/swr.d.ts.map +1 -0
  94. package/lib/referral/swr.js +34 -0
  95. package/lib/referral/swr.js.map +1 -0
  96. package/lib/referral/useCommission.d.ts +4 -0
  97. package/lib/referral/useCommission.d.ts.map +1 -0
  98. package/lib/referral/useCommission.js +69 -0
  99. package/lib/referral/useCommission.js.map +1 -0
  100. package/lib/referral/useDaily.d.ts +9 -0
  101. package/lib/referral/useDaily.d.ts.map +1 -0
  102. package/lib/referral/useDaily.js +29 -0
  103. package/lib/referral/useDaily.js.map +1 -0
  104. package/lib/referral/useDistribution.d.ts +9 -0
  105. package/lib/referral/useDistribution.d.ts.map +1 -0
  106. package/lib/referral/useDistribution.js +63 -0
  107. package/lib/referral/useDistribution.js.map +1 -0
  108. package/lib/referral/useRefereeHistory.d.ts +9 -0
  109. package/lib/referral/useRefereeHistory.d.ts.map +1 -0
  110. package/lib/referral/useRefereeHistory.js +57 -0
  111. package/lib/referral/useRefereeHistory.js.map +1 -0
  112. package/lib/referral/useRefereeInfo.d.ts +9 -0
  113. package/lib/referral/useRefereeInfo.d.ts.map +1 -0
  114. package/lib/referral/useRefereeInfo.js +57 -0
  115. package/lib/referral/useRefereeInfo.js.map +1 -0
  116. package/lib/referral/useRefereeRebateSummary.d.ts +12 -0
  117. package/lib/referral/useRefereeRebateSummary.d.ts.map +1 -0
  118. package/lib/referral/useRefereeRebateSummary.js +41 -0
  119. package/lib/referral/useRefereeRebateSummary.js.map +1 -0
  120. package/lib/referral/useReferralRebateSummary.d.ts +9 -0
  121. package/lib/referral/useReferralRebateSummary.d.ts.map +1 -0
  122. package/lib/referral/useReferralRebateSummary.js +57 -0
  123. package/lib/referral/useReferralRebateSummary.js.map +1 -0
  124. package/lib/services/orderCreator/baseCreator.d.ts.map +1 -1
  125. package/lib/services/orderCreator/baseCreator.js +5 -3
  126. package/lib/services/orderCreator/baseCreator.js.map +1 -1
  127. package/lib/unuse/useSyncEnd.d.ts.map +1 -1
  128. package/lib/unuse/useSyncEnd.js.map +1 -1
  129. package/lib/useConfig.d.ts +2 -1
  130. package/lib/useConfig.d.ts.map +1 -1
  131. package/lib/useConfig.js +2 -2
  132. package/lib/useConfig.js.map +1 -1
  133. package/lib/version.d.ts +1 -1
  134. package/lib/version.d.ts.map +1 -1
  135. package/lib/version.js +2 -2
  136. package/lib/version.js.map +1 -1
  137. package/package.json +7 -7
package/esm/index.d.ts CHANGED
@@ -34,4 +34,5 @@ export { cleanStringStyle } from "./utils/orderEntryHelper";
34
34
  export { checkNotional } from "./utils/createOrder";
35
35
  export * as utils from "./utils";
36
36
  export type { WalletAdapter } from "@orderly.network/core";
37
+ export * from "./referral";
37
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,MAAM,EAAE,EACb,KAAK,gBAAgB,EACrB,SAAS,EACT,YAAY,EACZ,kBAAkB,EACnB,MAAM,KAAK,CAAC;AAEb,OAAO,EACL,MAAM,EACN,SAAS,EACT,YAAY,EACZ,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,CAAC;AAEF,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAEtC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,MAAM,EAAE,EACb,KAAK,gBAAgB,EACrB,SAAS,EACT,YAAY,EACZ,kBAAkB,EACnB,MAAM,KAAK,CAAC;AAEb,OAAO,EACL,MAAM,EACN,SAAS,EACT,YAAY,EACZ,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,CAAC;AAEF,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAEtC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,cAAc,YAAY,CAAC"}
package/esm/index.js CHANGED
@@ -32,5 +32,6 @@ export * from "./orderly/orderlyHooks";
32
32
  export { cleanStringStyle } from "./utils/orderEntryHelper";
33
33
  export { checkNotional } from "./utils/createOrder";
34
34
  export * as utils from "./utils";
35
+ export * from "./referral";
35
36
 
36
37
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// import \"./utils/dev\";\n\nexport { default as version } from \"./version\";\n\nexport { useQuery } from \"./useQuery\";\nexport { useLazyQuery } from \"./useLazyQuery\";\nexport { useMutation } from \"./useMutation\";\nexport { usePrivateQuery } from \"./usePrivateQuery\";\nexport { usePrivateInfiniteQuery } from \"./usePrivateInfiniteQuery\";\nexport { useBoolean } from \"./useBoolean\";\n\nexport { useAccount } from \"./useAccount\";\nexport { useAccountInstance } from \"./useAccountInstance\";\n\nexport { usePreLoadData } from \"./usePreloadData\";\n\nexport { useEventEmitter } from \"./useEventEmitter\";\n\nexport { useSessionStorage } from \"./useSessionStorage\";\nexport { useLocalStorage } from \"./useLocalStorage\";\n\nexport { parseJSON } from \"./utils/json\";\n\nexport { default as useConstant } from \"use-constant\";\nexport { useWS } from \"./useWS\";\nexport { useConfig } from \"./useConfig\";\n\nexport * from \"./orderlyContext\";\nexport * from \"./statusProvider\";\nexport { useWsStatus, WsNetworkStatus } from \"./useWsStatus\";\nexport type { ConfigProviderProps } from \"./configProvider\";\nexport { OrderlyConfigProvider } from \"./configProvider\";\n\nexport {\n WalletConnectorContext,\n useWalletConnector,\n} from \"./walletConnectorContext\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nimport useSWR, {\n type SWRConfiguration,\n SWRConfig,\n useSWRConfig,\n unstable_serialize,\n} from \"swr\";\n\nexport {\n useSWR,\n SWRConfig,\n useSWRConfig,\n type SWRConfiguration,\n unstable_serialize,\n};\n\nexport * from \"use-debounce\";\n\nexport { useMediaQuery } from \"./useMediaQuery\";\n\nexport { usePoster } from \"./usePoster\";\nexport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nexport type {\n PosterLayoutConfig,\n DrawOptions,\n} from \"./services/painter/basePaint\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nexport { cleanStringStyle } from \"./utils/orderEntryHelper\";\nexport { checkNotional } from \"./utils/createOrder\";\n\nexport * as utils from \"./utils\";\n\nexport type { WalletAdapter } from \"@orderly.network/core\";\n"],"names":["default","version","useQuery","useLazyQuery","useMutation","usePrivateQuery","usePrivateInfiniteQuery","useBoolean","useAccount","useAccountInstance","usePreLoadData","useEventEmitter","useSessionStorage","useLocalStorage","parseJSON","useConstant","useWS","useConfig","useWsStatus","WsNetworkStatus","OrderlyConfigProvider","WalletConnectorContext","useWalletConnector","useSWR","SWRConfig","useSWRConfig","unstable_serialize","useMediaQuery","usePoster","DefaultLayoutConfig","cleanStringStyle","checkNotional","utils"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,wBAAwB;AAExB,SAASA,WAAWC,OAAO,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,uBAAuB,QAAQ,4BAA4B;AACpE,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,kBAAkB,QAAQ,uBAAuB;AAE1D,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,SAAS,QAAQ,eAAe;AAEzC,SAASd,WAAWe,WAAW,QAAQ,eAAe;AACtD,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,SAAS,QAAQ,cAAc;AAExC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,SAASC,WAAW,EAAEC,eAAe,QAAQ,gBAAgB;AAE7D,SAASC,qBAAqB,QAAQ,mBAAmB;AAEzD,SACEC,sBAAsB,EACtBC,kBAAkB,QACb,2BAA2B;AAElC,cAAc,yBAAyB;AAEvC,OAAOC,UAELC,SAAS,EACTC,YAAY,EACZC,kBAAkB,QACb,MAAM;AAEb,SACEH,MAAM,EACNC,SAAS,EACTC,YAAY,EAEZC,kBAAkB,GAClB;AAEF,cAAc,eAAe;AAE7B,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,mBAAmB,QAAQ,mCAAmC;AAMvE,cAAc,yBAAyB;AAEvC,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,KAAKC,KAAK,MAAM,UAAU"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// import \"./utils/dev\";\n\nexport { default as version } from \"./version\";\n\nexport { useQuery } from \"./useQuery\";\nexport { useLazyQuery } from \"./useLazyQuery\";\nexport { useMutation } from \"./useMutation\";\nexport { usePrivateQuery } from \"./usePrivateQuery\";\nexport { usePrivateInfiniteQuery } from \"./usePrivateInfiniteQuery\";\nexport { useBoolean } from \"./useBoolean\";\n\nexport { useAccount } from \"./useAccount\";\nexport { useAccountInstance } from \"./useAccountInstance\";\n\nexport { usePreLoadData } from \"./usePreloadData\";\n\nexport { useEventEmitter } from \"./useEventEmitter\";\n\nexport { useSessionStorage } from \"./useSessionStorage\";\nexport { useLocalStorage } from \"./useLocalStorage\";\n\nexport { parseJSON } from \"./utils/json\";\n\nexport { default as useConstant } from \"use-constant\";\nexport { useWS } from \"./useWS\";\nexport { useConfig } from \"./useConfig\";\n\nexport * from \"./orderlyContext\";\nexport * from \"./statusProvider\";\nexport { useWsStatus, WsNetworkStatus } from \"./useWsStatus\";\nexport type { ConfigProviderProps } from \"./configProvider\";\nexport { OrderlyConfigProvider } from \"./configProvider\";\n\nexport {\n WalletConnectorContext,\n useWalletConnector,\n} from \"./walletConnectorContext\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nimport useSWR, {\n type SWRConfiguration,\n SWRConfig,\n useSWRConfig,\n unstable_serialize,\n} from \"swr\";\n\nexport {\n useSWR,\n SWRConfig,\n useSWRConfig,\n type SWRConfiguration,\n unstable_serialize,\n};\n\nexport * from \"use-debounce\";\n\nexport { useMediaQuery } from \"./useMediaQuery\";\n\nexport { usePoster } from \"./usePoster\";\nexport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nexport type {\n PosterLayoutConfig,\n DrawOptions,\n} from \"./services/painter/basePaint\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nexport { cleanStringStyle } from \"./utils/orderEntryHelper\";\nexport { checkNotional } from \"./utils/createOrder\";\n\nexport * as utils from \"./utils\";\n\nexport type { WalletAdapter } from \"@orderly.network/core\";\n\n\nexport * from \"./referral\";"],"names":["default","version","useQuery","useLazyQuery","useMutation","usePrivateQuery","usePrivateInfiniteQuery","useBoolean","useAccount","useAccountInstance","usePreLoadData","useEventEmitter","useSessionStorage","useLocalStorage","parseJSON","useConstant","useWS","useConfig","useWsStatus","WsNetworkStatus","OrderlyConfigProvider","WalletConnectorContext","useWalletConnector","useSWR","SWRConfig","useSWRConfig","unstable_serialize","useMediaQuery","usePoster","DefaultLayoutConfig","cleanStringStyle","checkNotional","utils"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,wBAAwB;AAExB,SAASA,WAAWC,OAAO,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,uBAAuB,QAAQ,4BAA4B;AACpE,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,kBAAkB,QAAQ,uBAAuB;AAE1D,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,SAAS,QAAQ,eAAe;AAEzC,SAASd,WAAWe,WAAW,QAAQ,eAAe;AACtD,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,SAAS,QAAQ,cAAc;AAExC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,SAASC,WAAW,EAAEC,eAAe,QAAQ,gBAAgB;AAE7D,SAASC,qBAAqB,QAAQ,mBAAmB;AAEzD,SACEC,sBAAsB,EACtBC,kBAAkB,QACb,2BAA2B;AAElC,cAAc,yBAAyB;AAEvC,OAAOC,UAELC,SAAS,EACTC,YAAY,EACZC,kBAAkB,QACb,MAAM;AAEb,SACEH,MAAM,EACNC,SAAS,EACTC,YAAY,EAEZC,kBAAkB,GAClB;AAEF,cAAc,eAAe;AAE7B,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,mBAAmB,QAAQ,mCAAmC;AAMvE,cAAc,yBAAyB;AAEvC,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,KAAKC,KAAK,MAAM,UAAU;AAKjC,cAAc,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/middleware/signatureMiddleware.ts"],"sourcesContent":["import { SWRHook, Middleware } from \"swr\";\nimport { SimpleDI, Account, MessageFactor } from \"@orderly.network/core\";\nimport { useConfig } from \"../useConfig\";\n\nexport const signatureMiddleware: Middleware = (useSWRNext: SWRHook) => {\n const apiBaseUrl = useConfig<string>(\"apiBaseUrl\");\n return (key, fetcher, config) => {\n try {\n const extendedFetcher = async (args: any) => {\n let url = Array.isArray(args) ? args[0] : args;\n\n let account = SimpleDI.get<Account>(\"account\");\n let fullUrl = `${apiBaseUrl}${url}`;\n\n const signer = account.signer;\n\n const payload: MessageFactor = {\n method: \"GET\",\n url,\n };\n\n const signature = await signer.sign(payload);\n\n // @ts-ignore\n return fetcher(fullUrl, {\n headers: {\n ...signature,\n \"orderly-account-id\": account.accountId,\n },\n });\n };\n return useSWRNext(key, extendedFetcher, config);\n } catch (e) {\n console.error(\"signature error:\", e);\n throw e;\n }\n };\n};\n"],"names":["SimpleDI","useConfig","signatureMiddleware","useSWRNext","apiBaseUrl","key","fetcher","config","extendedFetcher","args","url","Array","isArray","account","get","fullUrl","signer","payload","method","signature","sign","headers","accountId","e","console","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,QAAQ,QAAgC,wBAAwB;AACzE,SAASC,SAAS,QAAQ,eAAe;AAEzC,OAAO,MAAMC,sBAAkC,CAACC;IAC9C,MAAMC,aAAaH,UAAkB;IACrC,OAAO,CAACI,KAAKC,SAASC;QACpB,IAAI;YACF,MAAMC,kBAAkB,OAAOC;gBAC7B,IAAIC,MAAMC,MAAMC,OAAO,CAACH,QAAQA,IAAI,CAAC,EAAE,GAAGA;gBAE1C,IAAII,UAAUb,SAASc,GAAG,CAAU;gBACpC,IAAIC,UAAU,CAAC,EAAEX,WAAW,EAAEM,IAAI,CAAC;gBAEnC,MAAMM,SAASH,QAAQG,MAAM;gBAE7B,MAAMC,UAAyB;oBAC7BC,QAAQ;oBACRR;gBACF;gBAEA,MAAMS,YAAY,MAAMH,OAAOI,IAAI,CAACH;gBAEpC,aAAa;gBACb,OAAOX,QAAQS,SAAS;oBACtBM,SAAS;wBACP,GAAGF,SAAS;wBACZ,sBAAsBN,QAAQS,SAAS;oBACzC;gBACF;YACF;YACA,OAAOnB,WAAWE,KAAKG,iBAAiBD;QAC1C,EAAE,OAAOgB,GAAG;YACVC,QAAQC,KAAK,CAAC,oBAAoBF;YAClC,MAAMA;QACR;IACF;AACF,EAAE"}
1
+ {"version":3,"sources":["../../src/middleware/signatureMiddleware.ts"],"sourcesContent":["import { SWRHook, Middleware } from \"swr\";\nimport { SimpleDI, Account, MessageFactor } from \"@orderly.network/core\";\nimport { useConfig } from \"../useConfig\";\n\nexport const signatureMiddleware: Middleware = (useSWRNext: SWRHook) => {\n const apiBaseUrl = useConfig(\"apiBaseUrl\");\n return (key, fetcher, config) => {\n try {\n const extendedFetcher = async (args: any) => {\n let url = Array.isArray(args) ? args[0] : args;\n\n let account = SimpleDI.get<Account>(\"account\");\n let fullUrl = `${apiBaseUrl}${url}`;\n\n const signer = account.signer;\n\n const payload: MessageFactor = {\n method: \"GET\",\n url,\n };\n\n const signature = await signer.sign(payload);\n\n // @ts-ignore\n return fetcher(fullUrl, {\n headers: {\n ...signature,\n \"orderly-account-id\": account.accountId,\n },\n });\n };\n return useSWRNext(key, extendedFetcher, config);\n } catch (e) {\n console.error(\"signature error:\", e);\n throw e;\n }\n };\n};\n"],"names":["SimpleDI","useConfig","signatureMiddleware","useSWRNext","apiBaseUrl","key","fetcher","config","extendedFetcher","args","url","Array","isArray","account","get","fullUrl","signer","payload","method","signature","sign","headers","accountId","e","console","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,QAAQ,QAAgC,wBAAwB;AACzE,SAASC,SAAS,QAAQ,eAAe;AAEzC,OAAO,MAAMC,sBAAkC,CAACC;IAC9C,MAAMC,aAAaH,UAAU;IAC7B,OAAO,CAACI,KAAKC,SAASC;QACpB,IAAI;YACF,MAAMC,kBAAkB,OAAOC;gBAC7B,IAAIC,MAAMC,MAAMC,OAAO,CAACH,QAAQA,IAAI,CAAC,EAAE,GAAGA;gBAE1C,IAAII,UAAUb,SAASc,GAAG,CAAU;gBACpC,IAAIC,UAAU,CAAC,EAAEX,WAAW,EAAEM,IAAI,CAAC;gBAEnC,MAAMM,SAASH,QAAQG,MAAM;gBAE7B,MAAMC,UAAyB;oBAC7BC,QAAQ;oBACRR;gBACF;gBAEA,MAAMS,YAAY,MAAMH,OAAOI,IAAI,CAACH;gBAEpC,aAAa;gBACb,OAAOX,QAAQS,SAAS;oBACtBM,SAAS;wBACP,GAAGF,SAAS;wBACZ,sBAAsBN,QAAQS,SAAS;oBACzC;gBACF;YACF;YACA,OAAOnB,WAAWE,KAAKG,iBAAiBD;QAC1C,EAAE,OAAOgB,GAAG;YACVC,QAAQC,KAAK,CAAC,oBAAoBF;YAClC,MAAMA;QACR;IACF;AACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkets.d.ts","sourceRoot":"","sources":["../../src/orderly/useMarkets.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAI7C,oBAAY,WAAW;IACnB,SAAS,IAAA;IACT,MAAM,IAAA;IACN,GAAG,IAAA;CACN;AAuBD,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,SAAU,WAAW;;;;cARlC,MAAM;;;oCAuNkB,IAAI,aAAa;uCAhJd,WAAW,GAAG,WAAW,EAAE,aAAa;QACrE,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB;iDAgJ0C,IAAI,aAAa,OAAO,WAAW,GAAG,WAAW,EAAE,QAAO,OAAO;gCAMlF,IAAI,aAAa;;8CA6BH,WAAW;EAsBtD,CAAA"}
1
+ {"version":3,"file":"useMarkets.d.ts","sourceRoot":"","sources":["../../src/orderly/useMarkets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAI7C,oBAAY,WAAW;IACnB,SAAS,IAAA;IACT,MAAM,IAAA;IACN,GAAG,IAAA;CACN;AAuBD,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,SAAU,WAAW;;;;cARlC,MAAM;;;oCAuNkB,IAAI,aAAa;uCAhJd,WAAW,GAAG,WAAW,EAAE,aAAa;QACrE,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB;iDAgJ0C,IAAI,aAAa,OAAO,WAAW,GAAG,WAAW,EAAE,QAAO,OAAO;gCAMlF,IAAI,aAAa;;8CA6BH,WAAW;EAsBtD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/useMarkets.ts"],"sourcesContent":["import { useCallback, useContext, useMemo, useState } from \"react\";\nimport { useMarketsStream } from \"./useMarketsStream\";\nimport { useConfig } from \"../useConfig\";\nimport { OrderlyContext } from \"../orderlyContext\";\nimport { API } from \"@orderly.network/types\";\nimport { useQuery } from \"../useQuery\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\n\nexport enum MarketsType {\n FAVORITES,\n RECENT,\n ALL,\n}\n\n\n/*\n{\n markets: {\n recent: [\n { \"name\": `${symbol.name}` },\n { \"name\": `${symbol.name}` },\n ],\n favorites: [\n { \"name\": `${symbol.name}`, \"tabs\": [{ \"name\": \"Popular\", \"id\": 1 }] },\n ],\n favoriteTabs: [\n { \"name\": \"Popular\", \"id\": 1 },\n ],\n \"lastSelectFavoriteTab\": { \"name\": \"Popular\", \"id\": 1 }\n \n }\n}\n*/\n\n\nexport interface FavoriteTab {\n name: string;\n id: number;\n}\n\nexport interface Favorite {\n name: string;\n tabs: FavoriteTab[];\n}\n\nexport interface Recent {\n name: string;\n}\n\nexport const useMarkets = (type: MarketsType) => {\n\n const marketsKey = \"markets\";\n\n const { data } = useMarketsStream();\n const { configStore } = useContext(OrderlyContext);\n\n // {\"PERP_ETH_USDC\": {}, ...}\n const publicInfo = useSymbolsInfo();\n\n if (!configStore.get(marketsKey)) {\n const jsonStr = localStorage.getItem(marketsKey);\n if (jsonStr) {\n configStore.set(marketsKey, JSON.parse(jsonStr));\n } else {\n const defaultTab = { name: \"Popular\", id: 1 };\n configStore.set(marketsKey, {\n recent: [],\n favorites: [\n { name: \"PERP_ETH_USDC\", tabs: [{ ...defaultTab }] },\n { name: \"PERP_BTC_USDC\", tabs: [{ ...defaultTab }] },\n ],\n favoriteTabs: [{ ...defaultTab }],\n lastSelectFavoriteTab: { ...defaultTab }\n });\n }\n }\n\n const getFavoriteTabs = useMemo(() => {\n // @ts-ignore\n const tabs = configStore.get(marketsKey)[\"favoriteTabs\"];\n return (tabs || [{ name: \"Popular\", id: 1 }]) as FavoriteTab[];\n }, []);\n\n const getFavorites = useMemo(() => {\n // @ts-ignore\n const curData = (configStore.get(marketsKey,)[\"favorites\"] || []) as Favorite[];\n const tabs = getFavoriteTabs;\n const result = [];\n for (let index = 0; index < curData.length; index++) {\n const favData = curData[index];\n var favTabs = favData.tabs.filter((tab) => tabs.findIndex((item) => tab.id === item.id) !== -1);\n if (favTabs.length > 0) {\n result.push({ ...favData, tabs: favTabs })\n }\n\n }\n configStore.set(marketsKey, { ...configStore.getOr(marketsKey, {}), favorites: result });\n // localStorage.setItem(marketsKey, JSON.stringify(configStore.get(marketsKey)));\n\n return result;\n }, [configStore]);\n\n const getRecent = useMemo(() => {\n // @ts-ignore\n const curData = configStore.get(marketsKey)[\"recent\"];\n return ((curData || []) as Recent[]).filter((e) => e);\n }, []);\n\n const [favoriteTabs, setFavoriteTabs] = useState(getFavoriteTabs);\n const [favorites, setFavorites] = useState(getFavorites);\n const [recent, setRecent] = useState(getRecent);\n\n const updateFavoriteTabs = (tab: FavoriteTab | FavoriteTab[], operator?: {\n add?: boolean,\n update?: boolean,\n delete?: boolean,\n }) => {\n\n const saveTabs = (tabs: FavoriteTab[]) => {\n setFavoriteTabs(tabs);\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favoriteTabs\": tabs\n });\n };\n\n if (Array.isArray(tab)) {\n saveTabs(tab);\n return;\n }\n\n var tabs = [...favoriteTabs];\n const index = tabs.findIndex((item) => item.id === tab.id);\n if (operator?.add) {\n tabs.push(tab);\n } else if (operator?.update) {\n if (index !== -1) {\n tabs[index] = tab;\n }\n } else if (operator?.delete) {\n if (index !== -1) {\n tabs.splice(index, 1);\n\n }\n }\n saveTabs(tabs);\n };\n\n const setRecentData = (symbol: API.MarketInfoExt) => {\n const curData = [...recent];\n const index = curData.findIndex((item) => item.name == symbol.symbol);\n if (index !== -1) {\n curData.splice(index, 1);\n }\n curData.unshift({ name: symbol.symbol });\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"recent\": curData\n });\n setRecent(curData);\n };\n\n\n\n const setFavoritesData = (symbol: API.MarketInfoExt, tab: FavoriteTab | FavoriteTab[], remove: boolean = false) => {\n\n const curData = [...favorites];\n const index = curData.findIndex((item) => item.name == symbol.symbol);\n\n if (index === -1) { // can not find\n if (Array.isArray(tab)) {\n if (tab.length > 0) {\n curData.unshift({ name: symbol.symbol, tabs: tab });\n }\n } else {\n if (!remove) {\n // insert\n curData.unshift({ name: symbol.symbol, tabs: [tab] });\n }\n }\n\n } else {\n const favorite = curData[index];\n if (Array.isArray(tab)) {\n if (tab.length === 0) {\n // remove\n curData.splice(index, 1);\n } else {\n // overrides\n curData[index] = { ...favorite, tabs: tab };\n }\n } else {\n if (remove) {\n const tabs = favorite.tabs.filter((tab) => tab.id != tab.id);\n if (tabs.length === 0) { // del favorite\n curData.splice(index, 1);\n } else {\n curData[index] = { ...favorite, tabs };\n }\n } else { // insert\n const tabs = favorite.tabs;\n tabs.push(tab);\n curData[index] = { ...favorite, tabs };\n }\n }\n }\n\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favorites\": curData\n });\n setFavorites(() => curData);\n };\n\n const getData = (type: MarketsType) => {\n\n\n // get data\n const localData = type === MarketsType.FAVORITES ? [...favorites] : [...recent];\n // filter\n const keys = localData.map((item) => item.name);\n const filter = type == MarketsType.ALL ?\n data :\n data?.filter((item) => keys.includes(item.symbol));\n\n const favoritesData = [...favorites];\n const favoriteKeys = favoritesData.map((item) => item.name);\n if (filter) {\n for (let index = 0; index < filter.length; index++) {\n const element = filter[index];\n const isFavorite = type == MarketsType.FAVORITES ?\n true :\n (favoriteKeys.includes(element.symbol));\n\n const fIndex = favoritesData.findIndex((item) => item.name === element.symbol);\n const tabs = fIndex === -1 ? [] : favoritesData[fIndex].tabs;\n\n let imr = undefined;\n if (publicInfo) {\n imr= publicInfo?.[element.symbol](\"base_imr\");\n }\n \n filter[index] = {\n ...filter[index],\n // @ts-ignore\n isFavorite,\n tabs,\n leverage: imr ? 1 / imr : undefined\n };\n }\n }\n\n return filter;\n\n };\n\n const addToHistory = (symbol: API.MarketInfoExt) => {\n setRecentData(symbol);\n };\n\n const updateSymbolFavoriteState = (symbol: API.MarketInfoExt, tab: FavoriteTab | FavoriteTab[], del: boolean = false) => {\n setFavoritesData(symbol, tab, del);\n };\n\n const markets = getData(type);\n\n const pinToTop = (symbol: API.MarketInfoExt) => {\n const index = favorites.findIndex((item) => item.name === symbol.symbol);\n if (index !== -1) {\n const element = favorites[index];\n const list = [...favorites];\n list.splice(index, 1);\n list.unshift(element);\n\n\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favorites\": list\n });\n setFavorites(list);\n }\n };\n\n\n const tabs = useMemo(() => {\n return favoriteTabs;\n }, [favoriteTabs]);\n\n\n const getLastSelFavTab = () => {\n // @ts-ignore\n const curData = configStore.get(marketsKey)[\"lastSelectedFavoriteTab\"];\n return (curData || { name: \"Popular\", id: 1 }) as FavoriteTab;\n };\n\n const updateSelectedFavoriteTab = (tab: FavoriteTab) => {\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n lastSelectedFavoriteTab: tab\n });\n };\n\n return [\n markets || [],\n {\n favoriteTabs: tabs,\n favorites,\n recent,\n addToHistory,\n // updateFavoriteTabs(\"tab\", operator: {add/update/delete})\n updateFavoriteTabs,\n updateSymbolFavoriteState,\n pinToTop,\n getLastSelFavTab,\n updateSelectedFavoriteTab,\n },\n ] as const;\n}"],"names":["useContext","useMemo","useState","useMarketsStream","OrderlyContext","useSymbolsInfo","MarketsType","useMarkets","type","marketsKey","data","configStore","publicInfo","get","jsonStr","localStorage","getItem","set","JSON","parse","defaultTab","name","id","recent","favorites","tabs","favoriteTabs","lastSelectFavoriteTab","getFavoriteTabs","getFavorites","curData","result","index","length","favData","favTabs","filter","tab","findIndex","item","push","getOr","getRecent","e","setFavoriteTabs","setFavorites","setRecent","updateFavoriteTabs","operator","saveTabs","Array","isArray","add","update","delete","splice","setRecentData","symbol","unshift","setFavoritesData","remove","favorite","getData","localData","keys","map","includes","favoritesData","favoriteKeys","element","isFavorite","fIndex","imr","undefined","leverage","addToHistory","updateSymbolFavoriteState","del","markets","pinToTop","list","getLastSelFavTab","updateSelectedFavoriteTab","lastSelectedFavoriteTab"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/orderly/useMarkets.ts"],"sourcesContent":["import { useCallback, useContext, useMemo, useState } from \"react\";\nimport { useMarketsStream } from \"./useMarketsStream\";\nimport { OrderlyContext } from \"../orderlyContext\";\nimport { API } from \"@orderly.network/types\";\nimport { useQuery } from \"../useQuery\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\n\nexport enum MarketsType {\n FAVORITES,\n RECENT,\n ALL,\n}\n\n\n/*\n{\n markets: {\n recent: [\n { \"name\": `${symbol.name}` },\n { \"name\": `${symbol.name}` },\n ],\n favorites: [\n { \"name\": `${symbol.name}`, \"tabs\": [{ \"name\": \"Popular\", \"id\": 1 }] },\n ],\n favoriteTabs: [\n { \"name\": \"Popular\", \"id\": 1 },\n ],\n \"lastSelectFavoriteTab\": { \"name\": \"Popular\", \"id\": 1 }\n \n }\n}\n*/\n\n\nexport interface FavoriteTab {\n name: string;\n id: number;\n}\n\nexport interface Favorite {\n name: string;\n tabs: FavoriteTab[];\n}\n\nexport interface Recent {\n name: string;\n}\n\nexport const useMarkets = (type: MarketsType) => {\n\n const marketsKey = \"markets\";\n\n const { data } = useMarketsStream();\n const { configStore } = useContext(OrderlyContext);\n\n // {\"PERP_ETH_USDC\": {}, ...}\n const publicInfo = useSymbolsInfo();\n\n if (!configStore.get(marketsKey)) {\n const jsonStr = localStorage.getItem(marketsKey);\n if (jsonStr) {\n configStore.set(marketsKey, JSON.parse(jsonStr));\n } else {\n const defaultTab = { name: \"Popular\", id: 1 };\n configStore.set(marketsKey, {\n recent: [],\n favorites: [\n { name: \"PERP_ETH_USDC\", tabs: [{ ...defaultTab }] },\n { name: \"PERP_BTC_USDC\", tabs: [{ ...defaultTab }] },\n ],\n favoriteTabs: [{ ...defaultTab }],\n lastSelectFavoriteTab: { ...defaultTab }\n });\n }\n }\n\n const getFavoriteTabs = useMemo(() => {\n // @ts-ignore\n const tabs = configStore.get(marketsKey)[\"favoriteTabs\"];\n return (tabs || [{ name: \"Popular\", id: 1 }]) as FavoriteTab[];\n }, []);\n\n const getFavorites = useMemo(() => {\n // @ts-ignore\n const curData = (configStore.get(marketsKey,)[\"favorites\"] || []) as Favorite[];\n const tabs = getFavoriteTabs;\n const result = [];\n for (let index = 0; index < curData.length; index++) {\n const favData = curData[index];\n var favTabs = favData.tabs.filter((tab) => tabs.findIndex((item) => tab.id === item.id) !== -1);\n if (favTabs.length > 0) {\n result.push({ ...favData, tabs: favTabs })\n }\n\n }\n configStore.set(marketsKey, { ...configStore.getOr(marketsKey, {}), favorites: result });\n // localStorage.setItem(marketsKey, JSON.stringify(configStore.get(marketsKey)));\n\n return result;\n }, [configStore]);\n\n const getRecent = useMemo(() => {\n // @ts-ignore\n const curData = configStore.get(marketsKey)[\"recent\"];\n return ((curData || []) as Recent[]).filter((e) => e);\n }, []);\n\n const [favoriteTabs, setFavoriteTabs] = useState(getFavoriteTabs);\n const [favorites, setFavorites] = useState(getFavorites);\n const [recent, setRecent] = useState(getRecent);\n\n const updateFavoriteTabs = (tab: FavoriteTab | FavoriteTab[], operator?: {\n add?: boolean,\n update?: boolean,\n delete?: boolean,\n }) => {\n\n const saveTabs = (tabs: FavoriteTab[]) => {\n setFavoriteTabs(tabs);\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favoriteTabs\": tabs\n });\n };\n\n if (Array.isArray(tab)) {\n saveTabs(tab);\n return;\n }\n\n var tabs = [...favoriteTabs];\n const index = tabs.findIndex((item) => item.id === tab.id);\n if (operator?.add) {\n tabs.push(tab);\n } else if (operator?.update) {\n if (index !== -1) {\n tabs[index] = tab;\n }\n } else if (operator?.delete) {\n if (index !== -1) {\n tabs.splice(index, 1);\n\n }\n }\n saveTabs(tabs);\n };\n\n const setRecentData = (symbol: API.MarketInfoExt) => {\n const curData = [...recent];\n const index = curData.findIndex((item) => item.name == symbol.symbol);\n if (index !== -1) {\n curData.splice(index, 1);\n }\n curData.unshift({ name: symbol.symbol });\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"recent\": curData\n });\n setRecent(curData);\n };\n\n\n\n const setFavoritesData = (symbol: API.MarketInfoExt, tab: FavoriteTab | FavoriteTab[], remove: boolean = false) => {\n\n const curData = [...favorites];\n const index = curData.findIndex((item) => item.name == symbol.symbol);\n\n if (index === -1) { // can not find\n if (Array.isArray(tab)) {\n if (tab.length > 0) {\n curData.unshift({ name: symbol.symbol, tabs: tab });\n }\n } else {\n if (!remove) {\n // insert\n curData.unshift({ name: symbol.symbol, tabs: [tab] });\n }\n }\n\n } else {\n const favorite = curData[index];\n if (Array.isArray(tab)) {\n if (tab.length === 0) {\n // remove\n curData.splice(index, 1);\n } else {\n // overrides\n curData[index] = { ...favorite, tabs: tab };\n }\n } else {\n if (remove) {\n const tabs = favorite.tabs.filter((tab) => tab.id != tab.id);\n if (tabs.length === 0) { // del favorite\n curData.splice(index, 1);\n } else {\n curData[index] = { ...favorite, tabs };\n }\n } else { // insert\n const tabs = favorite.tabs;\n tabs.push(tab);\n curData[index] = { ...favorite, tabs };\n }\n }\n }\n\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favorites\": curData\n });\n setFavorites(() => curData);\n };\n\n const getData = (type: MarketsType) => {\n\n\n // get data\n const localData = type === MarketsType.FAVORITES ? [...favorites] : [...recent];\n // filter\n const keys = localData.map((item) => item.name);\n const filter = type == MarketsType.ALL ?\n data :\n data?.filter((item) => keys.includes(item.symbol));\n\n const favoritesData = [...favorites];\n const favoriteKeys = favoritesData.map((item) => item.name);\n if (filter) {\n for (let index = 0; index < filter.length; index++) {\n const element = filter[index];\n const isFavorite = type == MarketsType.FAVORITES ?\n true :\n (favoriteKeys.includes(element.symbol));\n\n const fIndex = favoritesData.findIndex((item) => item.name === element.symbol);\n const tabs = fIndex === -1 ? [] : favoritesData[fIndex].tabs;\n\n let imr = undefined;\n if (publicInfo) {\n imr= publicInfo?.[element.symbol](\"base_imr\");\n }\n \n filter[index] = {\n ...filter[index],\n // @ts-ignore\n isFavorite,\n tabs,\n leverage: imr ? 1 / imr : undefined\n };\n }\n }\n\n return filter;\n\n };\n\n const addToHistory = (symbol: API.MarketInfoExt) => {\n setRecentData(symbol);\n };\n\n const updateSymbolFavoriteState = (symbol: API.MarketInfoExt, tab: FavoriteTab | FavoriteTab[], del: boolean = false) => {\n setFavoritesData(symbol, tab, del);\n };\n\n const markets = getData(type);\n\n const pinToTop = (symbol: API.MarketInfoExt) => {\n const index = favorites.findIndex((item) => item.name === symbol.symbol);\n if (index !== -1) {\n const element = favorites[index];\n const list = [...favorites];\n list.splice(index, 1);\n list.unshift(element);\n\n\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favorites\": list\n });\n setFavorites(list);\n }\n };\n\n\n const tabs = useMemo(() => {\n return favoriteTabs;\n }, [favoriteTabs]);\n\n\n const getLastSelFavTab = () => {\n // @ts-ignore\n const curData = configStore.get(marketsKey)[\"lastSelectedFavoriteTab\"];\n return (curData || { name: \"Popular\", id: 1 }) as FavoriteTab;\n };\n\n const updateSelectedFavoriteTab = (tab: FavoriteTab) => {\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n lastSelectedFavoriteTab: tab\n });\n };\n\n return [\n markets || [],\n {\n favoriteTabs: tabs,\n favorites,\n recent,\n addToHistory,\n // updateFavoriteTabs(\"tab\", operator: {add/update/delete})\n updateFavoriteTabs,\n updateSymbolFavoriteState,\n pinToTop,\n getLastSelFavTab,\n updateSelectedFavoriteTab,\n },\n ] as const;\n}"],"names":["useContext","useMemo","useState","useMarketsStream","OrderlyContext","useSymbolsInfo","MarketsType","useMarkets","type","marketsKey","data","configStore","publicInfo","get","jsonStr","localStorage","getItem","set","JSON","parse","defaultTab","name","id","recent","favorites","tabs","favoriteTabs","lastSelectFavoriteTab","getFavoriteTabs","getFavorites","curData","result","index","length","favData","favTabs","filter","tab","findIndex","item","push","getOr","getRecent","e","setFavoriteTabs","setFavorites","setRecent","updateFavoriteTabs","operator","saveTabs","Array","isArray","add","update","delete","splice","setRecentData","symbol","unshift","setFavoritesData","remove","favorite","getData","localData","keys","map","includes","favoritesData","favoriteKeys","element","isFavorite","fIndex","imr","undefined","leverage","addToHistory","updateSymbolFavoriteState","del","markets","pinToTop","list","getLastSelFavTab","updateSelectedFavoriteTab","lastSelectedFavoriteTab"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAAsBA,UAAU,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAQ;AACnE,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,cAAc,QAAQ,oBAAoB;AAGnD,SAASC,cAAc,QAAQ,mBAAmB;;UAEtCC;;;;GAAAA,gBAAAA;AAyCZ,OAAO,MAAMC,aAAa,CAACC;IAEvB,MAAMC,aAAa;IAEnB,MAAM,EAAEC,IAAI,EAAE,GAAGP;IACjB,MAAM,EAAEQ,WAAW,EAAE,GAAGX,WAAWI;IAEnC,6BAA6B;IAC7B,MAAMQ,aAAaP;IAEnB,IAAI,CAACM,YAAYE,GAAG,CAACJ,aAAa;QAC9B,MAAMK,UAAUC,aAAaC,OAAO,CAACP;QACrC,IAAIK,SAAS;YACTH,YAAYM,GAAG,CAACR,YAAYS,KAAKC,KAAK,CAACL;QAC3C,OAAO;YACH,MAAMM,aAAa;gBAAEC,MAAM;gBAAWC,IAAI;YAAE;YAC5CX,YAAYM,GAAG,CAACR,YAAY;gBACxBc,QAAQ,EAAE;gBACVC,WAAW;oBACP;wBAAEH,MAAM;wBAAiBI,MAAM;4BAAC;gCAAE,GAAGL,UAAU;4BAAC;yBAAE;oBAAC;oBACnD;wBAAEC,MAAM;wBAAiBI,MAAM;4BAAC;gCAAE,GAAGL,UAAU;4BAAC;yBAAE;oBAAC;iBACtD;gBACDM,cAAc;oBAAC;wBAAE,GAAGN,UAAU;oBAAC;iBAAE;gBACjCO,uBAAuB;oBAAE,GAAGP,UAAU;gBAAC;YAC3C;QACJ;IACJ;IAEA,MAAMQ,kBAAkB3B,QAAQ;QAC5B,aAAa;QACb,MAAMwB,OAAOd,YAAYE,GAAG,CAACJ,WAAW,CAAC,eAAe;QACxD,OAAQgB,QAAQ;YAAC;gBAAEJ,MAAM;gBAAWC,IAAI;YAAE;SAAE;IAChD,GAAG,EAAE;IAEL,MAAMO,eAAe5B,QAAQ;QACzB,aAAa;QACb,MAAM6B,UAAWnB,YAAYE,GAAG,CAACJ,WAAY,CAAC,YAAY,IAAI,EAAE;QAChE,MAAMgB,OAAOG;QACb,MAAMG,SAAS,EAAE;QACjB,IAAK,IAAIC,QAAQ,GAAGA,QAAQF,QAAQG,MAAM,EAAED,QAAS;YACjD,MAAME,UAAUJ,OAAO,CAACE,MAAM;YAC9B,IAAIG,UAAUD,QAAQT,IAAI,CAACW,MAAM,CAAC,CAACC,MAAQZ,KAAKa,SAAS,CAAC,CAACC,OAASF,IAAIf,EAAE,KAAKiB,KAAKjB,EAAE,MAAM,CAAC;YAC7F,IAAIa,QAAQF,MAAM,GAAG,GAAG;gBACpBF,OAAOS,IAAI,CAAC;oBAAE,GAAGN,OAAO;oBAAET,MAAMU;gBAAQ;YAC5C;QAEJ;QACAxB,YAAYM,GAAG,CAACR,YAAY;YAAE,GAAGE,YAAY8B,KAAK,CAAChC,YAAY,CAAC,EAAE;YAAEe,WAAWO;QAAO;QACtF,iFAAiF;QAEjF,OAAOA;IACX,GAAG;QAACpB;KAAY;IAEhB,MAAM+B,YAAYzC,QAAQ;QACtB,aAAa;QACb,MAAM6B,UAAUnB,YAAYE,GAAG,CAACJ,WAAW,CAAC,SAAS;QACrD,OAAO,AAAEqB,CAAAA,WAAW,EAAE,AAAD,EAAgBM,MAAM,CAAC,CAACO,IAAMA;IACvD,GAAG,EAAE;IAEL,MAAM,CAACjB,cAAckB,gBAAgB,GAAG1C,SAAS0B;IACjD,MAAM,CAACJ,WAAWqB,aAAa,GAAG3C,SAAS2B;IAC3C,MAAM,CAACN,QAAQuB,UAAU,GAAG5C,SAASwC;IAErC,MAAMK,qBAAqB,CAACV,KAAkCW;QAM1D,MAAMC,WAAW,CAACxB;YACdmB,gBAAgBnB;YAChBd,YAAYM,GAAG,CAACR,YAAY;gBACxB,GAAGE,YAAY8B,KAAK,CAAChC,YAAY,CAAC,EAAE;gBACpC,gBAAgBgB;YACpB;QACJ;QAEA,IAAIyB,MAAMC,OAAO,CAACd,MAAM;YACpBY,SAASZ;YACT;QACJ;QAEA,IAAIZ,OAAO;eAAIC;SAAa;QAC5B,MAAMM,QAAQP,KAAKa,SAAS,CAAC,CAACC,OAASA,KAAKjB,EAAE,KAAKe,IAAIf,EAAE;QACzD,IAAI0B,UAAUI,KAAK;YACf3B,KAAKe,IAAI,CAACH;QACd,OAAO,IAAIW,UAAUK,QAAQ;YACzB,IAAIrB,UAAU,CAAC,GAAG;gBACdP,IAAI,CAACO,MAAM,GAAGK;YAClB;QACJ,OAAO,IAAIW,UAAUM,QAAQ;YACzB,IAAItB,UAAU,CAAC,GAAG;gBACdP,KAAK8B,MAAM,CAACvB,OAAO;YAEvB;QACJ;QACAiB,SAASxB;IACb;IAEA,MAAM+B,gBAAgB,CAACC;QACnB,MAAM3B,UAAU;eAAIP;SAAO;QAC3B,MAAMS,QAAQF,QAAQQ,SAAS,CAAC,CAACC,OAASA,KAAKlB,IAAI,IAAIoC,OAAOA,MAAM;QACpE,IAAIzB,UAAU,CAAC,GAAG;YACdF,QAAQyB,MAAM,CAACvB,OAAO;QAC1B;QACAF,QAAQ4B,OAAO,CAAC;YAAErC,MAAMoC,OAAOA,MAAM;QAAC;QACtC9C,YAAYM,GAAG,CAACR,YAAY;YACxB,GAAGE,YAAY8B,KAAK,CAAChC,YAAY,CAAC,EAAE;YACpC,UAAUqB;QACd;QACAgB,UAAUhB;IACd;IAIA,MAAM6B,mBAAmB,CAACF,QAA2BpB,KAAkCuB,SAAkB,KAAK;QAE1G,MAAM9B,UAAU;eAAIN;SAAU;QAC9B,MAAMQ,QAAQF,QAAQQ,SAAS,CAAC,CAACC,OAASA,KAAKlB,IAAI,IAAIoC,OAAOA,MAAM;QAEpE,IAAIzB,UAAU,CAAC,GAAG;YACd,IAAIkB,MAAMC,OAAO,CAACd,MAAM;gBACpB,IAAIA,IAAIJ,MAAM,GAAG,GAAG;oBAChBH,QAAQ4B,OAAO,CAAC;wBAAErC,MAAMoC,OAAOA,MAAM;wBAAEhC,MAAMY;oBAAI;gBACrD;YACJ,OAAO;gBACH,IAAI,CAACuB,QAAQ;oBACT,SAAS;oBACT9B,QAAQ4B,OAAO,CAAC;wBAAErC,MAAMoC,OAAOA,MAAM;wBAAEhC,MAAM;4BAACY;yBAAI;oBAAC;gBACvD;YACJ;QAEJ,OAAO;YACH,MAAMwB,WAAW/B,OAAO,CAACE,MAAM;YAC/B,IAAIkB,MAAMC,OAAO,CAACd,MAAM;gBACpB,IAAIA,IAAIJ,MAAM,KAAK,GAAG;oBAClB,SAAS;oBACTH,QAAQyB,MAAM,CAACvB,OAAO;gBAC1B,OAAO;oBACH,YAAY;oBACZF,OAAO,CAACE,MAAM,GAAG;wBAAE,GAAG6B,QAAQ;wBAAEpC,MAAMY;oBAAI;gBAC9C;YACJ,OAAO;gBACH,IAAIuB,QAAQ;oBACR,MAAMnC,OAAOoC,SAASpC,IAAI,CAACW,MAAM,CAAC,CAACC,MAAQA,IAAIf,EAAE,IAAIe,IAAIf,EAAE;oBAC3D,IAAIG,KAAKQ,MAAM,KAAK,GAAG;wBACnBH,QAAQyB,MAAM,CAACvB,OAAO;oBAC1B,OAAO;wBACHF,OAAO,CAACE,MAAM,GAAG;4BAAE,GAAG6B,QAAQ;4BAAEpC;wBAAK;oBACzC;gBACJ,OAAO;oBACH,MAAMA,OAAOoC,SAASpC,IAAI;oBAC1BA,KAAKe,IAAI,CAACH;oBACVP,OAAO,CAACE,MAAM,GAAG;wBAAE,GAAG6B,QAAQ;wBAAEpC;oBAAK;gBACzC;YACJ;QACJ;QAEAd,YAAYM,GAAG,CAACR,YAAY;YACxB,GAAGE,YAAY8B,KAAK,CAAChC,YAAY,CAAC,EAAE;YACpC,aAAaqB;QACjB;QACAe,aAAa,IAAMf;IACvB;IAEA,MAAMgC,UAAU,CAACtD;QAGb,WAAW;QACX,MAAMuD,YAAYvD,aAAiC;eAAIgB;SAAU,GAAG;eAAID;SAAO;QAC/E,SAAS;QACT,MAAMyC,OAAOD,UAAUE,GAAG,CAAC,CAAC1B,OAASA,KAAKlB,IAAI;QAC9C,MAAMe,SAAS5B,YACXE,OACAA,MAAM0B,OAAO,CAACG,OAASyB,KAAKE,QAAQ,CAAC3B,KAAKkB,MAAM;QAEpD,MAAMU,gBAAgB;eAAI3C;SAAU;QACpC,MAAM4C,eAAeD,cAAcF,GAAG,CAAC,CAAC1B,OAASA,KAAKlB,IAAI;QAC1D,IAAIe,QAAQ;YACR,IAAK,IAAIJ,QAAQ,GAAGA,QAAQI,OAAOH,MAAM,EAAED,QAAS;gBAChD,MAAMqC,UAAUjC,MAAM,CAACJ,MAAM;gBAC7B,MAAMsC,aAAa9D,YACf,OACC4D,aAAaF,QAAQ,CAACG,QAAQZ,MAAM;gBAEzC,MAAMc,SAASJ,cAAc7B,SAAS,CAAC,CAACC,OAASA,KAAKlB,IAAI,KAAKgD,QAAQZ,MAAM;gBAC7E,MAAMhC,OAAO8C,WAAW,CAAC,IAAI,EAAE,GAAGJ,aAAa,CAACI,OAAO,CAAC9C,IAAI;gBAE5D,IAAI+C,MAAMC;gBACV,IAAI7D,YAAY;oBACZ4D,MAAK5D,YAAY,CAACyD,QAAQZ,MAAM,CAAC,CAAC;gBACtC;gBAEArB,MAAM,CAACJ,MAAM,GAAG;oBACZ,GAAGI,MAAM,CAACJ,MAAM;oBAChB,aAAa;oBACbsC;oBACA7C;oBACAiD,UAAUF,MAAM,IAAIA,MAAMC;gBAC9B;YACJ;QACJ;QAEA,OAAOrC;IAEX;IAEA,MAAMuC,eAAe,CAAClB;QAClBD,cAAcC;IAClB;IAEA,MAAMmB,4BAA4B,CAACnB,QAA2BpB,KAAkCwC,MAAe,KAAK;QAChHlB,iBAAiBF,QAAQpB,KAAKwC;IAClC;IAEA,MAAMC,UAAUhB,QAAQtD;IAExB,MAAMuE,WAAW,CAACtB;QACd,MAAMzB,QAAQR,UAAUc,SAAS,CAAC,CAACC,OAASA,KAAKlB,IAAI,KAAKoC,OAAOA,MAAM;QACvE,IAAIzB,UAAU,CAAC,GAAG;YACd,MAAMqC,UAAU7C,SAAS,CAACQ,MAAM;YAChC,MAAMgD,OAAO;mBAAIxD;aAAU;YAC3BwD,KAAKzB,MAAM,CAACvB,OAAO;YACnBgD,KAAKtB,OAAO,CAACW;YAGb1D,YAAYM,GAAG,CAACR,YAAY;gBACxB,GAAGE,YAAY8B,KAAK,CAAChC,YAAY,CAAC,EAAE;gBACpC,aAAauE;YACjB;YACAnC,aAAamC;QACjB;IACJ;IAGA,MAAMvD,OAAOxB,QAAQ;QACjB,OAAOyB;IACX,GAAG;QAACA;KAAa;IAGjB,MAAMuD,mBAAmB;QACrB,aAAa;QACb,MAAMnD,UAAUnB,YAAYE,GAAG,CAACJ,WAAW,CAAC,0BAA0B;QACtE,OAAQqB,WAAW;YAAET,MAAM;YAAWC,IAAI;QAAE;IAChD;IAEA,MAAM4D,4BAA4B,CAAC7C;QAC/B1B,YAAYM,GAAG,CAACR,YAAY;YACxB,GAAGE,YAAY8B,KAAK,CAAChC,YAAY,CAAC,EAAE;YACpC0E,yBAAyB9C;QAC7B;IACJ;IAEA,OAAO;QACHyC,WAAW,EAAE;QACb;YACIpD,cAAcD;YACdD;YACAD;YACAoD;YACA,2DAA2D;YAC3D5B;YACA6B;YACAG;YACAE;YACAC;QACJ;KACH;AACL,EAAC"}
@@ -5,23 +5,23 @@ export declare const useTPSLOrder: (position: Partial<API.PositionTPSLExt> & Pic
5
5
  * it is usually used when editing order
6
6
  */
7
7
  defaultOrder?: API.AlgoOrder;
8
- }) => [Partial<import("@orderly.network/types").Optional<import("@orderly.network/types").BaseAlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL & {
8
+ }) => [Partial<Omit<import("@orderly.network/types").BaseAlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL>, "type" | "side" | "order_type" | "trigger_price"> & Partial<Pick<import("@orderly.network/types").BaseAlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL>, "type" | "side" | "order_type" | "trigger_price">> & {
9
9
  tp_pnl: number;
10
10
  tp_offset: number;
11
11
  tp_offset_percentage: number;
12
12
  sl_pnl: number;
13
13
  sl_offset: number;
14
14
  sl_offset_percentage: number;
15
- }>, "type" | "side" | "order_type" | "trigger_price">>, {
15
+ }>, {
16
16
  setValue: (key: string, value: string | number) => void;
17
- setValues: (values: Partial<Partial<import("@orderly.network/types").Optional<import("@orderly.network/types").BaseAlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL & {
17
+ setValues: (values: Partial<Partial<Omit<import("@orderly.network/types").BaseAlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL>, "type" | "side" | "order_type" | "trigger_price"> & Partial<Pick<import("@orderly.network/types").BaseAlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL>, "type" | "side" | "order_type" | "trigger_price">> & {
18
18
  tp_pnl: number;
19
19
  tp_offset: number;
20
20
  tp_offset_percentage: number;
21
21
  sl_pnl: number;
22
22
  sl_offset: number;
23
23
  sl_offset_percentage: number;
24
- }>, "type" | "side" | "order_type" | "trigger_price">>>) => void;
24
+ }>>) => void;
25
25
  submit: () => Promise<void>;
26
26
  errors: import("./useTPSL").ValidateError | null;
27
27
  validate: () => Promise<import("@orderly.network/types").AlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL | import("@orderly.network/types").AlgoOrderRootType.POSITIONAL_TP_SL>>;
@@ -1,6 +1,6 @@
1
1
  import { API, AlgoOrderEntity } from "@orderly.network/types";
2
2
  import { AlgoOrderRootType } from "@orderly.network/types";
3
- export type ComputedAlgoOrder = Partial<AlgoOrderEntity<AlgoOrderRootType.TP_SL & {
3
+ export type ComputedAlgoOrder = Partial<AlgoOrderEntity<AlgoOrderRootType.TP_SL> & {
4
4
  /**
5
5
  * Computed take profit
6
6
  */
@@ -13,7 +13,7 @@ export type ComputedAlgoOrder = Partial<AlgoOrderEntity<AlgoOrderRootType.TP_SL
13
13
  sl_pnl: number;
14
14
  sl_offset: number;
15
15
  sl_offset_percentage: number;
16
- }>>;
16
+ }>;
17
17
  export type ValidateError = {
18
18
  [P in keyof ComputedAlgoOrder]?: {
19
19
  type: string;
@@ -25,7 +25,7 @@ export type ValidateError = {
25
25
  */
26
26
  export declare const useTaskProfitAndStopLossInternal: (position: Partial<API.PositionTPSLExt> & Pick<API.PositionTPSLExt, "symbol" | "average_open_price" | "position_qty">, options?: {
27
27
  defaultOrder?: API.AlgoOrder;
28
- }) => [Partial<import("@orderly.network/types").Optional<import("@orderly.network/types").BaseAlgoOrderEntity<AlgoOrderRootType.TP_SL & {
28
+ }) => [Partial<Omit<import("@orderly.network/types").BaseAlgoOrderEntity<AlgoOrderRootType.TP_SL>, "type" | "side" | "order_type" | "trigger_price"> & Partial<Pick<import("@orderly.network/types").BaseAlgoOrderEntity<AlgoOrderRootType.TP_SL>, "type" | "side" | "order_type" | "trigger_price">> & {
29
29
  /**
30
30
  * Computed take profit
31
31
  */
@@ -38,7 +38,7 @@ export declare const useTaskProfitAndStopLossInternal: (position: Partial<API.Po
38
38
  sl_pnl: number;
39
39
  sl_offset: number;
40
40
  sl_offset_percentage: number;
41
- }>, "type" | "side" | "order_type" | "trigger_price">>, {
41
+ }>, {
42
42
  /**
43
43
  * Update the take profit and stop loss order, this will merge the new data with the old one
44
44
  */
@@ -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,CACb,iBAAiB,CAAC,KAAK,GAAG;IACxB;;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,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;IAhCG;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;IAE5B;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;;IA2B9B;;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;EAmSJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport {\n API,\n AlgoOrderEntity,\n OrderSide,\n SDKError,\n} from \"@orderly.network/types\";\nimport { UpdateOrderKey, calculateHelper } from \"./utils\";\nimport { useMutation } from \"../../useMutation\";\nimport { OrderFactory } from \"../../services/orderCreator/factory\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { TPSLPositionOrderCreator } from \"../../services/orderCreator/tpslPositionOrderCreator\";\nimport { findTPSLFromOrder } from \"../usePositionStream/utils\";\nimport { useSymbolsInfo } from \"../useSymbolsInfo\";\nimport { useMarkPrice } from \"../useMarkPrice\";\nimport { omit } from \"ramda\";\n\nexport type ComputedAlgoOrder = Partial<\n AlgoOrderEntity<\n AlgoOrderRootType.TP_SL & {\n /**\n * Computed take profit\n */\n tp_pnl: number;\n tp_offset: number;\n tp_offset_percentage: number;\n\n /**\n * Computed stop loss\n */\n sl_pnl: number;\n sl_offset: number;\n sl_offset_percentage: number;\n }\n >\n>;\n\nexport type ValidateError = {\n [P in keyof ComputedAlgoOrder]?: {\n type: string;\n message: string;\n };\n};\n\n/**\n * @hidden\n */\nexport const useTaskProfitAndStopLossInternal = (\n position: Partial<API.PositionTPSLExt> &\n Pick<API.PositionTPSLExt, \"symbol\" | \"average_open_price\" | \"position_qty\">,\n options?: {\n defaultOrder?: API.AlgoOrder;\n }\n): [\n /**\n * return the computed & formatted order\n */\n ComputedAlgoOrder,\n {\n /**\n * Update the take profit and stop loss order, this will merge the new data with the old one\n */\n setValue: (key: string, value: number | string) => void;\n setValues: (values: Partial<ComputedAlgoOrder>) => void;\n // getOrderEntity: () => AlgoOrderEntity<AlgoOrderRootType.TP_SL|AlgoOrderRootType.POSITIONAL_TP_SL>;\n /**\n * Submit the TP/SL order\n */\n submit: () => Promise<void>;\n // /**\n // * Create the take profit and stop loss order, auto-detect the order type\n // */\n // create: () => Promise<void>;\n // update: (orderId: number) => Promise<any>;\n errors: ValidateError | null;\n /**\n *\n */\n validate: () => Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n >;\n }\n] => {\n const [order, setOrder] = useState<\n ComputedAlgoOrder & {\n ignoreValidate?: boolean;\n }\n >({\n algo_order_id: options?.defaultOrder?.algo_order_id,\n symbol: position.symbol as string,\n side: Number(position.position_qty) > 0 ? OrderSide.BUY : OrderSide.SELL,\n quantity:\n options?.defaultOrder?.quantity || Math.abs(position.position_qty),\n algo_type: options?.defaultOrder?.algo_type as AlgoOrderRootType,\n });\n\n const symbolInfo = useSymbolsInfo()[position.symbol!]();\n const { data: markPrice } = useMarkPrice(order.symbol!);\n\n const [doCreateOrder] = useMutation(\"/v1/algo/order\");\n const [doUpdateOrder] = useMutation(\"/v1/algo/order\", \"PUT\");\n const [doDeleteOrder] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [errors, setErrors] = useState<ValidateError | null>(null);\n\n useEffect(() => {\n if (!options?.defaultOrder) return;\n const trigger_prices = findTPSLFromOrder(options.defaultOrder!);\n if (trigger_prices.tp_trigger_price) {\n setOrderValue(\"tp_trigger_price\", trigger_prices.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n if (trigger_prices.sl_trigger_price) {\n setOrderValue(\"sl_trigger_price\", trigger_prices.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n }, []);\n\n const _setOrderValue = (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n // console.log(\"[updateOrder:]\", key, value, order.quantity);\n\n setOrder((prev) => {\n const side = position.position_qty! > 0 ? OrderSide.BUY : OrderSide.SELL;\n\n if (key === \"sl_pnl\") {\n value = value ? `-${value}` : \"\";\n }\n\n const newValue = calculateHelper(\n key,\n {\n key,\n value,\n entryPrice: position.average_open_price!,\n qty:\n side === OrderSide.BUY\n ? Number(prev.quantity)!\n : -Number(prev.quantity)!,\n orderSide: side,\n },\n {\n symbol: symbolInfo,\n }\n );\n\n return {\n ...prev,\n ...newValue,\n ignoreValidate: options?.ignoreValidate,\n };\n });\n };\n\n const setOrderValue = async (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n if (key === \"quantity\") {\n setOrder((prev) => ({ ...prev, quantity: value }));\n\n if (typeof order.sl_trigger_price !== \"undefined\") {\n _setOrderValue(\"sl_trigger_price\", order.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n if (typeof order.tp_trigger_price !== \"undefined\") {\n _setOrderValue(\"tp_trigger_price\", order.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n return;\n }\n\n _setOrderValue(key, value, options);\n };\n\n /**\n * calculate value config\n */\n const valueConfig = {\n symbol: symbolInfo,\n maxQty: Math.abs(position.position_qty),\n markPrice,\n };\n\n // auto validate when order changed\n useEffect(() => {\n requestAnimationFrame(() => {\n if (order.ignoreValidate) return;\n const orderCreator = getOrderCreator();\n orderCreator\n .validate(order as AlgoOrderEntity, valueConfig)\n .then((errors) => {\n setErrors(errors);\n });\n });\n }, [order, valueConfig.markPrice, order.quantity]);\n\n const setValues = (values: Partial<ComputedAlgoOrder>) => {\n const keys = Object.keys(values);\n keys.forEach((key) => {\n setOrderValue(\n key as UpdateOrderKey,\n values[key as keyof ComputedAlgoOrder] as number | string\n );\n });\n };\n\n const validate = (): Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n > => {\n const orderCreator = getOrderCreator();\n\n return new Promise((resolve, reject) => {\n return orderCreator\n .validate(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n .then((errors) => {\n console.log(\"errors::\", errors);\n\n if (errors) {\n setErrors(errors);\n return reject(errors);\n }\n\n resolve(\n orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n );\n });\n });\n };\n\n // useEffect(() => {\n // // setError(validate());\n // }, [order]);\n\n const compare = (): boolean => {\n const quantityNum = Number(order.quantity);\n if (isNaN(quantityNum)) return false;\n return quantityNum === Math.abs(Number(position.position_qty));\n };\n\n const getOrderCreator = () => {\n // if the order is existed, and the order type is POSITIONAL_TP_SL, always return POSITIONAL_TP_SL\n // else use qty to determine the order type\n if (options?.defaultOrder?.algo_type === AlgoOrderRootType.TP_SL) {\n return OrderFactory.create(AlgoOrderRootType.TP_SL);\n }\n return OrderFactory.create(\n compare() ? AlgoOrderRootType.POSITIONAL_TP_SL : AlgoOrderRootType.TP_SL\n );\n };\n\n const submit = async () => {\n const defaultOrder = options?.defaultOrder;\n const orderId = defaultOrder?.algo_order_id;\n const algoType = defaultOrder?.algo_type;\n\n // if algo_order_id is not existed, create new order\n if (!orderId) {\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = POSITION_TP_SL\n if (algoType === AlgoOrderRootType.POSITIONAL_TP_SL) {\n // if order.qty = position.qty, update order\n if (compare()) {\n return updateOrder(orderId!);\n }\n // if order.qty != position.qty, create new tp/sl order\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = TP_SL, delete order and create new order\n\n return updateOrder(orderId!);\n };\n\n const createOrder = () => {\n const orderCreator = getOrderCreator();\n\n const orderBody = orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n );\n\n if (orderBody.child_orders.length === 0) {\n throw new SDKError(\"No child orders\");\n }\n\n // filter the order that is not activated\n orderBody.child_orders = orderBody.child_orders.filter(\n (order: API.AlgoOrderExt) => order.is_activated\n );\n\n return doCreateOrder(orderBody);\n };\n\n const deleteOrder = (orderId: number, symbol: string): Promise<any> => {\n return doDeleteOrder(null, {\n order_id: orderId,\n symbol,\n });\n };\n\n const updateOrder = (orderId: number): Promise<any> => {\n const orderCreator = getOrderCreator() as TPSLPositionOrderCreator;\n\n const [updatedOrderEntity, orderEntity] = orderCreator.crateUpdateOrder(\n // @ts-ignore\n order,\n options?.defaultOrder,\n valueConfig\n );\n\n if (updatedOrderEntity.child_orders.length === 0) {\n return Promise.resolve(\"Not any order needs to update\");\n }\n\n const needDelete =\n orderEntity.child_orders.filter(\n (order) =>\n typeof order.is_activated === \"boolean\" && !order.is_activated\n ).length === orderEntity.child_orders.length;\n\n if (needDelete) {\n return deleteOrder(orderId, order.symbol!);\n }\n\n return doUpdateOrder({\n order_id: orderId,\n ...updatedOrderEntity,\n });\n };\n\n return [\n omit([\"ignoreValidate\"], order) as ComputedAlgoOrder,\n {\n submit,\n\n // create: submit,\n\n // update: updateOrder,/\n setValue: setOrderValue,\n setValues,\n // createPositionTPSL: submit,\n // createTPSL: submit,\n validate,\n errors,\n },\n ];\n};\n"],"names":["useEffect","useState","OrderSide","SDKError","calculateHelper","useMutation","OrderFactory","AlgoOrderRootType","findTPSLFromOrder","useSymbolsInfo","useMarkPrice","omit","useTaskProfitAndStopLossInternal","position","options","order","setOrder","algo_order_id","defaultOrder","symbol","side","Number","position_qty","BUY","SELL","quantity","Math","abs","algo_type","symbolInfo","data","markPrice","doCreateOrder","doUpdateOrder","doDeleteOrder","errors","setErrors","trigger_prices","tp_trigger_price","setOrderValue","ignoreValidate","sl_trigger_price","_setOrderValue","key","value","prev","newValue","entryPrice","average_open_price","qty","orderSide","valueConfig","maxQty","requestAnimationFrame","orderCreator","getOrderCreator","validate","then","setValues","values","keys","Object","forEach","Promise","resolve","reject","create","compare","quantityNum","isNaN","TP_SL","POSITIONAL_TP_SL","submit","orderId","algoType","createOrder","updateOrder","orderBody","child_orders","length","filter","is_activated","deleteOrder","order_id","updatedOrderEntity","orderEntity","crateUpdateOrder","needDelete","setValue"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport {\n API,\n AlgoOrderEntity,\n OrderSide,\n SDKError,\n} from \"@orderly.network/types\";\nimport { UpdateOrderKey, calculateHelper } from \"./utils\";\nimport { useMutation } from \"../../useMutation\";\nimport { OrderFactory } from \"../../services/orderCreator/factory\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { TPSLPositionOrderCreator } from \"../../services/orderCreator/tpslPositionOrderCreator\";\nimport { findTPSLFromOrder } from \"../usePositionStream/utils\";\nimport { useSymbolsInfo } from \"../useSymbolsInfo\";\nimport { useMarkPrice } from \"../useMarkPrice\";\nimport { omit } from \"ramda\";\n\nexport type ComputedAlgoOrder = Partial<\n AlgoOrderEntity<AlgoOrderRootType.TP_SL> & {\n /**\n * Computed take profit\n */\n tp_pnl: number;\n tp_offset: number;\n tp_offset_percentage: number;\n\n /**\n * Computed stop loss\n */\n sl_pnl: number;\n sl_offset: number;\n sl_offset_percentage: number;\n }\n>;\n\nexport type ValidateError = {\n [P in keyof ComputedAlgoOrder]?: {\n type: string;\n message: string;\n };\n};\n\n/**\n * @hidden\n */\nexport const useTaskProfitAndStopLossInternal = (\n position: Partial<API.PositionTPSLExt> &\n Pick<API.PositionTPSLExt, \"symbol\" | \"average_open_price\" | \"position_qty\">,\n options?: {\n defaultOrder?: API.AlgoOrder;\n }\n): [\n /**\n * return the computed & formatted order\n */\n ComputedAlgoOrder,\n {\n /**\n * Update the take profit and stop loss order, this will merge the new data with the old one\n */\n setValue: (key: string, value: number | string) => void;\n setValues: (values: Partial<ComputedAlgoOrder>) => void;\n // getOrderEntity: () => AlgoOrderEntity<AlgoOrderRootType.TP_SL|AlgoOrderRootType.POSITIONAL_TP_SL>;\n /**\n * Submit the TP/SL order\n */\n submit: () => Promise<void>;\n // /**\n // * Create the take profit and stop loss order, auto-detect the order type\n // */\n // create: () => Promise<void>;\n // update: (orderId: number) => Promise<any>;\n errors: ValidateError | null;\n /**\n *\n */\n validate: () => Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n >;\n }\n] => {\n const [order, setOrder] = useState<\n ComputedAlgoOrder & {\n ignoreValidate?: boolean;\n }\n >({\n algo_order_id: options?.defaultOrder?.algo_order_id,\n symbol: position.symbol as string,\n side: Number(position.position_qty) > 0 ? OrderSide.BUY : OrderSide.SELL,\n quantity:\n options?.defaultOrder?.quantity || Math.abs(position.position_qty),\n algo_type: options?.defaultOrder?.algo_type as AlgoOrderRootType,\n });\n\n const symbolInfo = useSymbolsInfo()[position.symbol!]();\n const { data: markPrice } = useMarkPrice(order.symbol!);\n\n const [doCreateOrder] = useMutation(\"/v1/algo/order\");\n const [doUpdateOrder] = useMutation(\"/v1/algo/order\", \"PUT\");\n const [doDeleteOrder] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [errors, setErrors] = useState<ValidateError | null>(null);\n\n useEffect(() => {\n if (!options?.defaultOrder) return;\n const trigger_prices = findTPSLFromOrder(options.defaultOrder!);\n if (trigger_prices.tp_trigger_price) {\n setOrderValue(\"tp_trigger_price\", trigger_prices.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n if (trigger_prices.sl_trigger_price) {\n setOrderValue(\"sl_trigger_price\", trigger_prices.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n }, []);\n\n const _setOrderValue = (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n // console.log(\"[updateOrder:]\", key, value, order.quantity);\n\n setOrder((prev) => {\n const side = position.position_qty! > 0 ? OrderSide.BUY : OrderSide.SELL;\n\n if (key === \"sl_pnl\") {\n value = value ? `-${value}` : \"\";\n }\n\n const newValue = calculateHelper(\n key,\n {\n key,\n value,\n entryPrice: position.average_open_price!,\n qty:\n side === OrderSide.BUY\n ? Number(prev.quantity)!\n : -Number(prev.quantity)!,\n orderSide: side,\n },\n {\n symbol: symbolInfo,\n }\n );\n\n return {\n ...prev,\n ...newValue,\n ignoreValidate: options?.ignoreValidate,\n };\n });\n };\n\n const setOrderValue = async (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n if (key === \"quantity\") {\n setOrder((prev) => ({ ...prev, quantity: value }));\n\n if (typeof order.sl_trigger_price !== \"undefined\") {\n _setOrderValue(\"sl_trigger_price\", order.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n if (typeof order.tp_trigger_price !== \"undefined\") {\n _setOrderValue(\"tp_trigger_price\", order.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n return;\n }\n\n _setOrderValue(key, value, options);\n };\n\n /**\n * calculate value config\n */\n const valueConfig = {\n symbol: symbolInfo,\n maxQty: Math.abs(position.position_qty),\n markPrice,\n };\n\n // auto validate when order changed\n useEffect(() => {\n requestAnimationFrame(() => {\n if (order.ignoreValidate) return;\n const orderCreator = getOrderCreator();\n orderCreator\n .validate(order as AlgoOrderEntity, valueConfig)\n .then((errors) => {\n setErrors(errors);\n });\n });\n }, [order, valueConfig.markPrice, order.quantity]);\n\n const setValues = (values: Partial<ComputedAlgoOrder>) => {\n const keys = Object.keys(values);\n keys.forEach((key) => {\n setOrderValue(\n key as UpdateOrderKey,\n values[key as keyof ComputedAlgoOrder] as number | string\n );\n });\n };\n\n const validate = (): Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n > => {\n const orderCreator = getOrderCreator();\n\n return new Promise((resolve, reject) => {\n return orderCreator\n .validate(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n .then((errors) => {\n console.log(\"errors::\", errors);\n\n if (errors) {\n setErrors(errors);\n return reject(errors);\n }\n\n resolve(\n orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n );\n });\n });\n };\n\n // useEffect(() => {\n // // setError(validate());\n // }, [order]);\n\n const compare = (): boolean => {\n const quantityNum = Number(order.quantity);\n if (isNaN(quantityNum)) return false;\n return quantityNum === Math.abs(Number(position.position_qty));\n };\n\n const getOrderCreator = () => {\n // if the order is existed, and the order type is POSITIONAL_TP_SL, always return POSITIONAL_TP_SL\n // else use qty to determine the order type\n if (options?.defaultOrder?.algo_type === AlgoOrderRootType.TP_SL) {\n return OrderFactory.create(AlgoOrderRootType.TP_SL);\n }\n return OrderFactory.create(\n compare() ? AlgoOrderRootType.POSITIONAL_TP_SL : AlgoOrderRootType.TP_SL\n );\n };\n\n const submit = async () => {\n const defaultOrder = options?.defaultOrder;\n const orderId = defaultOrder?.algo_order_id;\n const algoType = defaultOrder?.algo_type;\n\n // if algo_order_id is not existed, create new order\n if (!orderId) {\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = POSITION_TP_SL\n if (algoType === AlgoOrderRootType.POSITIONAL_TP_SL) {\n // if order.qty = position.qty, update order\n if (compare()) {\n return updateOrder(orderId!);\n }\n // if order.qty != position.qty, create new tp/sl order\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = TP_SL, delete order and create new order\n\n return updateOrder(orderId!);\n };\n\n const createOrder = () => {\n const orderCreator = getOrderCreator();\n\n const orderBody = orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n );\n\n if (orderBody.child_orders.length === 0) {\n throw new SDKError(\"No child orders\");\n }\n\n // filter the order that is not activated\n orderBody.child_orders = orderBody.child_orders.filter(\n (order: API.AlgoOrderExt) => order.is_activated\n );\n\n return doCreateOrder(orderBody);\n };\n\n const deleteOrder = (orderId: number, symbol: string): Promise<any> => {\n return doDeleteOrder(null, {\n order_id: orderId,\n symbol,\n });\n };\n\n const updateOrder = (orderId: number): Promise<any> => {\n const orderCreator = getOrderCreator() as TPSLPositionOrderCreator;\n\n const [updatedOrderEntity, orderEntity] = orderCreator.crateUpdateOrder(\n // @ts-ignore\n order,\n options?.defaultOrder,\n valueConfig\n );\n\n if (updatedOrderEntity.child_orders.length === 0) {\n return Promise.resolve(\"Not any order needs to update\");\n }\n\n const needDelete =\n orderEntity.child_orders.filter(\n (order) =>\n typeof order.is_activated === \"boolean\" && !order.is_activated\n ).length === orderEntity.child_orders.length;\n\n if (needDelete) {\n return deleteOrder(orderId, order.symbol!);\n }\n\n return doUpdateOrder({\n order_id: orderId,\n ...updatedOrderEntity,\n });\n };\n\n return [\n omit([\"ignoreValidate\"], order) as ComputedAlgoOrder,\n {\n submit,\n\n // create: submit,\n\n // update: updateOrder,/\n setValue: setOrderValue,\n setValues,\n // createPositionTPSL: submit,\n // createTPSL: submit,\n validate,\n errors,\n },\n ];\n};\n"],"names":["useEffect","useState","OrderSide","SDKError","calculateHelper","useMutation","OrderFactory","AlgoOrderRootType","findTPSLFromOrder","useSymbolsInfo","useMarkPrice","omit","useTaskProfitAndStopLossInternal","position","options","order","setOrder","algo_order_id","defaultOrder","symbol","side","Number","position_qty","BUY","SELL","quantity","Math","abs","algo_type","symbolInfo","data","markPrice","doCreateOrder","doUpdateOrder","doDeleteOrder","errors","setErrors","trigger_prices","tp_trigger_price","setOrderValue","ignoreValidate","sl_trigger_price","_setOrderValue","key","value","prev","newValue","entryPrice","average_open_price","qty","orderSide","valueConfig","maxQty","requestAnimationFrame","orderCreator","getOrderCreator","validate","then","setValues","values","keys","Object","forEach","Promise","resolve","reject","create","compare","quantityNum","isNaN","TP_SL","POSITIONAL_TP_SL","submit","orderId","algoType","createOrder","updateOrder","orderBody","child_orders","length","filter","is_activated","deleteOrder","order_id","updatedOrderEntity","orderEntity","crateUpdateOrder","needDelete","setValue"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,87 @@
1
+ export declare namespace RefferalAPI {
2
+ interface ReferralInfo {
3
+ referrer_info: Referrer;
4
+ referee_info: Referee;
5
+ }
6
+ type ReferralCode = {
7
+ "code": string;
8
+ "max_rebate_rate": number;
9
+ "referee_rebate_rate": number;
10
+ "referrer_rebate_rate": number;
11
+ "total_invites": number;
12
+ "total_traded": number;
13
+ };
14
+ type Referrer = {
15
+ "total_invites": number;
16
+ "total_traded": number;
17
+ "total_referee_volume": number;
18
+ "total_referee_fee": number;
19
+ "referral_codes": ReferralCode[];
20
+ "total_referrer_rebate": number;
21
+ "1d_invites": number;
22
+ "7d_invites": number;
23
+ "30d_invites": number;
24
+ "1d_traded": number;
25
+ "7d_traded": number;
26
+ "30d_traded": number;
27
+ "1d_referee_volume": number;
28
+ "7d_referee_volume": number;
29
+ "30d_referee_volume": number;
30
+ "1d_referee_fee": number;
31
+ "7d_referee_fee": number;
32
+ "30d_referee_fee": number;
33
+ "1d_referrer_rebate": number;
34
+ "7d_referrer_rebate": number;
35
+ "30d_referrer_rebate": number;
36
+ };
37
+ type Referee = {
38
+ "referer_code"?: string;
39
+ "referee_rebate_rate"?: number;
40
+ "1d_referee_rebate": number;
41
+ "7d_referee_rebate": number;
42
+ "30d_referee_rebate": number;
43
+ "total_referee_rebate": number;
44
+ };
45
+ type RefereeInfoItem = {
46
+ "account_id": string;
47
+ "code_binding_time": number;
48
+ "fee": number;
49
+ "referral_code": string;
50
+ "referral_rebate": number;
51
+ "register_time": number;
52
+ "trade_status": string;
53
+ "user_address": string;
54
+ "volume": number;
55
+ };
56
+ type UserVolStats = {
57
+ "perp_volume_last_30_days": number;
58
+ "perp_volume_last_7_days": number;
59
+ "perp_volume_ltd": number;
60
+ "perp_volume_ytd": number;
61
+ };
62
+ type Distribution = {
63
+ "amount": number;
64
+ "created_time": number;
65
+ "id": number;
66
+ "status": string;
67
+ "token": string;
68
+ "type": string;
69
+ "updated_time": number;
70
+ };
71
+ type ReferralRebateSummary = {
72
+ "referral_rebate": number;
73
+ "volume": number;
74
+ "fee": number;
75
+ "date": string;
76
+ };
77
+ type RefereeRebateSummary = {
78
+ "referee_rebate": number;
79
+ "fee": number;
80
+ "date": string;
81
+ };
82
+ type DayliVolume = {
83
+ date: string;
84
+ perp_volume: number;
85
+ };
86
+ }
87
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/referral/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/referral/api.ts"],"sourcesContent":["export declare namespace RefferalAPI {\n\n export interface ReferralInfo {\n referrer_info: Referrer,\n referee_info: Referee,\n }\n\n export type ReferralCode = {\n \"code\": string,\n \"max_rebate_rate\": number,\n \"referee_rebate_rate\": number,\n \"referrer_rebate_rate\": number,\n \"total_invites\": number,\n \"total_traded\": number\n };\n\n export type Referrer = {\n \"total_invites\": number,\n \"total_traded\": number,\n \"total_referee_volume\": number,\n \"total_referee_fee\": number,\n \"referral_codes\": ReferralCode[],\n \"total_referrer_rebate\": number,\n \"1d_invites\": number,\n \"7d_invites\": number,\n \"30d_invites\": number,\n \"1d_traded\": number,\n \"7d_traded\": number,\n \"30d_traded\": number,\n \"1d_referee_volume\": number,\n \"7d_referee_volume\": number,\n \"30d_referee_volume\": number,\n \"1d_referee_fee\": number,\n \"7d_referee_fee\": number,\n \"30d_referee_fee\": number,\n \"1d_referrer_rebate\": number,\n \"7d_referrer_rebate\": number,\n \"30d_referrer_rebate\": number\n };\n\n export type Referee = {\n \"referer_code\"?: string,\n \"referee_rebate_rate\"?: number,\n \"1d_referee_rebate\": number,\n \"7d_referee_rebate\": number,\n \"30d_referee_rebate\": number,\n \"total_referee_rebate\": number\n };\n\n export type RefereeInfoItem = {\n \"account_id\": string,\n \"code_binding_time\": number,\n \"fee\": number,\n \"referral_code\": string,\n \"referral_rebate\": number,\n \"register_time\": number,\n \"trade_status\": string,\n \"user_address\": string,\n \"volume\": number\n };\n\n //** use volume statistics */\n export type UserVolStats = {\n \"perp_volume_last_30_days\": number,\n \"perp_volume_last_7_days\": number,\n \"perp_volume_ltd\": number,\n \"perp_volume_ytd\": number\n };\n\n export type Distribution = {\n \"amount\": number,\n \"created_time\": number,\n \"id\": number,\n \"status\": string,\n \"token\": string,\n \"type\": string,\n \"updated_time\": number,\n };\n\n export type ReferralRebateSummary = {\n \"referral_rebate\": number,\n \"volume\": number,\n \"fee\": number,\n \"date\": string,\n };\n\n export type RefereeRebateSummary = {\n \"referee_rebate\": number,\n \"fee\": number,\n \"date\": string,\n };\n\n export type DayliVolume = {\n date: string,\n perp_volume: number\n };\n}"],"names":[],"rangeMappings":"","mappings":"AAAA,WAgGC"}
@@ -0,0 +1,2 @@
1
+ export declare function formatDate(date: Date): string;
2
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/referral/format.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAM3C"}
@@ -0,0 +1,8 @@
1
+ export function formatDate(date) {
2
+ const year = date.getFullYear();
3
+ const month = String(date.getMonth() + 1).padStart(2, '0');
4
+ const day = String(date.getDate()).padStart(2, '0');
5
+ return `${year}-${month}-${day}`;
6
+ }
7
+
8
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/referral/format.ts"],"sourcesContent":["export function formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n \n return `${year}-${month}-${day}`;\n }\n "],"names":["formatDate","date","year","getFullYear","month","String","getMonth","padStart","day","getDate"],"rangeMappings":";;;;;","mappings":"AAAA,OAAO,SAASA,WAAWC,IAAU;IACjC,MAAMC,OAAOD,KAAKE,WAAW;IAC7B,MAAMC,QAAQC,OAAOJ,KAAKK,QAAQ,KAAK,GAAGC,QAAQ,CAAC,GAAG;IACtD,MAAMC,MAAMH,OAAOJ,KAAKQ,OAAO,IAAIF,QAAQ,CAAC,GAAG;IAE/C,OAAO,CAAC,EAAEL,KAAK,CAAC,EAAEE,MAAM,CAAC,EAAEI,IAAI,CAAC;AAClC"}
@@ -0,0 +1,9 @@
1
+ export { useCommission } from "./useCommission";
2
+ export { useDaily } from "./useDaily";
3
+ export { useDistribution } from "./useDistribution";
4
+ export { useReferralRebateSummary } from "./useReferralRebateSummary";
5
+ export { useRefereeHistory } from "./useRefereeHistory";
6
+ export { useRefereeInfo } from "./useRefereeInfo";
7
+ export { useRefereeRebateSummary } from "./useRefereeRebateSummary";
8
+ export * from "./api";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/referral/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,cAAc,OAAO,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { useCommission } from "./useCommission";
2
+ export { useDaily } from "./useDaily";
3
+ export { useDistribution } from "./useDistribution";
4
+ export { useReferralRebateSummary } from "./useReferralRebateSummary";
5
+ export { useRefereeHistory } from "./useRefereeHistory";
6
+ export { useRefereeInfo } from "./useRefereeInfo";
7
+ export { useRefereeRebateSummary } from "./useRefereeRebateSummary";
8
+ export * from "./api";
9
+
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/referral/index.ts"],"sourcesContent":["export { useCommission } from \"./useCommission\";\nexport { useDaily } from \"./useDaily\";\nexport { useDistribution } from \"./useDistribution\";\nexport { useReferralRebateSummary } from \"./useReferralRebateSummary\";\nexport { useRefereeHistory } from \"./useRefereeHistory\";\nexport { useRefereeInfo } from \"./useRefereeInfo\";\nexport { useRefereeRebateSummary } from \"./useRefereeRebateSummary\";\nexport * from \"./api\";\n"],"names":["useCommission","useDaily","useDistribution","useReferralRebateSummary","useRefereeHistory","useRefereeInfo","useRefereeRebateSummary"],"rangeMappings":";;;;;;;","mappings":"AAAA,SAASA,aAAa,QAAQ,kBAAkB;AAChD,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,wBAAwB,QAAQ,6BAA6B;AACtE,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,uBAAuB,QAAQ,4BAA4B;AACpE,cAAc,QAAQ"}
@@ -0,0 +1,7 @@
1
+ export declare const generateKeyFun: (args: {
2
+ path: string;
3
+ startDate?: string;
4
+ endDate?: string;
5
+ size?: number;
6
+ }) => (pageIndex: number, previousPageData: any) => string | null;
7
+ //# sourceMappingURL=swr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swr.d.ts","sourceRoot":"","sources":["../../src/referral/swr.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,SAChB;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,iBACe,MAAM,oBAAoB,GAAG,KAAG,MAAM,GAAG,IAoBpD,CAAC"}
@@ -0,0 +1,24 @@
1
+ export const generateKeyFun = (args)=>(pageIndex, previousPageData)=>{
2
+ // reached the end
3
+ if (previousPageData && !previousPageData.rows?.length) return null;
4
+ const { path, startDate, endDate, size = 100 } = args;
5
+ const search = new URLSearchParams([
6
+ [
7
+ "size",
8
+ size.toString()
9
+ ],
10
+ [
11
+ "page",
12
+ `${pageIndex + 1}`
13
+ ]
14
+ ]);
15
+ if (startDate) {
16
+ search.set(`start_date`, startDate);
17
+ }
18
+ if (endDate) {
19
+ search.set(`end_date`, endDate);
20
+ }
21
+ return `${path}?${search.toString()}`;
22
+ };
23
+
24
+ //# sourceMappingURL=swr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/referral/swr.ts"],"sourcesContent":["\nexport const generateKeyFun =\n (args: {\n path: string,\n //** YYYY-MM-dd */\n startDate?: string;\n //** YYYY-MM-dd */\n endDate?: string;\n //** default is 100 */\n size?: number\n }) =>\n (pageIndex: number, previousPageData: any): string | null => {\n // reached the end\n if (previousPageData && !previousPageData.rows?.length) return null;\n\n const { path, startDate, endDate, size = 100 } = args;\n\n const search = new URLSearchParams([\n [\"size\", size.toString()],\n [\"page\", `${pageIndex + 1}`],\n ]);\n\n if (startDate) {\n search.set(`start_date`, startDate);\n }\n\n if (endDate) {\n search.set(`end_date`, endDate);\n }\n\n return `${path}?${search.toString()}`;\n };"],"names":["generateKeyFun","args","pageIndex","previousPageData","rows","length","path","startDate","endDate","size","search","URLSearchParams","toString","set"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,OAAO,MAAMA,iBACT,CAACC,OASG,CAACC,WAAmBC;QAChB,kBAAkB;QAClB,IAAIA,oBAAoB,CAACA,iBAAiBC,IAAI,EAAEC,QAAQ,OAAO;QAE/D,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAEC,OAAO,GAAG,EAAE,GAAGR;QAEjD,MAAMS,SAAS,IAAIC,gBAAgB;YAC/B;gBAAC;gBAAQF,KAAKG,QAAQ;aAAG;YACzB;gBAAC;gBAAQ,CAAC,EAAEV,YAAY,EAAE,CAAC;aAAC;SAC/B;QAED,IAAIK,WAAW;YACXG,OAAOG,GAAG,CAAC,CAAC,UAAU,CAAC,EAAEN;QAC7B;QAEA,IAAIC,SAAS;YACTE,OAAOG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAEL;QAC3B;QAEA,OAAO,CAAC,EAAEF,KAAK,CAAC,EAAEI,OAAOE,QAAQ,GAAG,CAAC;IACzC,EAAE"}
@@ -0,0 +1,4 @@
1
+ export declare const useCommission: (options?: {
2
+ size?: number;
3
+ }) => any[];
4
+ //# sourceMappingURL=useCommission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCommission.d.ts","sourceRoot":"","sources":["../../src/referral/useCommission.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,aAAc;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,UA4CxD,CAAA"}
@@ -0,0 +1,59 @@
1
+ import { useMemo } from "react";
2
+ import { useDistribution } from "./useDistribution";
3
+ import { useRefereeHistory } from "./useRefereeHistory";
4
+ export const useCommission = (options)=>{
5
+ const [referee, { refresh: refreshReferee, loadMore: loadMoreReferee }] = useRefereeHistory({
6
+ size: options?.size
7
+ });
8
+ const [distribution, { refresh: refreshDistribution, loadMore: loadMoreDistribution, isLoading }] = useDistribution({
9
+ size: options?.size
10
+ });
11
+ const commissionData = useMemo(()=>{
12
+ return distribution?.map((item)=>{
13
+ if ("updated_time" in item) {
14
+ const updateTime = new Date(item.updated_time);
15
+ const index = referee?.findIndex((e)=>{
16
+ if ("date" in e) {
17
+ return compareDate(updateTime, new Date(e.date));
18
+ }
19
+ return false;
20
+ });
21
+ if (index !== -1) {
22
+ return {
23
+ ...item,
24
+ volume: referee?.[index].volume
25
+ };
26
+ }
27
+ }
28
+ return {
29
+ ...item
30
+ };
31
+ });
32
+ }, [
33
+ referee,
34
+ distribution
35
+ ]);
36
+ const loadMore = ()=>{
37
+ loadMoreReferee();
38
+ loadMoreDistribution();
39
+ };
40
+ const refresh = ()=>{
41
+ refreshReferee();
42
+ refreshDistribution();
43
+ };
44
+ return [
45
+ commissionData,
46
+ {
47
+ loadMore,
48
+ refresh,
49
+ isLoading
50
+ }
51
+ ];
52
+ };
53
+ //** compare two date, yyyy-mm-dd */
54
+ function compareDate(d1, d2) {
55
+ const isEqual = d1 && d2 && d1.getDay() === d2.getDay() && d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();
56
+ return isEqual;
57
+ }
58
+
59
+ //# sourceMappingURL=useCommission.js.map