@orderly.network/hooks 2.10.1-alpha.0 → 2.10.2-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.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  var net = require('@orderly.network/net');
4
4
  var useSWR5 = require('swr');
5
5
  var types = require('@orderly.network/types');
6
- var React2 = require('react');
6
+ var React = require('react');
7
7
  var utils = require('@orderly.network/utils');
8
8
  var useSWRMutation = require('swr/mutation');
9
9
  var useConstant = require('use-constant');
@@ -47,7 +47,7 @@ function _interopNamespace(e) {
47
47
  }
48
48
 
49
49
  var useSWR5__namespace = /*#__PURE__*/_interopNamespace(useSWR5);
50
- var React2__default = /*#__PURE__*/_interopDefault(React2);
50
+ var React__default = /*#__PURE__*/_interopDefault(React);
51
51
  var useSWRMutation__default = /*#__PURE__*/_interopDefault(useSWRMutation);
52
52
  var useConstant__default = /*#__PURE__*/_interopDefault(useConstant);
53
53
  var useSWRInfinite__default = /*#__PURE__*/_interopDefault(useSWRInfinite);
@@ -64,26 +64,26 @@ var __export = (target, all) => {
64
64
  // src/version.ts
65
65
  if (typeof window !== "undefined") {
66
66
  window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
67
- window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.10.1-alpha.0";
67
+ window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.10.2-alpha.0";
68
68
  }
69
- var version_default = "2.10.1-alpha.0";
69
+ var version_default = "2.10.2-alpha.0";
70
70
  var fetcher = (url, init2 = {}, queryOptions) => net.get(url, init2, queryOptions?.formatter);
71
71
  var noCacheConfig = {
72
72
  dedupingInterval: 0,
73
73
  revalidateOnMount: true,
74
74
  revalidateIfStale: true
75
75
  };
76
- var OrderlyContext = React2.createContext({
76
+ var OrderlyContext = React.createContext({
77
77
  // configStore: new MemoryConfigStore(),
78
78
  });
79
79
  var useOrderlyContext = () => {
80
- return React2.useContext(OrderlyContext);
80
+ return React.useContext(OrderlyContext);
81
81
  };
82
82
  var OrderlyProvider = OrderlyContext.Provider;
83
83
 
84
84
  // src/useConfig.ts
85
85
  function useConfig(key, defaultValue) {
86
- const { configStore } = React2.useContext(OrderlyContext);
86
+ const { configStore } = React.useContext(OrderlyContext);
87
87
  if (!configStore) {
88
88
  throw new types.SDKError(
89
89
  "useConfig must be used within OrderlyConfigProvider or OrderlyAppProvider"
@@ -196,7 +196,7 @@ var useLazyQuery = (query, options) => {
196
196
  );
197
197
  };
198
198
  var useAccountInstance = () => {
199
- const { configStore, keyStore, walletAdapters } = React2.useContext(OrderlyContext);
199
+ const { configStore, keyStore, walletAdapters } = React.useContext(OrderlyContext);
200
200
  if (!configStore)
201
201
  throw new types.SDKError(
202
202
  "configStore is not defined, please use OrderlyProvider"
@@ -317,16 +317,16 @@ var useEventEmitter = () => {
317
317
  return ee;
318
318
  });
319
319
  };
320
- var WalletConnectorContext = React2.createContext({});
320
+ var WalletConnectorContext = React.createContext({});
321
321
  var useWalletConnector = () => {
322
- return React2.useContext(WalletConnectorContext);
322
+ return React.useContext(WalletConnectorContext);
323
323
  };
324
324
 
325
325
  // src/useTrack.ts
326
326
  var useTrack = () => {
327
327
  const ee = useEventEmitter();
328
328
  const { wallet } = useWalletConnector();
329
- const tracking = React2.useCallback(
329
+ const tracking = React.useCallback(
330
330
  (eventName, params = {}) => {
331
331
  utils.windowGuard(() => {
332
332
  const location = window.location;
@@ -351,11 +351,11 @@ var useTrack = () => {
351
351
  },
352
352
  [wallet]
353
353
  );
354
- const track2 = React2.useCallback(lodash.debounce(tracking, 500), [tracking]);
355
- const setTrackUserId = React2.useCallback((userId) => {
354
+ const track2 = React.useCallback(lodash.debounce(tracking, 500), [tracking]);
355
+ const setTrackUserId = React.useCallback((userId) => {
356
356
  ee.emit(types.TrackerEventName.trackIdentifyUserId, userId);
357
357
  }, []);
358
- const setIdentify = React2.useCallback((params) => {
358
+ const setIdentify = React.useCallback((params) => {
359
359
  ee.emit(types.TrackerEventName.trackIdentify, params);
360
360
  }, []);
361
361
  return {
@@ -367,7 +367,7 @@ var useTrack = () => {
367
367
  };
368
368
  var WS_NAME = "nativeWebsocketClient";
369
369
  var useWS = () => {
370
- const { configStore } = React2.useContext(OrderlyContext);
370
+ const { configStore } = React.useContext(OrderlyContext);
371
371
  const ws = useConstant__default.default(() => {
372
372
  let websocketClient = core.SimpleDI.get(WS_NAME);
373
373
  const account9 = core.SimpleDI.get(core.Account.instanceName);
@@ -405,7 +405,7 @@ var useWS = () => {
405
405
 
406
406
  // src/useAccount.ts
407
407
  var useAccount = () => {
408
- const { configStore, keyStore } = React2.useContext(OrderlyContext);
408
+ const { configStore, keyStore } = React.useContext(OrderlyContext);
409
409
  if (!configStore)
410
410
  throw new types.SDKError(
411
411
  "configStore is not defined, please use OrderlyProvider"
@@ -416,18 +416,18 @@ var useAccount = () => {
416
416
  );
417
417
  }
418
418
  const account9 = useAccountInstance();
419
- const [state, setState] = React2.useState(account9.stateValue);
419
+ const [state, setState] = React.useState(account9.stateValue);
420
420
  const { track: track2 } = useTrack();
421
421
  const statusChangeHandler = (nextState) => {
422
422
  setState(() => nextState);
423
423
  };
424
- React2.useEffect(() => {
424
+ React.useEffect(() => {
425
425
  account9.on("change:status", statusChangeHandler);
426
426
  return () => {
427
427
  account9.off("change:status", statusChangeHandler);
428
428
  };
429
429
  }, [account9]);
430
- const createOrderlyKey = React2.useCallback(
430
+ const createOrderlyKey = React.useCallback(
431
431
  async (remember) => {
432
432
  track2(types.TrackerEventName.signinSuccess, {
433
433
  network: account9.chainId,
@@ -442,32 +442,32 @@ var useAccount = () => {
442
442
  [account9, state]
443
443
  );
444
444
  const ws = useWS();
445
- const switchAccount = React2.useCallback(
445
+ const switchAccount = React.useCallback(
446
446
  async (accountId) => {
447
447
  ws.closePrivate(3887, "switch account");
448
448
  return account9.switchAccount(accountId);
449
449
  },
450
450
  [account9]
451
451
  );
452
- const createAccount = React2.useCallback(async () => {
452
+ const createAccount = React.useCallback(async () => {
453
453
  return account9.createAccount();
454
454
  }, [account9]);
455
- const createSubAccount = React2.useCallback(
455
+ const createSubAccount = React.useCallback(
456
456
  async (description) => {
457
457
  return account9.createSubAccount(description);
458
458
  },
459
459
  [account9]
460
460
  );
461
- const updateSubAccount = React2.useCallback(
461
+ const updateSubAccount = React.useCallback(
462
462
  async (value) => {
463
463
  return account9.updateSubAccount(value);
464
464
  },
465
465
  [account9]
466
466
  );
467
- const refreshSubAccountBalances = React2.useCallback(() => {
467
+ const refreshSubAccountBalances = React.useCallback(() => {
468
468
  return account9.refreshSubAccountBalances();
469
469
  }, [account9]);
470
- const isSubAccount = React2.useMemo(() => {
470
+ const isSubAccount = React.useMemo(() => {
471
471
  return state.accountId !== state.mainAccountId;
472
472
  }, [state]);
473
473
  return {
@@ -543,23 +543,23 @@ var useInfiniteQuery = (getKey, options) => {
543
543
  return result;
544
544
  };
545
545
  var useBoolean = (initialValue = false) => {
546
- const [value, setValue] = React2.useState(initialValue);
547
- const setTrue = React2.useCallback(() => setValue(true), []);
548
- const setFalse = React2.useCallback(() => setValue(false), []);
549
- const toggle = React2.useCallback(() => setValue((v) => !v), []);
546
+ const [value, setValue] = React.useState(initialValue);
547
+ const setTrue = React.useCallback(() => setValue(true), []);
548
+ const setFalse = React.useCallback(() => setValue(false), []);
549
+ const toggle = React.useCallback(() => setValue((v) => !v), []);
550
550
  return [value, { setTrue, setFalse, toggle }];
551
551
  };
552
552
  var useUpdatedRef = (val) => {
553
- const latestRef = React2.useRef(val);
553
+ const latestRef = React.useRef(val);
554
554
  latestRef.current = val;
555
555
  return latestRef;
556
556
  };
557
557
  var useMemoizedFn = (fn) => {
558
558
  const safeFn = typeof fn === "function" ? fn : (() => {
559
559
  });
560
- const fnRef = React2.useRef(safeFn);
561
- fnRef.current = React2.useMemo(() => safeFn, [safeFn]);
562
- const wrapperRef = React2.useRef(null);
560
+ const fnRef = React.useRef(safeFn);
561
+ fnRef.current = React.useMemo(() => safeFn, [safeFn]);
562
+ const wrapperRef = React.useRef(null);
563
563
  if (!wrapperRef.current) {
564
564
  wrapperRef.current = function(...args) {
565
565
  return fnRef.current.apply(this, args);
@@ -567,52 +567,39 @@ var useMemoizedFn = (fn) => {
567
567
  }
568
568
  return wrapperRef.current;
569
569
  };
570
+ var orderFilledAudio = null;
571
+ function getOrderFilledAudio() {
572
+ if (!orderFilledAudio) {
573
+ orderFilledAudio = new Audio();
574
+ }
575
+ return orderFilledAudio;
576
+ }
570
577
  var useAudioPlayer = (src, options = {}) => {
571
- const { volume = 1, loop, autoPlay } = options;
572
- const audioRef = React2.useRef(null);
573
- const [status, setStatus] = React2.useState("idle");
574
- const onPlay = () => {
575
- setStatus("play");
576
- };
577
- const onPlaying = () => {
578
- setStatus("playing");
579
- };
580
- const onPause = () => {
581
- setStatus("paused");
582
- };
583
- const onEnded = () => {
584
- setStatus("ended");
585
- };
586
- const onError = () => {
587
- setStatus("error");
588
- };
589
- const element = React2.useMemo(() => {
590
- return React2__default.default.createElement("audio", {
591
- controls: false,
592
- ref: audioRef,
593
- autoPlay,
594
- src,
595
- style: { display: "none" },
596
- onPlay,
597
- onPlaying,
598
- onPause,
599
- onEnded,
600
- onError
601
- });
602
- }, [autoPlay, src, onPlay, onPlaying, onPause, onEnded, onError]);
603
- React2.useEffect(() => {
604
- const el = audioRef.current;
605
- if (!el) {
606
- return;
607
- }
608
- el.loop = loop ?? false;
578
+ const { volume = 1, enabled = true } = options;
579
+ const srcRef = React.useRef(src);
580
+ const enabledRef = React.useRef(enabled);
581
+ const volumeRef = React.useRef(volume);
582
+ React.useEffect(() => {
583
+ srcRef.current = src;
584
+ enabledRef.current = enabled;
585
+ volumeRef.current = volume;
586
+ }, [src, enabled, volume]);
587
+ React.useEffect(() => {
588
+ const el = getOrderFilledAudio();
609
589
  el.volume = Math.max(0, Math.min(1, volume));
610
- return () => {
611
- audioRef.current?.pause();
612
- audioRef.current = null;
613
- };
614
- }, [loop, volume]);
615
- return [element, audioRef, status];
590
+ }, [volume]);
591
+ const play = React.useCallback(() => {
592
+ const currentSrc = srcRef.current;
593
+ const currentEnabled = enabledRef.current;
594
+ if (!currentEnabled || !currentSrc) return;
595
+ const el = getOrderFilledAudio();
596
+ el.pause();
597
+ el.src = currentSrc;
598
+ el.volume = Math.max(0, Math.min(1, volumeRef.current));
599
+ el.play()?.catch(() => {
600
+ });
601
+ }, []);
602
+ return { play };
616
603
  };
617
604
 
618
605
  // src/referral/swr.ts
@@ -658,10 +645,10 @@ var useDistribution = (params) => {
658
645
  const loadMore = () => {
659
646
  ordersResponse.setSize(ordersResponse.size + 1);
660
647
  };
661
- const total = React2.useMemo(() => {
648
+ const total = React.useMemo(() => {
662
649
  return ordersResponse.data?.[0]?.meta?.total || 0;
663
650
  }, [ordersResponse.data?.[0]?.meta?.total]);
664
- const flattenOrders = React2.useMemo(() => {
651
+ const flattenOrders = React.useMemo(() => {
665
652
  if (!ordersResponse.data) {
666
653
  return null;
667
654
  }
@@ -705,10 +692,10 @@ var useRefereeHistory = (params) => {
705
692
  const loadMore = () => {
706
693
  response.setSize(response.size + 1);
707
694
  };
708
- const total = React2.useMemo(() => {
695
+ const total = React.useMemo(() => {
709
696
  return response.data?.[0]?.meta?.total || 0;
710
697
  }, [response.data?.[0]?.meta?.total]);
711
- const flattenOrders = React2.useMemo(() => {
698
+ const flattenOrders = React.useMemo(() => {
712
699
  if (!response.data) {
713
700
  return null;
714
701
  }
@@ -729,7 +716,7 @@ var useRefereeHistory = (params) => {
729
716
  var useCommission = (options) => {
730
717
  const [referee, { refresh: refreshReferee, loadMore: loadMoreReferee }] = useRefereeHistory({ size: options?.size });
731
718
  const [distribution, { refresh: refreshDistribution, loadMore: loadMoreDistribution, isLoading }] = useDistribution({ size: options?.size });
732
- const commissionData = React2.useMemo(() => {
719
+ const commissionData = React.useMemo(() => {
733
720
  return distribution?.map((item) => {
734
721
  if ("updated_time" in item) {
735
722
  const updateTime = new Date(item.updated_time);
@@ -815,13 +802,13 @@ var useReferralRebateSummary = (params) => {
815
802
  const loadMore = () => {
816
803
  response.setSize(response.size + 1);
817
804
  };
818
- const meta = React2.useMemo(() => {
805
+ const meta = React.useMemo(() => {
819
806
  return response.data?.[0]?.meta;
820
807
  }, [response.data]);
821
- const total = React2.useMemo(() => {
808
+ const total = React.useMemo(() => {
822
809
  return meta?.total || 0;
823
810
  }, [meta]);
824
- const flattenOrders = React2.useMemo(() => {
811
+ const flattenOrders = React.useMemo(() => {
825
812
  if (!response.data) {
826
813
  return null;
827
814
  }
@@ -862,13 +849,13 @@ var useRefereeInfo = (params) => {
862
849
  const loadMore = () => {
863
850
  response.setSize(response.size + 1);
864
851
  };
865
- const meta = React2.useMemo(() => {
852
+ const meta = React.useMemo(() => {
866
853
  return response.data?.[0]?.meta;
867
854
  }, [response.data]);
868
- const total = React2.useMemo(() => {
855
+ const total = React.useMemo(() => {
869
856
  return meta?.total || 0;
870
857
  }, [meta]);
871
- const flattenOrders = React2.useMemo(() => {
858
+ const flattenOrders = React.useMemo(() => {
872
859
  if (!response.data) {
873
860
  return null;
874
861
  }
@@ -1015,7 +1002,7 @@ function parseJSON(value) {
1015
1002
  function useLocalStorage(key, initialValue, options = {
1016
1003
  parseJSON
1017
1004
  }) {
1018
- const readValue = React2.useCallback(() => {
1005
+ const readValue = React.useCallback(() => {
1019
1006
  if (typeof window === "undefined") {
1020
1007
  return initialValue;
1021
1008
  }
@@ -1026,8 +1013,8 @@ function useLocalStorage(key, initialValue, options = {
1026
1013
  return initialValue;
1027
1014
  }
1028
1015
  }, [initialValue, key]);
1029
- const [storedValue, setStoredValue] = React2.useState(readValue);
1030
- const setValue = React2.useCallback(
1016
+ const [storedValue, setStoredValue] = React.useState(readValue);
1017
+ const setValue = React.useCallback(
1031
1018
  (value) => {
1032
1019
  try {
1033
1020
  const newValue = value instanceof Function ? value(storedValue) : value;
@@ -1039,10 +1026,10 @@ function useLocalStorage(key, initialValue, options = {
1039
1026
  },
1040
1027
  [storedValue]
1041
1028
  );
1042
- React2.useEffect(() => {
1029
+ React.useEffect(() => {
1043
1030
  setStoredValue(readValue());
1044
1031
  }, []);
1045
- React2.useEffect(() => {
1032
+ React.useEffect(() => {
1046
1033
  const handleStorageChange = (event) => {
1047
1034
  if (event?.key && event.key !== key) {
1048
1035
  return;
@@ -2107,20 +2094,20 @@ var useReferralInfo = () => {
2107
2094
  errorRetryCount: 3,
2108
2095
  ...noCacheConfig
2109
2096
  });
2110
- const isTrader = React2.useMemo(() => {
2097
+ const isTrader = React.useMemo(() => {
2111
2098
  if (typeof data?.referee_info?.referer_code === "undefined") {
2112
2099
  return void 0;
2113
2100
  }
2114
2101
  return (data?.referee_info?.referer_code?.length || 0) > 0;
2115
2102
  }, [data?.referee_info]);
2116
- const isAffiliate = React2.useMemo(() => {
2103
+ const isAffiliate = React.useMemo(() => {
2117
2104
  if (typeof data?.referrer_info?.referral_codes === "undefined") {
2118
2105
  return void 0;
2119
2106
  }
2120
2107
  return (data?.referrer_info?.referral_codes?.length || 0) > 0;
2121
2108
  }, [data?.referrer_info]);
2122
2109
  const [pinCodes] = useLocalStorage("orderly_referral_codes", []);
2123
- const getFirstRefCode = React2.useCallback(() => {
2110
+ const getFirstRefCode = React.useCallback(() => {
2124
2111
  if (!data?.referrer_info?.referral_codes) {
2125
2112
  return void 0;
2126
2113
  }
@@ -2750,8 +2737,8 @@ var useTestTokenStore = createDataStore({
2750
2737
 
2751
2738
  // src/usePreloadData.ts
2752
2739
  var usePreLoadData = () => {
2753
- const [timestampOffsetInitialized, setTimestampOffsetInitialized] = React2.useState(false);
2754
- const { configStore, enableSwapDeposit } = React2.useContext(OrderlyContext);
2740
+ const [timestampOffsetInitialized, setTimestampOffsetInitialized] = React.useState(false);
2741
+ const { configStore, enableSwapDeposit } = React.useContext(OrderlyContext);
2755
2742
  const env = configStore.get("env");
2756
2743
  const apiBaseUrl = configStore.get("apiBaseUrl");
2757
2744
  const urlPrefix = env === "prod" ? "https://testnet-api.orderly.org" : configStore.get("apiBaseUrl");
@@ -2765,7 +2752,7 @@ var usePreLoadData = () => {
2765
2752
  const mainTokenInfo = useMainTokenStore((state) => state.data);
2766
2753
  const testTokenInfo = useTestTokenStore((state) => state.data);
2767
2754
  const swapSupportInfo = useSwapSupportStore((state) => state.data);
2768
- React2.useEffect(() => {
2755
+ React.useEffect(() => {
2769
2756
  fetchMainTokens();
2770
2757
  fetchSymbols(apiBaseUrl).then((symbols) => {
2771
2758
  });
@@ -2773,18 +2760,18 @@ var usePreLoadData = () => {
2773
2760
  brokerId: configStore.get("brokerId")
2774
2761
  });
2775
2762
  }, []);
2776
- React2.useEffect(() => {
2763
+ React.useEffect(() => {
2777
2764
  if (!urlPrefix) return;
2778
2765
  fetchTestTokens(urlPrefix);
2779
2766
  fetchTestChains(urlPrefix, {
2780
2767
  brokerId: configStore.get("brokerId")
2781
2768
  });
2782
2769
  }, [urlPrefix]);
2783
- React2.useEffect(() => {
2770
+ React.useEffect(() => {
2784
2771
  if (!mainTokenInfo || !testTokenInfo) return;
2785
2772
  setTokensInfo(env === "prod" ? mainTokenInfo : testTokenInfo);
2786
2773
  }, [mainTokenInfo, testTokenInfo]);
2787
- React2.useEffect(() => {
2774
+ React.useEffect(() => {
2788
2775
  if (swapSupportInfo || !enableSwapDeposit) return;
2789
2776
  fetchSwapSupport();
2790
2777
  }, [swapSupportInfo, enableSwapDeposit]);
@@ -2802,7 +2789,7 @@ var usePreLoadData = () => {
2802
2789
  errorRetryInterval: 500
2803
2790
  }
2804
2791
  );
2805
- React2.useEffect(() => {
2792
+ React.useEffect(() => {
2806
2793
  if (timestampOffsetInitialized) return;
2807
2794
  if (typeof systemInfo !== "undefined") {
2808
2795
  const serverTimestamp = systemInfo.timestamp;
@@ -2815,7 +2802,7 @@ var usePreLoadData = () => {
2815
2802
  setTimestampOffsetInitialized(true);
2816
2803
  }
2817
2804
  }, [systemInfo, timestampOffsetInitialized]);
2818
- const isDone = React2.useMemo(() => {
2805
+ const isDone = React.useMemo(() => {
2819
2806
  return timestampOffsetInitialized;
2820
2807
  }, [timestampOffsetInitialized]);
2821
2808
  return {
@@ -2824,7 +2811,7 @@ var usePreLoadData = () => {
2824
2811
  };
2825
2812
  };
2826
2813
  function useSessionStorage(key, initialValue) {
2827
- const readValue = React2.useCallback(() => {
2814
+ const readValue = React.useCallback(() => {
2828
2815
  if (typeof window === "undefined") {
2829
2816
  return initialValue;
2830
2817
  }
@@ -2835,7 +2822,7 @@ function useSessionStorage(key, initialValue) {
2835
2822
  return initialValue;
2836
2823
  }
2837
2824
  }, [initialValue, key]);
2838
- const [storedValue, setStoredValue] = React2.useState(readValue);
2825
+ const [storedValue, setStoredValue] = React.useState(readValue);
2839
2826
  const setValue = (value) => {
2840
2827
  try {
2841
2828
  const newValue = value instanceof Function ? value(storedValue) : value;
@@ -2844,10 +2831,10 @@ function useSessionStorage(key, initialValue) {
2844
2831
  } catch (error) {
2845
2832
  }
2846
2833
  };
2847
- React2.useEffect(() => {
2834
+ React.useEffect(() => {
2848
2835
  setStoredValue(readValue());
2849
2836
  }, []);
2850
- React2.useEffect(() => {
2837
+ React.useEffect(() => {
2851
2838
  if (typeof window == "undefined") {
2852
2839
  return;
2853
2840
  }
@@ -2856,7 +2843,7 @@ function useSessionStorage(key, initialValue) {
2856
2843
  window.removeEventListener?.("storage", handleStorageChange);
2857
2844
  };
2858
2845
  });
2859
- const handleStorageChange = React2.useCallback(
2846
+ const handleStorageChange = React.useCallback(
2860
2847
  (event) => {
2861
2848
  if (event?.key && event.key !== key) {
2862
2849
  return;
@@ -2918,7 +2905,7 @@ var useFeeState = () => {
2918
2905
  };
2919
2906
  }
2920
2907
  );
2921
- const takerFeeBps = React2.useMemo(() => {
2908
+ const takerFeeBps = React.useMemo(() => {
2922
2909
  if (wsAccountData?.accountDetail?.futuresTakerFeeRate) {
2923
2910
  return wsAccountData?.accountDetail?.futuresTakerFeeRate;
2924
2911
  }
@@ -2927,7 +2914,7 @@ var useFeeState = () => {
2927
2914
  accountInfo?.futures_taker_fee_rate,
2928
2915
  wsAccountData?.accountDetail?.futuresTakerFeeRate
2929
2916
  ]);
2930
- const makerFeeBps = React2.useMemo(() => {
2917
+ const makerFeeBps = React.useMemo(() => {
2931
2918
  if (wsAccountData?.accountDetail?.futuresMakerFeeRate) {
2932
2919
  return wsAccountData?.accountDetail?.futuresMakerFeeRate;
2933
2920
  }
@@ -2936,7 +2923,7 @@ var useFeeState = () => {
2936
2923
  accountInfo?.futures_maker_fee_rate,
2937
2924
  wsAccountData?.accountDetail?.futuresMakerFeeRate
2938
2925
  ]);
2939
- const rwaTakerFeeBps = React2.useMemo(() => {
2926
+ const rwaTakerFeeBps = React.useMemo(() => {
2940
2927
  if (wsAccountData?.accountDetail?.rwaFuturesTakerFeeRate) {
2941
2928
  return wsAccountData?.accountDetail?.rwaFuturesTakerFeeRate;
2942
2929
  }
@@ -2945,7 +2932,7 @@ var useFeeState = () => {
2945
2932
  accountInfo?.rwa_taker_fee_rate,
2946
2933
  wsAccountData?.accountDetail?.rwaFuturesTakerFeeRate
2947
2934
  ]);
2948
- const rwaMakerFeeBps = React2.useMemo(() => {
2935
+ const rwaMakerFeeBps = React.useMemo(() => {
2949
2936
  if (wsAccountData?.accountDetail?.rwaFuturesMakerFeeRate) {
2950
2937
  return wsAccountData?.accountDetail?.rwaFuturesMakerFeeRate;
2951
2938
  }
@@ -2955,25 +2942,25 @@ var useFeeState = () => {
2955
2942
  wsAccountData?.accountDetail?.rwaFuturesMakerFeeRate
2956
2943
  ]);
2957
2944
  const refereeRebate = referralData?.referee_info?.referee_rebate_rate;
2958
- const takerFee = React2.useMemo(() => {
2945
+ const takerFee = React.useMemo(() => {
2959
2946
  if (isAccountLoading || takerFeeBps === null || takerFeeBps === void 0) {
2960
2947
  return "-";
2961
2948
  }
2962
2949
  return formatFractionAsPercent(bpsToFraction(takerFeeBps));
2963
2950
  }, [isAccountLoading, takerFeeBps]);
2964
- const makerFee = React2.useMemo(() => {
2951
+ const makerFee = React.useMemo(() => {
2965
2952
  if (isAccountLoading || makerFeeBps === null || makerFeeBps === void 0) {
2966
2953
  return "-";
2967
2954
  }
2968
2955
  return formatFractionAsPercent(bpsToFraction(makerFeeBps));
2969
2956
  }, [isAccountLoading, makerFeeBps]);
2970
- const rwaTakerFee = React2.useMemo(() => {
2957
+ const rwaTakerFee = React.useMemo(() => {
2971
2958
  if (isAccountLoading || rwaTakerFeeBps === null || rwaTakerFeeBps === void 0) {
2972
2959
  return "-";
2973
2960
  }
2974
2961
  return formatFractionAsPercent(bpsToFraction(rwaTakerFeeBps));
2975
2962
  }, [isAccountLoading, rwaTakerFeeBps]);
2976
- const rwaMakerFee = React2.useMemo(() => {
2963
+ const rwaMakerFee = React.useMemo(() => {
2977
2964
  if (isAccountLoading || rwaMakerFeeBps === null || rwaMakerFeeBps === void 0) {
2978
2965
  return "-";
2979
2966
  }
@@ -3065,7 +3052,7 @@ AmplitudeTracker.instanceName = "amplitudeTracker";
3065
3052
 
3066
3053
  // src/useTrackInstance.ts
3067
3054
  var useTrackingInstance = () => {
3068
- const { configStore, amplitudeConfig } = React2.useContext(OrderlyContext);
3055
+ const { configStore, amplitudeConfig } = React.useContext(OrderlyContext);
3069
3056
  if (!configStore) {
3070
3057
  throw new Error("configStore is not defined, please use OrderlyProvider");
3071
3058
  }
@@ -3085,7 +3072,7 @@ var useTrackingInstance = () => {
3085
3072
  return trackInstace;
3086
3073
  };
3087
3074
  var useKeyStore = () => {
3088
- const ctx = React2.useContext(OrderlyContext);
3075
+ const ctx = React.useContext(OrderlyContext);
3089
3076
  return ctx.keyStore;
3090
3077
  };
3091
3078
  var useSimpleDI = () => {
@@ -3103,11 +3090,11 @@ var WsNetworkStatus = /* @__PURE__ */ ((WsNetworkStatus2) => {
3103
3090
  })(WsNetworkStatus || {});
3104
3091
  function useWsStatus() {
3105
3092
  const ws = useWS();
3106
- const [wsStatus, setWsStatus] = React2.useState(
3093
+ const [wsStatus, setWsStatus] = React.useState(
3107
3094
  ws.client.public.readyState ? "connected" /* Connected */ : "disconnected" /* Disconnected */
3108
3095
  );
3109
- const connectCount = React2.useRef(0);
3110
- React2.useEffect(() => {
3096
+ const connectCount = React.useRef(0);
3097
+ React.useEffect(() => {
3111
3098
  ws.on("status:change", (status) => {
3112
3099
  const { type, isPrivate } = status;
3113
3100
  if (!isPrivate) {
@@ -3136,10 +3123,10 @@ function useWsStatus() {
3136
3123
  }, []);
3137
3124
  return wsStatus;
3138
3125
  }
3139
- var StatusContext = React2.createContext({});
3126
+ var StatusContext = React.createContext({});
3140
3127
  var StatusProvider = (props) => {
3141
3128
  const wsStatus = useWsStatus();
3142
- const memoizedValue = React2.useMemo(() => {
3129
+ const memoizedValue = React.useMemo(() => {
3143
3130
  return { ws: wsStatus };
3144
3131
  }, [wsStatus]);
3145
3132
  return /* @__PURE__ */ jsxRuntime.jsx(StatusContext.Provider, { value: memoizedValue, children: props.children });
@@ -3237,7 +3224,7 @@ var useMarketsStream = () => {
3237
3224
  unsubscribe?.();
3238
3225
  };
3239
3226
  });
3240
- const value = React2.useMemo(() => {
3227
+ const value = React.useMemo(() => {
3241
3228
  if (!futures) return null;
3242
3229
  if (!tickers) return futures;
3243
3230
  return futures.map((item) => {
@@ -3306,7 +3293,7 @@ var isCurrentlyClosed = (nextOpen, status, currentTime = Date.now()) => {
3306
3293
  };
3307
3294
  var useRwaSymbolsInfo = () => {
3308
3295
  const symbolsInfo = useAppStore((state) => state.rwaSymbolsInfo);
3309
- return React2.useMemo(() => createGetter({ ...symbolsInfo }), [symbolsInfo]);
3296
+ return React.useMemo(() => createGetter({ ...symbolsInfo }), [symbolsInfo]);
3310
3297
  };
3311
3298
  var useRwaSymbolsInfoStore = () => {
3312
3299
  return useAppStore((state) => state.rwaSymbolsInfo);
@@ -3382,7 +3369,7 @@ var useRwaSymbolsRuntimeStore = zustand.create(
3382
3369
  var useInitRwaSymbolsRuntime = () => {
3383
3370
  const rwaSymbolsInfo = useRwaSymbolsInfoStore();
3384
3371
  const { startTimer, stopTimer, updateComputedStates } = useRwaSymbolsRuntimeStore();
3385
- React2.useEffect(() => {
3372
+ React.useEffect(() => {
3386
3373
  if (rwaSymbolsInfo && Object.keys(rwaSymbolsInfo).length > 0) {
3387
3374
  updateComputedStates(rwaSymbolsInfo);
3388
3375
  startTimer();
@@ -3396,7 +3383,7 @@ var useGetRwaSymbolInfo = (symbol) => {
3396
3383
  const computedState = useRwaSymbolsRuntimeStore(
3397
3384
  (state) => state.computedStates[symbol]
3398
3385
  );
3399
- return React2.useMemo(() => {
3386
+ return React.useMemo(() => {
3400
3387
  if (!computedState) {
3401
3388
  return { isRwa: false };
3402
3389
  }
@@ -3405,7 +3392,7 @@ var useGetRwaSymbolInfo = (symbol) => {
3405
3392
  };
3406
3393
  var useGetRwaSymbolOpenStatus = (symbol) => {
3407
3394
  const { isRwa, open } = useGetRwaSymbolInfo(symbol);
3408
- return React2.useMemo(() => {
3395
+ return React.useMemo(() => {
3409
3396
  return { isRwa, open };
3410
3397
  }, [isRwa, open]);
3411
3398
  };
@@ -3417,7 +3404,7 @@ var filterTimeInterval = (timeInterval, isRwa, thresholdMinutes) => {
3417
3404
  };
3418
3405
  var useGetRwaSymbolCloseTimeInterval = (symbol, thresholdMinutes = 30) => {
3419
3406
  const { isRwa, open, closeTimeInterval, nextClose } = useGetRwaSymbolInfo(symbol);
3420
- return React2.useMemo(() => {
3407
+ return React.useMemo(() => {
3421
3408
  const filteredInterval = filterTimeInterval(
3422
3409
  closeTimeInterval,
3423
3410
  isRwa,
@@ -3428,7 +3415,7 @@ var useGetRwaSymbolCloseTimeInterval = (symbol, thresholdMinutes = 30) => {
3428
3415
  };
3429
3416
  var useGetRwaSymbolOpenTimeInterval = (symbol, thresholdMinutes = 30) => {
3430
3417
  const { isRwa, open, openTimeInterval, nextOpen } = useGetRwaSymbolInfo(symbol);
3431
- return React2.useMemo(() => {
3418
+ return React.useMemo(() => {
3432
3419
  const filteredInterval = filterTimeInterval(
3433
3420
  openTimeInterval,
3434
3421
  isRwa,
@@ -3439,7 +3426,7 @@ var useGetRwaSymbolOpenTimeInterval = (symbol, thresholdMinutes = 30) => {
3439
3426
  };
3440
3427
  var useSymbolsInfo = () => {
3441
3428
  const symbolsInfo = useAppStore((state) => state.symbolsInfo);
3442
- return React2.useMemo(() => createGetter({ ...symbolsInfo }), [symbolsInfo]);
3429
+ return React.useMemo(() => createGetter({ ...symbolsInfo }), [symbolsInfo]);
3443
3430
  };
3444
3431
  var useSymbolsInfoStore = () => {
3445
3432
  return useAppStore((state) => state.symbolsInfo);
@@ -3457,9 +3444,9 @@ var MarketsType = /* @__PURE__ */ ((MarketsType2) => {
3457
3444
  var MarketsStorageKey = "orderly_markets";
3458
3445
  var DefaultFavoriteTab = { name: "Popular", id: 1 };
3459
3446
  var useMarketsStore = () => {
3460
- const { configStore } = React2.useContext(OrderlyContext);
3447
+ const { configStore } = React.useContext(OrderlyContext);
3461
3448
  const ee = useEventEmitter();
3462
- const id = React2.useId();
3449
+ const id = React.useId();
3463
3450
  const getStore = () => {
3464
3451
  const store = configStore.get(MarketsStorageKey);
3465
3452
  return store || getDefaultStoreData();
@@ -3494,14 +3481,14 @@ var useMarketsStore = () => {
3494
3481
  const getTabSort = () => {
3495
3482
  return getStoreByKey("tabSort", {});
3496
3483
  };
3497
- const [favoriteTabs, setFavoriteTabs] = React2.useState(getFavoriteTabs);
3498
- const [selectedFavoriteTab, setSelectedFavoriteTab] = React2.useState(
3484
+ const [favoriteTabs, setFavoriteTabs] = React.useState(getFavoriteTabs);
3485
+ const [selectedFavoriteTab, setSelectedFavoriteTab] = React.useState(
3499
3486
  getSelectedFavoriteTab
3500
3487
  );
3501
- const [favorites, setFavorites] = React2.useState(getFavorites);
3502
- const [recent, setRecent] = React2.useState(getRecent);
3503
- const [newListing, setNewListing] = React2.useState(getNewListing);
3504
- const [tabSort, setTabSort] = React2.useState(getTabSort);
3488
+ const [favorites, setFavorites] = React.useState(getFavorites);
3489
+ const [recent, setRecent] = React.useState(getRecent);
3490
+ const [newListing, setNewListing] = React.useState(getNewListing);
3491
+ const [tabSort, setTabSort] = React.useState(getTabSort);
3505
3492
  const updateFavoriteTabs = (tab, operator) => {
3506
3493
  const tabs = updateTabs(favoriteTabs, tab, operator);
3507
3494
  setFavoriteTabs(tabs);
@@ -3540,7 +3527,7 @@ var useMarketsStore = () => {
3540
3527
  };
3541
3528
  setTabSort(map);
3542
3529
  };
3543
- React2.useEffect(() => {
3530
+ React.useEffect(() => {
3544
3531
  updateStore({
3545
3532
  favoriteTabs,
3546
3533
  favorites,
@@ -3557,7 +3544,7 @@ var useMarketsStore = () => {
3557
3544
  tabSort,
3558
3545
  selectedFavoriteTab
3559
3546
  ]);
3560
- React2.useEffect(() => {
3547
+ React.useEffect(() => {
3561
3548
  const event = ({ id: srcId, key, data }) => {
3562
3549
  if (srcId === id) {
3563
3550
  return;
@@ -3599,10 +3586,10 @@ var useMarkets = (type = 2 /* ALL */) => {
3599
3586
  const { data: futures } = useMarketsStream();
3600
3587
  const symbolsInfo = useSymbolsInfo();
3601
3588
  const rwaSymbolsInfo = useRwaSymbolsInfo();
3602
- const [markets, setMarkets] = React2.useState([]);
3589
+ const [markets, setMarkets] = React.useState([]);
3603
3590
  const store = useMarketsStore();
3604
3591
  const { favorites, recent, newListing } = store;
3605
- React2.useEffect(() => {
3592
+ React.useEffect(() => {
3606
3593
  const markets2 = addFieldToMarkets(futures, symbolsInfo, rwaSymbolsInfo);
3607
3594
  const filterList = filterMarkets({
3608
3595
  markets: markets2,
@@ -3820,7 +3807,7 @@ var ExtendedConfigStore = class extends core.DefaultConfigStore {
3820
3807
  };
3821
3808
  var useWSObserver = (calculatorService) => {
3822
3809
  const ws = useWS();
3823
- React2.useEffect(() => {
3810
+ React.useEffect(() => {
3824
3811
  const markPriceSubscription = ws.subscribe("markprices", {
3825
3812
  onMessage: (message) => {
3826
3813
  const data = /* @__PURE__ */ Object.create(null);
@@ -3976,10 +3963,10 @@ var orderBookService = OrderbookService.getInstance();
3976
3963
  var orderbook_service_default = orderBookService;
3977
3964
  var useMarkPrice = (symbol) => {
3978
3965
  const ws = useWS();
3979
- const [price, setPrice] = React2.useState(0);
3980
- const symbolRef = React2.useRef(symbol);
3966
+ const [price, setPrice] = React.useState(0);
3967
+ const symbolRef = React.useRef(symbol);
3981
3968
  symbolRef.current = symbol;
3982
- React2.useEffect(() => {
3969
+ React.useEffect(() => {
3983
3970
  const unsubscribe = ws.subscribe(`${symbol}@markprice`, {
3984
3971
  onMessage: (message) => {
3985
3972
  if (message.symbol !== symbolRef.current) {
@@ -3997,7 +3984,7 @@ var useMarkPrice = (symbol) => {
3997
3984
  };
3998
3985
  var useIndexPrice = (symbol) => {
3999
3986
  symbol = symbol.replace("PERP", "SPOT");
4000
- const symbolRef = React2.useRef(symbol);
3987
+ const symbolRef = React.useRef(symbol);
4001
3988
  symbolRef.current = symbol;
4002
3989
  const ws = useWS();
4003
3990
  return useSWRSubscription__default.default(`${symbol}@indexprice`, (key, { next }) => {
@@ -4017,7 +4004,7 @@ var useIndexPrice = (symbol) => {
4017
4004
  };
4018
4005
  var useOpenInterest = (symbol) => {
4019
4006
  const ws = useWS();
4020
- const symbolRef = React2.useRef(symbol);
4007
+ const symbolRef = React.useRef(symbol);
4021
4008
  symbolRef.current = symbol;
4022
4009
  return useSWRSubscription__default.default(`${symbol}@openinterest`, (key, { next }) => {
4023
4010
  const unsubscribe = ws.subscribe(`${symbol}@openinterest`, {
@@ -4069,11 +4056,11 @@ var useTickerStream = (symbol) => {
4069
4056
  revalidateOnFocus: false
4070
4057
  }
4071
4058
  );
4072
- const [ticker, setTicker] = React2.useState();
4073
- const symbolRef = React2.useRef(symbol);
4059
+ const [ticker, setTicker] = React.useState();
4060
+ const symbolRef = React.useRef(symbol);
4074
4061
  symbolRef.current = symbol;
4075
4062
  const ws = useWS();
4076
- React2.useEffect(() => {
4063
+ React.useEffect(() => {
4077
4064
  const unsubscribe = ws.subscribe(
4078
4065
  // { event: "subscribe", topic: "markprices" },
4079
4066
  `${symbol}@ticker`,
@@ -4096,10 +4083,10 @@ var useTickerStream = (symbol) => {
4096
4083
  const { data: indexPrice } = useIndexPrice(symbol);
4097
4084
  const { data: openInterest } = useOpenInterest(symbol);
4098
4085
  const marketMap = useMarketMap();
4099
- const markPrice = React2.useMemo(() => {
4086
+ const markPrice = React.useMemo(() => {
4100
4087
  return markPrices?.[symbol];
4101
4088
  }, [markPrices, symbol]);
4102
- const value = React2.useMemo(() => {
4089
+ const value = React.useMemo(() => {
4103
4090
  if (!info) return null;
4104
4091
  if (!ticker || ticker.symbol !== symbol) return info;
4105
4092
  const config = {
@@ -4237,22 +4224,22 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
4237
4224
  }
4238
4225
  const level = options?.level ?? 10;
4239
4226
  const padding = options?.padding ?? true;
4240
- const symbolRef = React2.useRef(symbol);
4227
+ const symbolRef = React.useRef(symbol);
4241
4228
  symbolRef.current = symbol;
4242
4229
  const {
4243
4230
  defaultOrderbookTickSizes: DEFAULT_TICK_SIZES2 = {},
4244
4231
  defaultOrderbookSymbolDepths: DEFAULT_SYMBOL_DEPTHS2 = {}
4245
- } = React2.useContext(OrderlyContext);
4246
- const [data, setData] = React2.useState(initial);
4247
- const [isLoading, setIsLoading] = React2.useState(true);
4232
+ } = React.useContext(OrderlyContext);
4233
+ const [data, setData] = React.useState(initial);
4234
+ const [isLoading, setIsLoading] = React.useState(true);
4248
4235
  const config = useSymbolsInfo()[symbol];
4249
4236
  const [depthObject, setDepthObject] = useLocalStorage(
4250
4237
  ORDERLY_ORDERBOOK_DEPTH_KEY,
4251
4238
  {}
4252
4239
  );
4253
- const prevMiddlePrice = React2.useRef(0);
4240
+ const prevMiddlePrice = React.useRef(0);
4254
4241
  const tick = config("quote_tick");
4255
- const depths = React2.useMemo(() => {
4242
+ const depths = React.useMemo(() => {
4256
4243
  if (DEFAULT_SYMBOL_DEPTHS2[symbol]) {
4257
4244
  return DEFAULT_SYMBOL_DEPTHS2[symbol];
4258
4245
  }
@@ -4271,7 +4258,7 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
4271
4258
  }
4272
4259
  return [tick];
4273
4260
  }, [symbol, tick]);
4274
- React2.useEffect(() => {
4261
+ React.useEffect(() => {
4275
4262
  if (depthObject[symbol]) {
4276
4263
  return;
4277
4264
  }
@@ -4287,7 +4274,7 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
4287
4274
  }));
4288
4275
  }
4289
4276
  }, [depthObject, tick, symbol, DEFAULT_TICK_SIZES2]);
4290
- const onDepthChange = React2.useCallback(
4277
+ const onDepthChange = React.useCallback(
4291
4278
  (val) => {
4292
4279
  setDepthObject((prev) => ({ ...prev, [symbol]: val }));
4293
4280
  },
@@ -4296,7 +4283,7 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
4296
4283
  const ws = useWS();
4297
4284
  const ticker = useTickerStream(symbol);
4298
4285
  const eventEmitter = useEventEmitter();
4299
- React2.useEffect(() => {
4286
+ React.useEffect(() => {
4300
4287
  let needRequestFullOrderbook = true;
4301
4288
  setIsLoading(true);
4302
4289
  let fullOrderBookUpdateSub;
@@ -4361,17 +4348,17 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
4361
4348
  };
4362
4349
  }, [symbol]);
4363
4350
  const { data: markPrice } = useMarkPrice(symbol);
4364
- const onItemClick = React2.useCallback((item) => {
4351
+ const onItemClick = React.useCallback((item) => {
4365
4352
  eventEmitter.emit("orderbook:item:click", item);
4366
4353
  }, []);
4367
4354
  const reducedData = reduceOrderbook(depthObject[symbol], level, padding, {
4368
4355
  asks: data.asks,
4369
4356
  bids: data.bids
4370
4357
  });
4371
- React2.useEffect(() => {
4358
+ React.useEffect(() => {
4372
4359
  eventEmitter.emit("orderbook:update", reducedData);
4373
4360
  }, [reducedData]);
4374
- const middlePrice = React2.useMemo(() => {
4361
+ const middlePrice = React.useMemo(() => {
4375
4362
  let asksFrist = 0;
4376
4363
  let bidsFirst = 0;
4377
4364
  if (data.asks.length > 0) {
@@ -4385,7 +4372,7 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
4385
4372
  }
4386
4373
  return [asksFrist, bidsFirst, ticker["24h_close"]].sort()[1];
4387
4374
  }, [ticker?.["24h_close"], data]);
4388
- React2.useEffect(() => {
4375
+ React.useEffect(() => {
4389
4376
  prevMiddlePrice.current = middlePrice;
4390
4377
  }, [middlePrice]);
4391
4378
  return [
@@ -4406,7 +4393,7 @@ var useOrderbookStream = (symbol, initial = INIT_DATA, options) => {
4406
4393
  };
4407
4394
  var useSymbolInfo = (symbol) => {
4408
4395
  const infos = useSymbolsInfo();
4409
- return React2.useMemo(() => {
4396
+ return React.useMemo(() => {
4410
4397
  return !symbol || infos.isNil ? null : infos[symbol];
4411
4398
  }, [infos, symbol]);
4412
4399
  };
@@ -4423,7 +4410,7 @@ var useFundingRatesStore = () => {
4423
4410
  var DefaultTab = { name: "Popular", id: 1 };
4424
4411
  var marketsKey = "markets";
4425
4412
  var useMarket = (type) => {
4426
- const { configStore } = React2.useContext(OrderlyContext);
4413
+ const { configStore } = React.useContext(OrderlyContext);
4427
4414
  const symbolsInfo = useSymbolsInfo();
4428
4415
  const fundingRates = useFundingRates();
4429
4416
  const { data: futures } = useMarketsStream();
@@ -4452,10 +4439,10 @@ var useMarket = (type) => {
4452
4439
  });
4453
4440
  }
4454
4441
  }
4455
- const getFavoriteTabs = React2.useMemo(() => {
4442
+ const getFavoriteTabs = React.useMemo(() => {
4456
4443
  return getStore("favoriteTabs", [{ ...DefaultTab }]);
4457
4444
  }, []);
4458
- const getFavorites = React2.useMemo(() => {
4445
+ const getFavorites = React.useMemo(() => {
4459
4446
  const curData = getStore("favorites", []);
4460
4447
  const tabs = getFavoriteTabs;
4461
4448
  const result = [];
@@ -4472,12 +4459,12 @@ var useMarket = (type) => {
4472
4459
  updateStore("favorites", result);
4473
4460
  return result;
4474
4461
  }, [configStore]);
4475
- const [favoriteTabs, setFavoriteTabs] = React2.useState(getFavoriteTabs);
4476
- const [favorites, setFavorites] = React2.useState(getFavorites);
4477
- const [recent, setRecent] = React2.useState(
4462
+ const [favoriteTabs, setFavoriteTabs] = React.useState(getFavoriteTabs);
4463
+ const [favorites, setFavorites] = React.useState(getFavorites);
4464
+ const [recent, setRecent] = React.useState(
4478
4465
  getStore("recent", []).filter((e) => e)
4479
4466
  );
4480
- const [tabSort, setTabSort] = React2.useState(
4467
+ const [tabSort, setTabSort] = React.useState(
4481
4468
  getStore("tabSort", {})
4482
4469
  );
4483
4470
  const updateFavoriteTabs = (tab, operator) => {
@@ -4557,7 +4544,7 @@ var useMarket = (type) => {
4557
4544
  updateStore("favorites", curData);
4558
4545
  setFavorites(() => curData);
4559
4546
  };
4560
- const marketsList = React2.useMemo(() => {
4547
+ const marketsList = React.useMemo(() => {
4561
4548
  const list = futures?.map((item) => {
4562
4549
  const { open_interest = 0, index_price = 0 } = item;
4563
4550
  const info = symbolsInfo[item.symbol];
@@ -4715,7 +4702,7 @@ var useLeverage = () => {
4715
4702
  errorRetryCount: 3
4716
4703
  // formatter: (data) => data,
4717
4704
  });
4718
- const updateLeverage = React2.useCallback(
4705
+ const updateLeverage = React.useCallback(
4719
4706
  async (data2) => {
4720
4707
  const res = await update(data2);
4721
4708
  if (res.success) {
@@ -4726,19 +4713,19 @@ var useLeverage = () => {
4726
4713
  },
4727
4714
  [update, mutate6]
4728
4715
  );
4729
- const memoizedCurLeverage = React2.useMemo(() => {
4716
+ const memoizedCurLeverage = React.useMemo(() => {
4730
4717
  if (data?.max_leverage !== void 0) {
4731
4718
  return Number(data.max_leverage);
4732
4719
  }
4733
4720
  return 1;
4734
4721
  }, [data?.max_leverage]);
4735
- const memoizedMaxLeverage = React2.useMemo(() => {
4722
+ const memoizedMaxLeverage = React.useMemo(() => {
4736
4723
  if (leverageConfig?.max_futures_leverage !== void 0) {
4737
4724
  return Number(leverageConfig.max_futures_leverage);
4738
4725
  }
4739
4726
  return 1;
4740
4727
  }, [leverageConfig?.max_futures_leverage]);
4741
- const memoizedLeverageLevers = React2.useMemo(() => {
4728
+ const memoizedLeverageLevers = React.useMemo(() => {
4742
4729
  return generateLeverageLevers(memoizedMaxLeverage);
4743
4730
  }, [memoizedMaxLeverage]);
4744
4731
  return {
@@ -4762,13 +4749,13 @@ var useComputedLTV = (options = {}) => {
4762
4749
  const { usdc, data: holdingList = [] } = useHoldingStream();
4763
4750
  const { getIndexPrice } = useIndexPricesStream();
4764
4751
  const { unsettledPnL } = useCollateral();
4765
- const usdcBalance = React2.useMemo(() => {
4752
+ const usdcBalance = React.useMemo(() => {
4766
4753
  if (isUSDC && input) {
4767
4754
  return new utils.Decimal(usdc?.holding ?? 0).add(input).toNumber();
4768
4755
  }
4769
4756
  return usdc?.holding ?? 0;
4770
4757
  }, [usdc?.holding, input, isUSDC]);
4771
- const getAdjustedQty = React2.useCallback(
4758
+ const getAdjustedQty = React.useCallback(
4772
4759
  (item) => {
4773
4760
  if (input && item.token === token) {
4774
4761
  return new utils.Decimal(item?.holding ?? 0).add(input).toNumber();
@@ -4777,7 +4764,7 @@ var useComputedLTV = (options = {}) => {
4777
4764
  },
4778
4765
  [input, token]
4779
4766
  );
4780
- const memoizedLTV = React2.useMemo(() => {
4767
+ const memoizedLTV = React.useMemo(() => {
4781
4768
  return LTV({
4782
4769
  usdcBalance,
4783
4770
  upnl: unsettledPnL,
@@ -4816,8 +4803,8 @@ var useFundingRate = (symbol) => {
4816
4803
  if (!symbol) {
4817
4804
  throw new types.SDKError("Symbol is required");
4818
4805
  }
4819
- const [countDown, setCountDown] = React2.useState("00:00:00");
4820
- const timerRef = React2.useRef(null);
4806
+ const [countDown, setCountDown] = React.useState("00:00:00");
4807
+ const timerRef = React.useRef(null);
4821
4808
  const { data, isLoading } = useQuery(
4822
4809
  `/v1/public/funding_rate/${symbol}`,
4823
4810
  {
@@ -4827,7 +4814,7 @@ var useFundingRate = (symbol) => {
4827
4814
  }
4828
4815
  }
4829
4816
  );
4830
- React2.useEffect(() => {
4817
+ React.useEffect(() => {
4831
4818
  if (!data || isLoading) {
4832
4819
  return;
4833
4820
  }
@@ -4857,7 +4844,7 @@ var useFundingRate = (symbol) => {
4857
4844
  }
4858
4845
  };
4859
4846
  }, [data, isLoading]);
4860
- const est_funding_rate = React2.useMemo(() => {
4847
+ const est_funding_rate = React.useMemo(() => {
4861
4848
  if (!data) {
4862
4849
  return;
4863
4850
  }
@@ -4904,7 +4891,7 @@ var useFundingRateHistory = () => {
4904
4891
  const { data: historyData, isLoading } = useQuery(
4905
4892
  "/v1/public/market_info/funding_history"
4906
4893
  );
4907
- const getPositiveRates = React2.useCallback(
4894
+ const getPositiveRates = React.useCallback(
4908
4895
  (data, period) => {
4909
4896
  if (!data?.length) {
4910
4897
  return {};
@@ -4922,7 +4909,7 @@ var useFundingRateHistory = () => {
4922
4909
  },
4923
4910
  []
4924
4911
  );
4925
- return React2.useMemo(() => {
4912
+ return React.useMemo(() => {
4926
4913
  return {
4927
4914
  data: historyData ?? types.EMPTY_LIST,
4928
4915
  isLoading,
@@ -5735,7 +5722,7 @@ var scopes = [
5735
5722
  var usePositionStream = (symbol = "all", options) => {
5736
5723
  const { calcMode } = options || {};
5737
5724
  const { includedPendingOrder = false } = options || {};
5738
- const positionCalculator = React2.useRef(null);
5725
+ const positionCalculator = React.useRef(null);
5739
5726
  const calculatorService = useCalculatorService();
5740
5727
  const [tpslOrders] = useOrderStream(
5741
5728
  {
@@ -5751,7 +5738,7 @@ var usePositionStream = (symbol = "all", options) => {
5751
5738
  const { positions: positionStatus } = useApiStatusStore(
5752
5739
  (state) => state.apis
5753
5740
  );
5754
- React2.useEffect(() => {
5741
+ React.useEffect(() => {
5755
5742
  if (symbol === "all") {
5756
5743
  return;
5757
5744
  }
@@ -5772,7 +5759,7 @@ var usePositionStream = (symbol = "all", options) => {
5772
5759
  const { totalCollateral, totalValue, totalUnrealizedROI } = useAppStore(
5773
5760
  (state) => state.portfolio
5774
5761
  );
5775
- const aggregated = React2.useMemo(() => {
5762
+ const aggregated = React.useMemo(() => {
5776
5763
  const data = formattedPositions[1];
5777
5764
  if (!data) {
5778
5765
  return {};
@@ -5868,9 +5855,9 @@ ramda.pathOr(0, [
5868
5855
  "aggregated",
5869
5856
  "unsettledPnL"
5870
5857
  ]);
5871
- var DataCenterContext = React2.createContext({});
5858
+ var DataCenterContext = React.createContext({});
5872
5859
  var useDataCenterContext = () => {
5873
- return React2.useContext(DataCenterContext);
5860
+ return React.useContext(DataCenterContext);
5874
5861
  };
5875
5862
 
5876
5863
  // src/orderly/useOrderStream/useOrderStream.ts
@@ -5884,10 +5871,10 @@ var useOrderStream = (params, options) => {
5884
5871
  dateRange,
5885
5872
  sourceTypeAll
5886
5873
  } = params;
5887
- const [includes2, setIncludes] = React2.useState(
5874
+ const [includes2, setIncludes] = React.useState(
5888
5875
  params.includes ?? ["ALL"]
5889
5876
  );
5890
- const [excludes, setExcludes] = React2.useState(
5877
+ const [excludes, setExcludes] = React.useState(
5891
5878
  params.excludes ?? []
5892
5879
  );
5893
5880
  const { data: markPrices } = useMarkPricesStream();
@@ -5910,7 +5897,7 @@ var useOrderStream = (params, options) => {
5910
5897
  doUpdateAlgoOrder,
5911
5898
  { error: updateAlgoOrderError, isMutating: updateAlgoMutating }
5912
5899
  ] = useMutation("/v1/algo/order", "PUT");
5913
- const normalOrderKeyFn = React2.useMemo(() => {
5900
+ const normalOrderKeyFn = React.useMemo(() => {
5914
5901
  return generateKeyFun2("/v1/orders", {
5915
5902
  status,
5916
5903
  symbol,
@@ -5921,7 +5908,7 @@ var useOrderStream = (params, options) => {
5921
5908
  sourceTypeAll
5922
5909
  });
5923
5910
  }, [status, symbol, side, size, page, dateRange]);
5924
- const algoOrderKeyFn = React2.useMemo(() => {
5911
+ const algoOrderKeyFn = React.useMemo(() => {
5925
5912
  return sourceTypeAll ? null : generateKeyFun2("/v1/algo/orders", {
5926
5913
  status,
5927
5914
  symbol,
@@ -5931,7 +5918,7 @@ var useOrderStream = (params, options) => {
5931
5918
  dateRange
5932
5919
  });
5933
5920
  }, [status, symbol, side, dateRange, size]);
5934
- React2.useEffect(() => {
5921
+ React.useEffect(() => {
5935
5922
  const formatKey = (value) => value ? `:${value}` : "";
5936
5923
  const key = `orders${formatKey(status)}${formatKey(symbol)}${formatKey(
5937
5924
  side
@@ -5957,7 +5944,7 @@ var useOrderStream = (params, options) => {
5957
5944
  formatter: (data) => data,
5958
5945
  revalidateOnFocus: false
5959
5946
  });
5960
- const flattenOrders = React2.useMemo(() => {
5947
+ const flattenOrders = React.useMemo(() => {
5961
5948
  if (!normalOrdersResponse.data || !algoOrdersResponse.data && !sourceTypeAll) {
5962
5949
  return null;
5963
5950
  }
@@ -5982,7 +5969,7 @@ var useOrderStream = (params, options) => {
5982
5969
  }
5983
5970
  return orders2;
5984
5971
  }, [normalOrdersResponse.data, algoOrdersResponse.data, includes2, excludes]);
5985
- const orders = React2.useMemo(() => {
5972
+ const orders = React.useMemo(() => {
5986
5973
  if (!flattenOrders) {
5987
5974
  return null;
5988
5975
  }
@@ -6000,7 +5987,7 @@ var useOrderStream = (params, options) => {
6000
5987
  return order;
6001
5988
  });
6002
5989
  }, [flattenOrders, markPrices, status]);
6003
- const total = React2.useMemo(() => {
5990
+ const total = React.useMemo(() => {
6004
5991
  return orders?.length || 0;
6005
5992
  }, [orders?.length]);
6006
5993
  const cancelAlgoOrdersByTypes = (types$1, symbol2) => {
@@ -6019,7 +6006,7 @@ var useOrderStream = (params, options) => {
6019
6006
  })
6020
6007
  );
6021
6008
  };
6022
- const cancelAllOrders = React2.useCallback(() => {
6009
+ const cancelAllOrders = React.useCallback(() => {
6023
6010
  return Promise.all([
6024
6011
  doCancelAllOrders(null),
6025
6012
  doCancelAllAlgoOrders(null, { algo_type: types.AlgoOrderRootType.STOP }),
@@ -6028,7 +6015,7 @@ var useOrderStream = (params, options) => {
6028
6015
  })
6029
6016
  ]);
6030
6017
  }, [normalOrdersResponse.data, algoOrdersResponse.data]);
6031
- const cancelAllPendingOrders = React2.useCallback(
6018
+ const cancelAllPendingOrders = React.useCallback(
6032
6019
  (symbol2) => {
6033
6020
  return Promise.all([
6034
6021
  doCancelAllOrders(null, { ...symbol2 && { symbol: symbol2 } }),
@@ -6044,7 +6031,7 @@ var useOrderStream = (params, options) => {
6044
6031
  },
6045
6032
  [symbol]
6046
6033
  );
6047
- const cancelPostionOrdersByTypes = React2.useCallback(
6034
+ const cancelPostionOrdersByTypes = React.useCallback(
6048
6035
  (symbol2, types) => {
6049
6036
  return doCancelAllAlgoOrders(null, {
6050
6037
  symbol: symbol2,
@@ -6053,7 +6040,7 @@ var useOrderStream = (params, options) => {
6053
6040
  },
6054
6041
  [algoOrdersResponse.data]
6055
6042
  );
6056
- const cancelAllTPSLOrders = React2.useCallback(
6043
+ const cancelAllTPSLOrders = React.useCallback(
6057
6044
  (symbol2) => {
6058
6045
  return cancelAlgoOrdersByTypes(
6059
6046
  [types.AlgoOrderRootType.POSITIONAL_TP_SL, types.AlgoOrderRootType.TP_SL],
@@ -6062,7 +6049,7 @@ var useOrderStream = (params, options) => {
6062
6049
  },
6063
6050
  [algoOrdersResponse.data]
6064
6051
  );
6065
- const _updateOrder = React2.useCallback(
6052
+ const _updateOrder = React.useCallback(
6066
6053
  (orderId, order, type) => {
6067
6054
  switch (type) {
6068
6055
  case "algoOrder":
@@ -6082,13 +6069,13 @@ var useOrderStream = (params, options) => {
6082
6069
  },
6083
6070
  []
6084
6071
  );
6085
- const updateOrder = React2.useCallback((orderId, order) => {
6072
+ const updateOrder = React.useCallback((orderId, order) => {
6086
6073
  return _updateOrder(orderId, order, "normalOrder");
6087
6074
  }, []);
6088
- const updateAlgoOrder = React2.useCallback((orderId, order) => {
6075
+ const updateAlgoOrder = React.useCallback((orderId, order) => {
6089
6076
  return _updateOrder(orderId, order, "algoOrder");
6090
6077
  }, []);
6091
- const _cancelOrder = React2.useCallback(
6078
+ const _cancelOrder = React.useCallback(
6092
6079
  (orderId, type, symbol2) => {
6093
6080
  switch (type) {
6094
6081
  case "algoOrder":
@@ -6122,15 +6109,15 @@ var useOrderStream = (params, options) => {
6122
6109
  },
6123
6110
  []
6124
6111
  );
6125
- const cancelOrder = React2.useCallback((orderId, symbol2) => {
6112
+ const cancelOrder = React.useCallback((orderId, symbol2) => {
6126
6113
  return _cancelOrder(orderId, "normalOrder", symbol2);
6127
6114
  }, []);
6128
- const cancelAlgoOrder = React2.useCallback((orderId, symbol2) => {
6115
+ const cancelAlgoOrder = React.useCallback((orderId, symbol2) => {
6129
6116
  return _cancelOrder(orderId, "algoOrder", symbol2);
6130
6117
  }, []);
6131
6118
  const loadMore = () => {
6132
6119
  };
6133
- const cancelTPSLChildOrder = React2.useCallback(
6120
+ const cancelTPSLChildOrder = React.useCallback(
6134
6121
  (orderId, rootAlgoOrderId) => {
6135
6122
  return doUpdateAlgoOrder({
6136
6123
  order_id: rootAlgoOrderId,
@@ -6144,7 +6131,7 @@ var useOrderStream = (params, options) => {
6144
6131
  },
6145
6132
  []
6146
6133
  );
6147
- const updateTPSLOrder = React2.useCallback(
6134
+ const updateTPSLOrder = React.useCallback(
6148
6135
  (orderId, childOrders) => {
6149
6136
  if (!Array.isArray(childOrders)) {
6150
6137
  throw new types.SDKError("Children orders is required");
@@ -6156,10 +6143,10 @@ var useOrderStream = (params, options) => {
6156
6143
  },
6157
6144
  []
6158
6145
  );
6159
- const meta = React2.useMemo(() => {
6146
+ const meta = React.useMemo(() => {
6160
6147
  return normalOrdersResponse.data?.[0]?.meta;
6161
6148
  }, [normalOrdersResponse.data?.[0]]);
6162
- const refresh = React2.useCallback(() => {
6149
+ const refresh = React.useCallback(() => {
6163
6150
  normalOrdersResponse.mutate();
6164
6151
  algoOrdersResponse.mutate();
6165
6152
  }, []);
@@ -6428,9 +6415,9 @@ function calcByPrice(positions3, markPrice, indexPrice) {
6428
6415
  }
6429
6416
  var useSubAccountWS = (options) => {
6430
6417
  const { accountId } = options;
6431
- const { configStore } = React2.useContext(OrderlyContext);
6418
+ const { configStore } = React.useContext(OrderlyContext);
6432
6419
  const { state, account: account9 } = useAccount();
6433
- const websocketClient = React2.useRef(
6420
+ const websocketClient = React.useRef(
6434
6421
  new net.WS({
6435
6422
  networkId: configStore.get("networkId"),
6436
6423
  // not need to subscribe public socket
@@ -6444,7 +6431,7 @@ var useSubAccountWS = (options) => {
6444
6431
  }
6445
6432
  })
6446
6433
  );
6447
- React2.useEffect(() => {
6434
+ React.useEffect(() => {
6448
6435
  if (accountId && (state.status === types.AccountStatusEnum.EnableTrading || state.status === types.AccountStatusEnum.EnableTradingWithoutConnected)) {
6449
6436
  websocketClient.current.openPrivate(accountId);
6450
6437
  }
@@ -6463,11 +6450,11 @@ var useSubAccountDataObserver = (accountId) => {
6463
6450
  const symbolsInfo = useSymbolsInfo();
6464
6451
  const fundingRates = useFundingRatesStore();
6465
6452
  const tokensInfo = useAppStore((state) => state.tokensInfo);
6466
- const [holding, setHolding] = React2.useState([]);
6467
- const [positions3, setPositions] = React2.useState(
6453
+ const [holding, setHolding] = React.useState([]);
6454
+ const [positions3, setPositions] = React.useState(
6468
6455
  POSITION_EMPTY
6469
6456
  );
6470
- const [portfolio, setPortfolio] = React2.useState();
6457
+ const [portfolio, setPortfolio] = React.useState();
6471
6458
  const { data: accountInfo } = useSubAccountQuery(
6472
6459
  "/v1/client/info",
6473
6460
  { accountId, revalidateOnFocus: false }
@@ -6486,7 +6473,7 @@ var useSubAccountDataObserver = (accountId) => {
6486
6473
  formatter: (data) => data.holding
6487
6474
  }
6488
6475
  );
6489
- React2.useEffect(() => {
6476
+ React.useEffect(() => {
6490
6477
  const portfolio2 = formatPortfolio({
6491
6478
  holding,
6492
6479
  positions: positions3,
@@ -6506,7 +6493,7 @@ var useSubAccountDataObserver = (accountId) => {
6506
6493
  symbolsInfo,
6507
6494
  tokensInfo
6508
6495
  ]);
6509
- React2.useEffect(() => {
6496
+ React.useEffect(() => {
6510
6497
  if (!positionsInfo) return;
6511
6498
  if (positionsInfo.rows?.length === 0) {
6512
6499
  setPositions(positionsInfo);
@@ -6533,12 +6520,12 @@ var useSubAccountDataObserver = (accountId) => {
6533
6520
  markPrices,
6534
6521
  indexPrices
6535
6522
  ]);
6536
- React2.useEffect(() => {
6523
+ React.useEffect(() => {
6537
6524
  if (holdingRes) {
6538
6525
  setHolding(holdingRes);
6539
6526
  }
6540
6527
  }, [holdingRes]);
6541
- React2.useEffect(() => {
6528
+ React.useEffect(() => {
6542
6529
  if (!accountId) return;
6543
6530
  const unsubscribe = ws.privateSubscribe(
6544
6531
  {
@@ -6563,7 +6550,7 @@ var useSubAccountDataObserver = (accountId) => {
6563
6550
  );
6564
6551
  return () => unsubscribe?.();
6565
6552
  }, [accountId]);
6566
- React2.useEffect(() => {
6553
+ React.useEffect(() => {
6567
6554
  if (!accountId) return;
6568
6555
  const key = ["/v1/positions", accountId];
6569
6556
  const unsubscribe = ws.privateSubscribe("position", {
@@ -6618,22 +6605,22 @@ function useSubAccountMaxWithdrawal(options) {
6618
6605
  (state) => state.tokensInfo?.find((item) => item.token === token)
6619
6606
  );
6620
6607
  const { data: indexPrices } = useIndexPricesStream();
6621
- const usdc = React2.useMemo(() => {
6608
+ const usdc = React.useMemo(() => {
6622
6609
  const usdc2 = holdings?.find((item) => item.token === "USDC");
6623
6610
  return usdc2;
6624
6611
  }, [holdings]);
6625
- const holding = React2.useMemo(() => {
6612
+ const holding = React.useMemo(() => {
6626
6613
  return holdings?.find((item) => item?.token === token);
6627
6614
  }, [holdings, token]);
6628
6615
  const usdcBalance = usdc?.holding ?? 0;
6629
- const indexPrice = React2.useMemo(() => {
6616
+ const indexPrice = React.useMemo(() => {
6630
6617
  if (token === "USDC") {
6631
6618
  return 1;
6632
6619
  }
6633
6620
  const symbol = `PERP_${token}_USDC`;
6634
6621
  return indexPrices[symbol] ?? 0;
6635
6622
  }, [token, indexPrices]);
6636
- const memoizedCollateralRatio = React2.useMemo(() => {
6623
+ const memoizedCollateralRatio = React.useMemo(() => {
6637
6624
  const { base_weight = 0, discount_factor = 0 } = tokenInfo || {};
6638
6625
  const holdingQty = holding?.holding ?? 0;
6639
6626
  return collateralRatio2({
@@ -6644,7 +6631,7 @@ function useSubAccountMaxWithdrawal(options) {
6644
6631
  indexPrice
6645
6632
  });
6646
6633
  }, [holdings, tokenInfo, indexPrice, token, holding]);
6647
- const maxAmount = React2.useMemo(() => {
6634
+ const maxAmount = React.useMemo(() => {
6648
6635
  if (token === "USDC") {
6649
6636
  return maxWithdrawalUSDC({
6650
6637
  USDCBalance: usdcBalance,
@@ -6676,10 +6663,10 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6676
6663
  const { status } = params;
6677
6664
  const accountId = options.accountId;
6678
6665
  const ee = useEventEmitter();
6679
- const [includes2, setIncludes] = React2.useState(
6666
+ const [includes2, setIncludes] = React.useState(
6680
6667
  params.includes ?? ["ALL"]
6681
6668
  );
6682
- const [excludes, setExcludes] = React2.useState(
6669
+ const [excludes, setExcludes] = React.useState(
6683
6670
  params.excludes ?? []
6684
6671
  );
6685
6672
  const { data: markPrices } = useMarkPricesStream();
@@ -6705,7 +6692,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6705
6692
  }
6706
6693
  );
6707
6694
  const [doUpdateAlgoOrder, { isMutating: updateAlgoMutating }] = useSubAccountMutation("/v1/algo/order", "PUT", { accountId });
6708
- const algoOrderKey = React2.useMemo(() => {
6695
+ const algoOrderKey = React.useMemo(() => {
6709
6696
  const { status: status2, symbol, side, size = 50, page = 1, dateRange } = params;
6710
6697
  const search = new URLSearchParams([
6711
6698
  ["size", size.toString()],
@@ -6741,7 +6728,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6741
6728
  revalidateOnFocus: false
6742
6729
  }
6743
6730
  );
6744
- const flattenOrders = React2.useMemo(() => {
6731
+ const flattenOrders = React.useMemo(() => {
6745
6732
  const orders2 = data?.rows || [];
6746
6733
  if (includes2.includes("ALL") && excludes.length === 0) {
6747
6734
  return orders2;
@@ -6759,7 +6746,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6759
6746
  }
6760
6747
  return orders2;
6761
6748
  }, [data, includes2, excludes]);
6762
- const orders = React2.useMemo(() => {
6749
+ const orders = React.useMemo(() => {
6763
6750
  if (!flattenOrders) {
6764
6751
  return null;
6765
6752
  }
@@ -6793,7 +6780,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6793
6780
  })
6794
6781
  );
6795
6782
  };
6796
- const cancelAllOrders = React2.useCallback(() => {
6783
+ const cancelAllOrders = React.useCallback(() => {
6797
6784
  return Promise.all([
6798
6785
  doCancelAllAlgoOrders(null, { algo_type: types.AlgoOrderRootType.STOP }),
6799
6786
  doCancelAllAlgoOrders(null, {
@@ -6801,10 +6788,10 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6801
6788
  })
6802
6789
  ]);
6803
6790
  }, [data]);
6804
- const cancelAllPendingOrders = React2.useCallback((symbol) => {
6791
+ const cancelAllPendingOrders = React.useCallback((symbol) => {
6805
6792
  doCancelAllOrders(null, { ...symbol && { symbol } });
6806
6793
  }, []);
6807
- const cancelPostionOrdersByTypes = React2.useCallback(
6794
+ const cancelPostionOrdersByTypes = React.useCallback(
6808
6795
  (symbol, types) => {
6809
6796
  return doCancelAllAlgoOrders(null, {
6810
6797
  symbol,
@@ -6813,7 +6800,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6813
6800
  },
6814
6801
  [data]
6815
6802
  );
6816
- const cancelAllTPSLOrders = React2.useCallback(
6803
+ const cancelAllTPSLOrders = React.useCallback(
6817
6804
  (symbol) => {
6818
6805
  return cancelAlgoOrdersByTypes(
6819
6806
  [types.AlgoOrderRootType.POSITIONAL_TP_SL, types.AlgoOrderRootType.TP_SL],
@@ -6822,7 +6809,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6822
6809
  },
6823
6810
  [data]
6824
6811
  );
6825
- const _updateOrder = React2.useCallback(
6812
+ const _updateOrder = React.useCallback(
6826
6813
  (orderId, order, type) => {
6827
6814
  switch (type) {
6828
6815
  case "algoOrder":
@@ -6842,13 +6829,13 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6842
6829
  },
6843
6830
  []
6844
6831
  );
6845
- const updateOrder = React2.useCallback((orderId, order) => {
6832
+ const updateOrder = React.useCallback((orderId, order) => {
6846
6833
  return _updateOrder(orderId, order, "normalOrder");
6847
6834
  }, []);
6848
- const updateAlgoOrder = React2.useCallback((orderId, order) => {
6835
+ const updateAlgoOrder = React.useCallback((orderId, order) => {
6849
6836
  return _updateOrder(orderId, order, "algoOrder");
6850
6837
  }, []);
6851
- const _cancelOrder = React2.useCallback(
6838
+ const _cancelOrder = React.useCallback(
6852
6839
  (orderId, type, symbol) => {
6853
6840
  switch (type) {
6854
6841
  case "algoOrder":
@@ -6881,13 +6868,13 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6881
6868
  },
6882
6869
  []
6883
6870
  );
6884
- const cancelOrder = React2.useCallback((orderId, symbol) => {
6871
+ const cancelOrder = React.useCallback((orderId, symbol) => {
6885
6872
  return _cancelOrder(orderId, "normalOrder", symbol);
6886
6873
  }, []);
6887
- const cancelAlgoOrder = React2.useCallback((orderId, symbol) => {
6874
+ const cancelAlgoOrder = React.useCallback((orderId, symbol) => {
6888
6875
  return _cancelOrder(orderId, "algoOrder", symbol);
6889
6876
  }, []);
6890
- const cancelTPSLChildOrder = React2.useCallback(
6877
+ const cancelTPSLChildOrder = React.useCallback(
6891
6878
  (orderId, rootAlgoOrderId) => {
6892
6879
  return doUpdateAlgoOrder({
6893
6880
  order_id: rootAlgoOrderId,
@@ -6901,7 +6888,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6901
6888
  },
6902
6889
  []
6903
6890
  );
6904
- const updateTPSLOrder = React2.useCallback(
6891
+ const updateTPSLOrder = React.useCallback(
6905
6892
  (orderId, childOrders) => {
6906
6893
  if (!Array.isArray(childOrders)) {
6907
6894
  throw new types.SDKError("Children orders is required");
@@ -6916,7 +6903,7 @@ var useSubAccountAlgoOrderStream = (params, options) => {
6916
6903
  const refresh = useDebounce.useDebouncedCallback(() => {
6917
6904
  mutate6();
6918
6905
  }, 200);
6919
- React2.useEffect(() => {
6906
+ React.useEffect(() => {
6920
6907
  const handler = (position) => {
6921
6908
  if (position.account_id === accountId) {
6922
6909
  refresh();
@@ -6956,13 +6943,13 @@ var useMarketTradeStream = (symbol, options = {}) => {
6956
6943
  if (!symbol) {
6957
6944
  throw new types.SDKError("Symbol is required");
6958
6945
  }
6959
- const [trades, setTrades] = React2.useState([]);
6960
- const [isLoading, setIsLoading] = React2.useState(false);
6961
- const symbolRef = React2.useRef(symbol);
6946
+ const [trades, setTrades] = React.useState([]);
6947
+ const [isLoading, setIsLoading] = React.useState(false);
6948
+ const symbolRef = React.useRef(symbol);
6962
6949
  symbolRef.current = symbol;
6963
6950
  const { limit = 50 } = options;
6964
6951
  const ws = useWS();
6965
- React2.useEffect(() => {
6952
+ React.useEffect(() => {
6966
6953
  setIsLoading(true);
6967
6954
  setTrades(() => []);
6968
6955
  ws.onceSubscribe(
@@ -6983,7 +6970,7 @@ var useMarketTradeStream = (symbol, options = {}) => {
6983
6970
  }
6984
6971
  );
6985
6972
  }, [symbol]);
6986
- React2.useEffect(() => {
6973
+ React.useEffect(() => {
6987
6974
  const unsubscribe = ws.subscribe(
6988
6975
  {
6989
6976
  id: `${symbol}@trade`,
@@ -7047,7 +7034,7 @@ var useLeverageBySymbol = (symbol) => {
7047
7034
  revalidateOnFocus: false
7048
7035
  }
7049
7036
  );
7050
- React2.useEffect(() => {
7037
+ React.useEffect(() => {
7051
7038
  if (!state.accountId || !symbol) return;
7052
7039
  const unsubscribe = ws.privateSubscribe("account", {
7053
7040
  onMessage: (data2) => {
@@ -7082,7 +7069,7 @@ var useMaxQty = (symbol, side, reduceOnly = false) => {
7082
7069
  const { totalCollateral } = useCollateral();
7083
7070
  const { data: markPrices } = useMarkPricesStream();
7084
7071
  const symbolLeverage = useLeverageBySymbol(symbol);
7085
- const maxQty = React2.useMemo(() => {
7072
+ const maxQty = React.useMemo(() => {
7086
7073
  if (!symbol) return 0;
7087
7074
  const positionQty = perp.account.getQtyFromPositions(
7088
7075
  positions3 === null ? [] : positions3,
@@ -7154,7 +7141,7 @@ var useMarginRatio = () => {
7154
7141
  const { state } = useAccount();
7155
7142
  const { data: markPrices } = useMarkPricesStream();
7156
7143
  const { totalCollateral } = useCollateral();
7157
- const marginRatio = React2.useMemo(() => {
7144
+ const marginRatio = React.useMemo(() => {
7158
7145
  if (!rows || !markPrices || !totalCollateral || rows.length === 0) {
7159
7146
  return 0;
7160
7147
  }
@@ -7164,13 +7151,13 @@ var useMarginRatio = () => {
7164
7151
  positions: rows ?? types.EMPTY_LIST
7165
7152
  });
7166
7153
  }, [rows, markPrices, totalCollateral]);
7167
- const currentLeverage = React2.useMemo(() => {
7154
+ const currentLeverage = React.useMemo(() => {
7168
7155
  if (state.status >= types.AccountStatusEnum.EnableTrading || state.status === types.AccountStatusEnum.EnableTradingWithoutConnected) {
7169
7156
  return perp.account.currentLeverage(marginRatio);
7170
7157
  }
7171
7158
  return null;
7172
7159
  }, [marginRatio, state.status]);
7173
- const mmr = React2.useMemo(() => {
7160
+ const mmr = React.useMemo(() => {
7174
7161
  if (!rows || rows.length <= 0 || notional == null) {
7175
7162
  return null;
7176
7163
  }
@@ -7186,7 +7173,7 @@ var useMarginRatio = () => {
7186
7173
  positionsNotional: notional
7187
7174
  });
7188
7175
  }, [rows, notional]);
7189
- const maintenanceMargin = React2.useMemo(() => {
7176
+ const maintenanceMargin = React.useMemo(() => {
7190
7177
  if (!rows || rows.length <= 0 || notional == null) {
7191
7178
  return null;
7192
7179
  }
@@ -7217,16 +7204,16 @@ function useChains(networkId, options = {}) {
7217
7204
  filteredChains: allowedChains,
7218
7205
  customChains,
7219
7206
  dataAdapter
7220
- } = React2.useContext(OrderlyContext);
7221
- const filterFun = React2.useRef(options?.filter);
7207
+ } = React.useContext(OrderlyContext);
7208
+ const filterFun = React.useRef(options?.filter);
7222
7209
  filterFun.current = options?.filter;
7223
- const chainsMap = React2.useRef(/* @__PURE__ */ new Map());
7210
+ const chainsMap = React.useRef(/* @__PURE__ */ new Map());
7224
7211
  const needFetchFromAPI = options.forceAPI || !customChains;
7225
7212
  const { data: tokenChainsRes, error: tokenError } = useMainTokenStore();
7226
7213
  const testTokenChainsRes = useTestTokenStore((state) => state.data);
7227
7214
  const chainInfos = useMainnetChainsStore((state) => state.data);
7228
7215
  const testChainInfos = useTestnetChainsStore((state) => state.data);
7229
- const chains = React2.useMemo(() => {
7216
+ const chains = React.useMemo(() => {
7230
7217
  if (!tokenChainsRes || !testTokenChainsRes || !chainInfos || !testChainInfos) {
7231
7218
  return [];
7232
7219
  }
@@ -7281,7 +7268,7 @@ function useChains(networkId, options = {}) {
7281
7268
  allowedChains,
7282
7269
  dataAdapter
7283
7270
  ]);
7284
- const findByChainId = React2.useCallback(
7271
+ const findByChainId = React.useCallback(
7285
7272
  (chainId, field) => {
7286
7273
  const chain = chainsMap.current.get(chainId);
7287
7274
  if (chain) {
@@ -7298,7 +7285,7 @@ function useChains(networkId, options = {}) {
7298
7285
  },
7299
7286
  [chains, chainsMap]
7300
7287
  );
7301
- const checkChainSupport = React2.useCallback(
7288
+ const checkChainSupport = React.useCallback(
7302
7289
  (chainId, networkId2) => {
7303
7290
  const _chains = Array.isArray(chains) ? chains : chains[networkId2];
7304
7291
  return _checkChainSupport(chainId, _chains);
@@ -7423,7 +7410,7 @@ function useStorageChain() {
7423
7410
  }
7424
7411
  var useChain = (token) => {
7425
7412
  const { data, isLoading } = useQuery("/v1/public/token");
7426
- const chains = React2.useMemo(() => {
7413
+ const chains = React.useMemo(() => {
7427
7414
  if (!data) {
7428
7415
  return null;
7429
7416
  }
@@ -7458,7 +7445,7 @@ var useHoldingStream = () => {
7458
7445
  }
7459
7446
  }
7460
7447
  );
7461
- const usdc = React2.useMemo(() => {
7448
+ const usdc = React.useMemo(() => {
7462
7449
  const usdc2 = data?.find((item) => item.token === "USDC");
7463
7450
  return usdc2;
7464
7451
  }, [data]);
@@ -7510,13 +7497,13 @@ var useMaxWithdrawal = (token) => {
7510
7497
  const { getIndexPrice } = useIndexPricesStream();
7511
7498
  const indexPriceRef = useUpdatedRef(getIndexPrice(token));
7512
7499
  const { usdc, data: holdings = [] } = useHoldingStream();
7513
- const holding = React2.useMemo(() => {
7500
+ const holding = React.useMemo(() => {
7514
7501
  return holdings.find(
7515
7502
  (item) => item.token?.toUpperCase() === token.toUpperCase()
7516
7503
  );
7517
7504
  }, [holdings, token]);
7518
7505
  const usdcBalance = usdc?.holding ?? 0;
7519
- const memoizedCollateralRatio = React2.useMemo(() => {
7506
+ const memoizedCollateralRatio = React.useMemo(() => {
7520
7507
  const { base_weight = 0, discount_factor = 0 } = tokenInfo || {};
7521
7508
  const holdingQty = holding?.holding ?? 0;
7522
7509
  return collateralRatio3({
@@ -7527,7 +7514,7 @@ var useMaxWithdrawal = (token) => {
7527
7514
  indexPrice: indexPriceRef.current
7528
7515
  });
7529
7516
  }, [tokenInfo, holding?.holding, indexPriceRef]);
7530
- const maxAmount = React2.useMemo(() => {
7517
+ const maxAmount = React.useMemo(() => {
7531
7518
  if (!token) {
7532
7519
  return 0;
7533
7520
  }
@@ -7576,14 +7563,14 @@ var useWithdraw = (options) => {
7576
7563
  const [_, { findByChainId }] = useChains(void 0);
7577
7564
  const { track: track2 } = useTrack();
7578
7565
  const maxAmount = useMaxWithdrawal(token);
7579
- const availableWithdraw = React2.useMemo(() => {
7566
+ const availableWithdraw = React.useMemo(() => {
7580
7567
  if (unsettledPnL < 0) {
7581
7568
  return freeCollateral;
7582
7569
  } else {
7583
7570
  return freeCollateral - unsettledPnL;
7584
7571
  }
7585
7572
  }, [freeCollateral, unsettledPnL]);
7586
- const targetChain = React2.useMemo(() => {
7573
+ const targetChain = React.useMemo(() => {
7587
7574
  let chain;
7588
7575
  if (networkId === "testnet") {
7589
7576
  chain = findByChainId(
@@ -7597,7 +7584,7 @@ var useWithdraw = (options) => {
7597
7584
  }
7598
7585
  return chain;
7599
7586
  }, [networkId, findByChainId, srcChainId]);
7600
- const dst = React2.useMemo(() => {
7587
+ const dst = React.useMemo(() => {
7601
7588
  const USDC = targetChain?.token_infos.find(
7602
7589
  (token2) => token2.symbol === "USDC"
7603
7590
  );
@@ -7609,7 +7596,7 @@ var useWithdraw = (options) => {
7609
7596
  network: targetChain?.network_infos?.shortName
7610
7597
  };
7611
7598
  }, [targetChain]);
7612
- const withdraw = React2.useCallback(
7599
+ const withdraw = React.useCallback(
7613
7600
  (inputs) => {
7614
7601
  return account9.assetsManager.withdraw({ ...inputs, decimals: decimals ?? 6 }).then((res) => {
7615
7602
  if (res.success) {
@@ -7648,11 +7635,11 @@ var useWithdraw = (options) => {
7648
7635
  };
7649
7636
  };
7650
7637
  var useDeposit = (options) => {
7651
- const [quantity, setQuantity] = React2.useState("");
7638
+ const [quantity, setQuantity] = React.useState("");
7652
7639
  const { account: account9, state } = useAccount();
7653
7640
  const { track: track2 } = useTrack();
7654
7641
  const targetChain = useTargetChain(options.srcChainId);
7655
- const dst = React2.useMemo(() => {
7642
+ const dst = React.useMemo(() => {
7656
7643
  const symbol = options.dstToken || "USDC";
7657
7644
  const targetToken = targetChain?.token_infos.find(
7658
7645
  (token) => token.symbol === symbol
@@ -7665,11 +7652,11 @@ var useDeposit = (options) => {
7665
7652
  network: targetChain?.network_infos.shortName
7666
7653
  };
7667
7654
  }, [targetChain, options.dstToken]);
7668
- const isNativeToken = React2.useMemo(
7655
+ const isNativeToken = React.useMemo(
7669
7656
  () => types.isNativeTokenChecker(options.address),
7670
7657
  [options.address]
7671
7658
  );
7672
- const vaultAddress = React2.useMemo(() => {
7659
+ const vaultAddress = React.useMemo(() => {
7673
7660
  if (dst?.chainId !== options.srcChainId) {
7674
7661
  return options.crossChainRouteAddress;
7675
7662
  }
@@ -7723,7 +7710,7 @@ var useDeposit = (options) => {
7723
7710
  isNativeToken,
7724
7711
  dst
7725
7712
  });
7726
- const resetApprove = React2.useCallback(
7713
+ const resetApprove = React.useCallback(
7727
7714
  async (tokenAddress, decimal, vaultAddress2) => {
7728
7715
  const result = await account9.assetsManager.approve({
7729
7716
  address: tokenAddress,
@@ -7735,7 +7722,7 @@ var useDeposit = (options) => {
7735
7722
  },
7736
7723
  [account9, updateAllowanceWhenTxSuccess]
7737
7724
  );
7738
- const approve = React2.useCallback(
7725
+ const approve = React.useCallback(
7739
7726
  async (amount) => {
7740
7727
  if (!options.address) {
7741
7728
  throw new Error("address is required");
@@ -7773,7 +7760,7 @@ var useDeposit = (options) => {
7773
7760
  resetApprove
7774
7761
  ]
7775
7762
  );
7776
- const deposit = React2.useCallback(async () => {
7763
+ const deposit = React.useCallback(async () => {
7777
7764
  await enquireAllowance();
7778
7765
  const inputs = {
7779
7766
  amount: quantity,
@@ -7838,8 +7825,8 @@ var useDeposit = (options) => {
7838
7825
  };
7839
7826
  function useBalance(options) {
7840
7827
  const { srcToken, address, decimals, account: account9, status } = options;
7841
- const [balance, setBalance] = React2.useState("0");
7842
- const fetchBalance = React2.useCallback(
7828
+ const [balance, setBalance] = React.useState("0");
7829
+ const fetchBalance = React.useCallback(
7843
7830
  async (address2, decimals2) => {
7844
7831
  try {
7845
7832
  if (types.isNativeTokenChecker(address2)) {
@@ -7862,26 +7849,26 @@ function useBalance(options) {
7862
7849
  },
7863
7850
  [srcToken, account9]
7864
7851
  );
7865
- const fetchBalances = React2.useCallback(
7852
+ const fetchBalances = React.useCallback(
7866
7853
  async (tokens) => {
7867
7854
  return account9.assetsManager.getBalances(tokens);
7868
7855
  },
7869
7856
  [account9]
7870
7857
  );
7871
- const key = React2.useMemo(() => {
7858
+ const key = React.useMemo(() => {
7872
7859
  if (!address || status < types.AccountStatusEnum.Connected) {
7873
7860
  return null;
7874
7861
  }
7875
7862
  return ["balance", address, decimals];
7876
7863
  }, [status, address, decimals]);
7877
- const fetcher4 = React2.useCallback(async () => {
7864
+ const fetcher4 = React.useCallback(async () => {
7878
7865
  if (!address) {
7879
7866
  return "0";
7880
7867
  }
7881
7868
  const balance2 = await fetchBalance(address, decimals);
7882
7869
  return balance2;
7883
7870
  }, [address, decimals, fetchBalance]);
7884
- const refreshInterval = React2.useMemo(() => {
7871
+ const refreshInterval = React.useMemo(() => {
7885
7872
  return account9.walletAdapter?.chainNamespace === types.ChainNamespace.solana ? 1e4 : 3e3;
7886
7873
  }, [account9]);
7887
7874
  const { data: swrBalance, isLoading: balanceRevalidating } = useSWR5__namespace.default(
@@ -7893,7 +7880,7 @@ function useBalance(options) {
7893
7880
  errorRetryCount: 10
7894
7881
  }
7895
7882
  );
7896
- React2.useEffect(() => {
7883
+ React.useEffect(() => {
7897
7884
  if (swrBalance !== void 0) {
7898
7885
  setBalance(swrBalance || "0");
7899
7886
  }
@@ -7916,8 +7903,8 @@ function useAllowance(options) {
7916
7903
  quantity,
7917
7904
  chainId
7918
7905
  } = options;
7919
- const [allowance, setAllowance] = React2.useState("0");
7920
- const fetchAllowance = React2.useCallback(
7906
+ const [allowance, setAllowance] = React.useState("0");
7907
+ const fetchAllowance = React.useCallback(
7921
7908
  async (options2) => {
7922
7909
  const { address: address2, decimals: decimals2, vaultAddress: vaultAddress2 } = options2;
7923
7910
  if (!address2 || !decimals2 || !vaultAddress2) {
@@ -7935,16 +7922,16 @@ function useAllowance(options) {
7935
7922
  },
7936
7923
  [account9]
7937
7924
  );
7938
- const key = React2.useMemo(() => {
7925
+ const key = React.useMemo(() => {
7939
7926
  if (!address || !decimals || !vaultAddress || status < types.AccountStatusEnum.Connected) {
7940
7927
  return null;
7941
7928
  }
7942
7929
  return ["allowance", address, vaultAddress, decimals];
7943
7930
  }, [status, address, vaultAddress, decimals, account9]);
7944
- const refreshInterval = React2.useMemo(() => {
7931
+ const refreshInterval = React.useMemo(() => {
7945
7932
  return account9.walletAdapter?.chainNamespace === types.ChainNamespace.solana ? 1e4 : 3e3;
7946
7933
  }, [account9, chainId]);
7947
- const fetcher4 = React2.useCallback(async () => {
7934
+ const fetcher4 = React.useCallback(async () => {
7948
7935
  return fetchAllowance({ address, decimals, vaultAddress });
7949
7936
  }, [address, decimals, vaultAddress, fetchAllowance]);
7950
7937
  const {
@@ -7956,12 +7943,12 @@ function useAllowance(options) {
7956
7943
  refreshInterval,
7957
7944
  errorRetryCount: 10
7958
7945
  });
7959
- React2.useEffect(() => {
7946
+ React.useEffect(() => {
7960
7947
  if (swrAllowance !== void 0) {
7961
7948
  setAllowance(swrAllowance || "0");
7962
7949
  }
7963
7950
  }, [swrAllowance]);
7964
- const updateAllowanceWhenTxSuccess = React2.useCallback(
7951
+ const updateAllowanceWhenTxSuccess = React.useCallback(
7965
7952
  (txHash) => {
7966
7953
  return account9.walletAdapter?.pollTransactionReceiptWithBackoff(txHash).then((receipt) => {
7967
7954
  if (receipt.status === 1) {
@@ -7971,7 +7958,7 @@ function useAllowance(options) {
7971
7958
  },
7972
7959
  [account9]
7973
7960
  );
7974
- const enquireAllowance = React2.useCallback(async () => {
7961
+ const enquireAllowance = React.useCallback(async () => {
7975
7962
  const _allowance = await fetchAllowance({
7976
7963
  address,
7977
7964
  decimals,
@@ -8001,7 +7988,7 @@ function useDepositFee(options) {
8001
7988
  isNativeToken,
8002
7989
  dst
8003
7990
  } = options;
8004
- const getDepositFee = React2.useCallback(
7991
+ const getDepositFee = React.useCallback(
8005
7992
  async (quantity2) => {
8006
7993
  if (!quantity2 || Number(quantity2) === 0 || isNaN(Number(quantity2))) {
8007
7994
  return 0n;
@@ -8041,7 +8028,7 @@ function useDepositFee(options) {
8041
8028
  dst
8042
8029
  ]
8043
8030
  );
8044
- const key = React2.useMemo(() => {
8031
+ const key = React.useMemo(() => {
8045
8032
  if (!dst?.address || !decimals || !vaultAddress || !dstToken || !quantity || !targetChain?.network_infos?.chain_id) {
8046
8033
  return null;
8047
8034
  }
@@ -8055,7 +8042,7 @@ function useDepositFee(options) {
8055
8042
  quantity
8056
8043
  ];
8057
8044
  }, [quantity, targetChain, decimals, dstToken, dst, vaultAddress]);
8058
- const fetcher4 = React2.useCallback(async () => {
8045
+ const fetcher4 = React.useCallback(async () => {
8059
8046
  const res = await getDepositFee(quantity);
8060
8047
  return res;
8061
8048
  }, [getDepositFee, quantity]);
@@ -8066,7 +8053,7 @@ function useDepositFee(options) {
8066
8053
  } = useSWR5__namespace.default(key, fetcher4, {
8067
8054
  revalidateOnFocus: true
8068
8055
  });
8069
- const depositFee = React2.useMemo(() => {
8056
+ const depositFee = React.useMemo(() => {
8070
8057
  const fee = data ?? 0n;
8071
8058
  return BigInt(
8072
8059
  new utils.Decimal(fee.toString()).mul(types.DEPOSIT_FEE_RATE).toFixed(0, utils.Decimal.ROUND_UP).toString()
@@ -8077,7 +8064,7 @@ function useDepositFee(options) {
8077
8064
  function useTargetChain(srcChainId) {
8078
8065
  const networkId = useConfig("networkId");
8079
8066
  const [_, { findByChainId }] = useChains(void 0);
8080
- const targetChain = React2.useMemo(() => {
8067
+ const targetChain = React.useMemo(() => {
8081
8068
  let chain;
8082
8069
  if (networkId === "testnet") {
8083
8070
  chain = findByChainId(
@@ -8124,7 +8111,7 @@ var useTransfer = (options) => {
8124
8111
  accountId: fromAccountId
8125
8112
  }
8126
8113
  );
8127
- const transfer = React2.useCallback(
8114
+ const transfer = React.useCallback(
8128
8115
  async (token2, receivers) => {
8129
8116
  return doTransfer({
8130
8117
  token: token2,
@@ -8150,9 +8137,9 @@ var useTransfer = (options) => {
8150
8137
  };
8151
8138
  };
8152
8139
  var useInternalTransfer = () => {
8153
- const [submitting, setSubmitting] = React2.useState(false);
8140
+ const [submitting, setSubmitting] = React.useState(false);
8154
8141
  const { account: account9 } = useAccount();
8155
- const transfer = React2.useCallback(
8142
+ const transfer = React.useCallback(
8156
8143
  async (inputs) => {
8157
8144
  setSubmitting(true);
8158
8145
  return account9.assetsManager.internalTransfer(inputs).then((res) => {
@@ -8224,7 +8211,7 @@ var useBalanceSubscription = (options) => {
8224
8211
  var useWalletTopic = (options) => {
8225
8212
  const ws = useWS();
8226
8213
  const { state } = useAccount();
8227
- React2.useEffect(() => {
8214
+ React.useEffect(() => {
8228
8215
  if (!state.accountId) return;
8229
8216
  const unsubscribe = ws.privateSubscribe(
8230
8217
  {
@@ -8245,7 +8232,7 @@ var useWalletTopic = (options) => {
8245
8232
  var useBalanceTopic = (options) => {
8246
8233
  const ws = useWS();
8247
8234
  const { state } = useAccount();
8248
- React2.useEffect(() => {
8235
+ React.useEffect(() => {
8249
8236
  if (!state.accountId) return;
8250
8237
  const unsubscribe = ws.privateSubscribe(
8251
8238
  {
@@ -8303,7 +8290,7 @@ var usePrivateDataObserver = (options) => {
8303
8290
  revalidateOnFocus: false
8304
8291
  }
8305
8292
  );
8306
- React2.useEffect(() => {
8293
+ React.useEffect(() => {
8307
8294
  if (clientInfo) {
8308
8295
  setAccountInfo(clientInfo);
8309
8296
  }
@@ -8315,7 +8302,7 @@ var usePrivateDataObserver = (options) => {
8315
8302
  }
8316
8303
  // revalidateOnFocus: false,
8317
8304
  });
8318
- React2.useEffect(() => {
8305
+ React.useEffect(() => {
8319
8306
  const handler = (state2) => {
8320
8307
  if (!state2.accountId) {
8321
8308
  calculatorService.stop();
@@ -8328,12 +8315,12 @@ var usePrivateDataObserver = (options) => {
8328
8315
  account9.off(core.EVENT_NAMES.statusChanged, handler);
8329
8316
  };
8330
8317
  }, []);
8331
- React2.useEffect(() => {
8318
+ React.useEffect(() => {
8332
8319
  if (isPositionLoading) {
8333
8320
  statusActions.updateApiLoading("positions", isPositionLoading);
8334
8321
  }
8335
8322
  }, [isPositionLoading, statusActions]);
8336
- React2.useEffect(() => {
8323
+ React.useEffect(() => {
8337
8324
  if (positions3 && Array.isArray(positions3.rows)) {
8338
8325
  calculatorService.calc("position" /* POSITION */, positions3);
8339
8326
  }
@@ -8345,7 +8332,7 @@ var usePrivateDataObserver = (options) => {
8345
8332
  // revalidateOnFocus: false,
8346
8333
  }
8347
8334
  );
8348
- React2.useEffect(() => {
8335
+ React.useEffect(() => {
8349
8336
  if (!account9.accountId) return;
8350
8337
  const unsubscribe = ws.privateSubscribe(
8351
8338
  {
@@ -8365,11 +8352,11 @@ var usePrivateDataObserver = (options) => {
8365
8352
  );
8366
8353
  return () => unsubscribe?.();
8367
8354
  }, [account9.accountId]);
8368
- const isHoldingInit = React2.useRef(false);
8369
- React2.useEffect(() => {
8355
+ const isHoldingInit = React.useRef(false);
8356
+ React.useEffect(() => {
8370
8357
  isHoldingInit.current = false;
8371
8358
  }, [state.address]);
8372
- React2.useEffect(() => {
8359
+ React.useEffect(() => {
8373
8360
  if (!holding) {
8374
8361
  return;
8375
8362
  }
@@ -8427,7 +8414,7 @@ var usePrivateDataObserver = (options) => {
8427
8414
  fieldChanges
8428
8415
  });
8429
8416
  };
8430
- React2.useEffect(() => {
8417
+ React.useEffect(() => {
8431
8418
  if (!state.accountId) {
8432
8419
  return;
8433
8420
  }
@@ -8441,7 +8428,7 @@ var usePrivateDataObserver = (options) => {
8441
8428
  });
8442
8429
  return () => unsubscribe?.();
8443
8430
  }, [state.accountId, subOrder]);
8444
- React2.useEffect(() => {
8431
+ React.useEffect(() => {
8445
8432
  if (!state.accountId) return;
8446
8433
  if (subOrder !== true) return;
8447
8434
  const unsubscribe = ws.privateSubscribe("algoexecutionreport", {
@@ -8451,7 +8438,7 @@ var usePrivateDataObserver = (options) => {
8451
8438
  });
8452
8439
  return () => unsubscribe?.();
8453
8440
  }, [state.accountId, subOrder]);
8454
- React2.useEffect(() => {
8441
+ React.useEffect(() => {
8455
8442
  if (!state.accountId) return;
8456
8443
  const key = ["/v1/positions", state.accountId];
8457
8444
  const unsubscribe = ws.privateSubscribe("account", {
@@ -8480,7 +8467,7 @@ var usePrivateDataObserver = (options) => {
8480
8467
  });
8481
8468
  return () => unsubscribe?.();
8482
8469
  }, [state.accountId]);
8483
- React2.useEffect(() => {
8470
+ React.useEffect(() => {
8484
8471
  if (!state.accountId) {
8485
8472
  return;
8486
8473
  }
@@ -8535,7 +8522,7 @@ var useSymbolPriceRange = (symbol, side, price) => {
8535
8522
  const priceScrope = config?.[symbol]("price_scope");
8536
8523
  const { data: prices } = useMarkPricesStream();
8537
8524
  const markPrice = price || prices?.[symbol];
8538
- const range = React2.useMemo(() => {
8525
+ const range = React.useMemo(() => {
8539
8526
  if (config === void 0 || markPrice === void 0) {
8540
8527
  return void 0;
8541
8528
  }
@@ -10475,7 +10462,7 @@ function appendOrderMetadata(order, orderMetadata) {
10475
10462
  // src/orderly/useTakeProfitAndStopLoss/useTPSL.ts
10476
10463
  var useTaskProfitAndStopLossInternal = (position, options) => {
10477
10464
  const isEditing = typeof options?.isEditing !== "undefined" ? options.isEditing : !!options?.defaultOrder;
10478
- const [order, setOrder] = React2.useState({
10465
+ const [order, setOrder] = React.useState({
10479
10466
  algo_order_id: options?.defaultOrder?.algo_order_id,
10480
10467
  symbol: position.symbol,
10481
10468
  side: Number(position.position_qty) > 0 ? types.OrderSide.BUY : types.OrderSide.SELL,
@@ -10500,15 +10487,15 @@ var useTaskProfitAndStopLossInternal = (position, options) => {
10500
10487
  const [doCreateOrder, { isMutating: isCreateMutating }] = useSubAccountMutation("/v1/algo/order");
10501
10488
  const [doUpdateOrder, { isMutating: isUpdateMutating }] = useSubAccountMutation("/v1/algo/order", "PUT");
10502
10489
  const [doDeleteOrder] = useMutation("/v1/algo/order", "DELETE");
10503
- const [errors, setErrors] = React2.useState(null);
10504
- const [meta, setMeta] = React2.useState({
10490
+ const [errors, setErrors] = React.useState(null);
10491
+ const [meta, setMeta] = React.useState({
10505
10492
  dirty: {},
10506
10493
  submitted: false,
10507
10494
  validated: false,
10508
10495
  errors: null
10509
10496
  });
10510
10497
  const { orderMetadata } = useOrderlyContext();
10511
- React2.useEffect(() => {
10498
+ React.useEffect(() => {
10512
10499
  if (!isEditing || !options?.defaultOrder) return;
10513
10500
  const trigger_prices = findTPSLFromOrder(options.defaultOrder);
10514
10501
  const order2 = {};
@@ -10781,12 +10768,12 @@ var useMaxLeverage = (symbol) => {
10781
10768
  const symbolsInfo = useSymbolsInfo();
10782
10769
  const accountInfo = useAccountInfo();
10783
10770
  const maxAccountLeverage = accountInfo?.max_leverage;
10784
- const maxSymbolLeverage = React2.useMemo(() => {
10771
+ const maxSymbolLeverage = React.useMemo(() => {
10785
10772
  const symbolInfo = symbolsInfo[symbol];
10786
10773
  const baseIMR = symbolInfo("base_imr");
10787
10774
  return baseIMR ? 1 / baseIMR : 1;
10788
10775
  }, [symbolsInfo, symbol]);
10789
- const maxLeverage = React2.useMemo(() => {
10776
+ const maxLeverage = React.useMemo(() => {
10790
10777
  if (!maxAccountLeverage || !maxSymbolLeverage) {
10791
10778
  return 1;
10792
10779
  }
@@ -10797,7 +10784,7 @@ var useMaxLeverage = (symbol) => {
10797
10784
  var useSymbolLeverage = (symbol) => {
10798
10785
  const symbolInfo = useSymbolInfo(symbol);
10799
10786
  const [update, { isMutating }] = useMutation("/v1/client/leverage");
10800
- const maxLeverage = React2.useMemo(() => {
10787
+ const maxLeverage = React.useMemo(() => {
10801
10788
  const baseIMR = symbolInfo?.("base_imr");
10802
10789
  return baseIMR ? 1 / baseIMR : 1;
10803
10790
  }, [symbolInfo]);
@@ -10857,13 +10844,13 @@ var useAssetsHistory = (options, config) => {
10857
10844
  // delay in ms
10858
10845
  300
10859
10846
  );
10860
- React2.useEffect(() => {
10847
+ React.useEffect(() => {
10861
10848
  ee.on("wallet:changed", updateList);
10862
10849
  return () => {
10863
10850
  ee.off("wallet:changed", updateList);
10864
10851
  };
10865
10852
  }, []);
10866
- return React2.useMemo(
10853
+ return React.useMemo(
10867
10854
  () => [data?.rows ?? types.EMPTY_LIST, { meta: data?.meta, isLoading }],
10868
10855
  [data?.rows, data?.meta, isLoading]
10869
10856
  );
@@ -10881,7 +10868,7 @@ var useStatisticsDaily = (params, options) => {
10881
10868
  const diff = new Date(endDate2).getTime() - new Date(startDate2).getTime();
10882
10869
  return diff / (1e3 * 60 * 60 * 24);
10883
10870
  };
10884
- const key = React2.useMemo(() => {
10871
+ const key = React.useMemo(() => {
10885
10872
  const searchParams = new URLSearchParams();
10886
10873
  searchParams.set("page", page.toString());
10887
10874
  searchParams.set(
@@ -10911,7 +10898,7 @@ var useStatisticsDaily = (params, options) => {
10911
10898
  },
10912
10899
  revalidateOnFocus: false
10913
10900
  });
10914
- const aggregateValue = React2.useMemo(() => {
10901
+ const aggregateValue = React.useMemo(() => {
10915
10902
  if (ignoreAggregation) {
10916
10903
  return { vol: null, pnl: null, roi: null };
10917
10904
  }
@@ -10928,11 +10915,23 @@ var useStatisticsDaily = (params, options) => {
10928
10915
  }
10929
10916
  return { vol: vol.toNumber(), pnl: pnl.toNumber(), roi: roi.toNumber() };
10930
10917
  }, [data]);
10931
- return React2.useMemo(
10918
+ return React.useMemo(
10932
10919
  () => [data ?? types.EMPTY_LIST, { aggregateValue }],
10933
10920
  [data, aggregateValue]
10934
10921
  );
10935
10922
  };
10923
+ var useUserStatistics = () => {
10924
+ const { data, isValidating } = usePrivateQuery(
10925
+ "/v1/client/statistics",
10926
+ {
10927
+ revalidateOnFocus: false
10928
+ }
10929
+ );
10930
+ return React.useMemo(
10931
+ () => [data ?? null, { isValidating }],
10932
+ [data, isValidating]
10933
+ );
10934
+ };
10936
10935
  var useFundingFeeHistory = (params, options) => {
10937
10936
  const { symbol, dataRange, page = 1, pageSize = 10 } = params;
10938
10937
  const infos = useSymbolsInfo();
@@ -10957,7 +10956,7 @@ var useFundingFeeHistory = (params, options) => {
10957
10956
  // keepPreviousData: true,
10958
10957
  ...options
10959
10958
  });
10960
- const parsedData = React2.useMemo(() => {
10959
+ const parsedData = React.useMemo(() => {
10961
10960
  if (!data || !Array.isArray(data?.rows) || infos.isNil) {
10962
10961
  return null;
10963
10962
  }
@@ -10969,7 +10968,7 @@ var useFundingFeeHistory = (params, options) => {
10969
10968
  };
10970
10969
  });
10971
10970
  }, [data, infos]);
10972
- return React2.useMemo(
10971
+ return React.useMemo(
10973
10972
  () => [parsedData, { meta: data?.meta, isLoading, isValidating }],
10974
10973
  [parsedData, data?.meta, isLoading, isValidating]
10975
10974
  );
@@ -10996,7 +10995,7 @@ var useDistributionHistory = (parmas) => {
10996
10995
  revalidateOnFocus: false,
10997
10996
  errorRetryCount: 3
10998
10997
  });
10999
- const parsedData = React2.useMemo(() => {
10998
+ const parsedData = React.useMemo(() => {
11000
10999
  if (!Array.isArray(data?.rows) || !data?.rows.length || infos.isNil) {
11001
11000
  return [];
11002
11001
  }
@@ -11008,7 +11007,7 @@ var useDistributionHistory = (parmas) => {
11008
11007
  };
11009
11008
  });
11010
11009
  }, [data, infos]);
11011
- return React2.useMemo(
11010
+ return React.useMemo(
11012
11011
  () => [
11013
11012
  parsedData ?? types.EMPTY_LIST,
11014
11013
  { meta: data?.meta, isLoading, isValidating }
@@ -11019,7 +11018,7 @@ var useDistributionHistory = (parmas) => {
11019
11018
  var useTransferHistory = (parmas) => {
11020
11019
  const { dataRange, page, size, side, fromId, toId, main_sub_only } = parmas;
11021
11020
  const infos = useSymbolsInfo();
11022
- const memoizedQueryKey = React2.useMemo(() => {
11021
+ const memoizedQueryKey = React.useMemo(() => {
11023
11022
  const search = new URLSearchParams();
11024
11023
  search.set("page", page.toString());
11025
11024
  search.set("size", size.toString());
@@ -11042,13 +11041,13 @@ var useTransferHistory = (parmas) => {
11042
11041
  errorRetryCount: 3
11043
11042
  }
11044
11043
  );
11045
- const parsedData = React2.useMemo(() => {
11044
+ const parsedData = React.useMemo(() => {
11046
11045
  if (!Array.isArray(data?.rows) || !data?.rows.length || infos.isNil) {
11047
11046
  return [];
11048
11047
  }
11049
11048
  return data.rows;
11050
11049
  }, [data, infos]);
11051
- return React2.useMemo(
11050
+ return React.useMemo(
11052
11051
  () => [
11053
11052
  parsedData ?? types.EMPTY_LIST,
11054
11053
  { meta: data?.meta, isLoading, mutate: mutate6 }
@@ -11059,7 +11058,7 @@ var useTransferHistory = (parmas) => {
11059
11058
  var useVaultsHistory = (parmas) => {
11060
11059
  const { dataRange, page, size } = parmas;
11061
11060
  const infos = useSymbolsInfo();
11062
- const memoizedQueryKey = React2__default.default.useMemo(() => {
11061
+ const memoizedQueryKey = React__default.default.useMemo(() => {
11063
11062
  const search = new URLSearchParams();
11064
11063
  search.set("page", page.toString());
11065
11064
  search.set("size", size.toString());
@@ -11077,13 +11076,13 @@ var useVaultsHistory = (parmas) => {
11077
11076
  errorRetryCount: 3
11078
11077
  }
11079
11078
  );
11080
- const parsedData = React2__default.default.useMemo(() => {
11079
+ const parsedData = React__default.default.useMemo(() => {
11081
11080
  if (!Array.isArray(data?.rows) || !data?.rows.length || infos.isNil) {
11082
11081
  return [];
11083
11082
  }
11084
11083
  return data.rows;
11085
11084
  }, [data, infos]);
11086
- return React2.useMemo(
11085
+ return React.useMemo(
11087
11086
  () => [parsedData ?? types.EMPTY_LIST, { meta: data?.meta, isLoading, mutate: mutate6 }],
11088
11087
  [parsedData, data?.meta, isLoading, mutate6]
11089
11088
  );
@@ -11094,10 +11093,10 @@ var MaintenanceStatus = /* @__PURE__ */ ((MaintenanceStatus2) => {
11094
11093
  return MaintenanceStatus2;
11095
11094
  })(MaintenanceStatus || {});
11096
11095
  var useMaintenanceStatus = () => {
11097
- const [status, setStatus] = React2.useState(0 /* None */);
11098
- const [startTime, setStartTime] = React2.useState();
11099
- const [endTime, setEndTime] = React2.useState();
11100
- const [brokerName, setBrokerName] = React2.useState("Orderly network");
11096
+ const [status, setStatus] = React.useState(0 /* None */);
11097
+ const [startTime, setStartTime] = React.useState();
11098
+ const [endTime, setEndTime] = React.useState();
11099
+ const [brokerName, setBrokerName] = React.useState("Orderly network");
11101
11100
  const { data: systemInfo } = useQuery(
11102
11101
  `/v1/public/system_info?source=maintenance`,
11103
11102
  {
@@ -11108,7 +11107,7 @@ var useMaintenanceStatus = () => {
11108
11107
  );
11109
11108
  const ws = useWS();
11110
11109
  const config = useConfig();
11111
- React2.useEffect(() => {
11110
+ React.useEffect(() => {
11112
11111
  if (!systemInfo) {
11113
11112
  return;
11114
11113
  }
@@ -11124,7 +11123,7 @@ var useMaintenanceStatus = () => {
11124
11123
  setStatus(2 /* Maintenance */);
11125
11124
  }
11126
11125
  }, [systemInfo, config]);
11127
- React2.useEffect(() => {
11126
+ React.useEffect(() => {
11128
11127
  const unsubscribe = ws.subscribe(`maintenance_status`, {
11129
11128
  onMessage: (message) => {
11130
11129
  setStatus(message.status);
@@ -11164,12 +11163,13 @@ var useTokensInfo = () => {
11164
11163
  };
11165
11164
  var useTokenInfo = (token) => {
11166
11165
  const tokensInfo = useAppStore((state) => state.tokensInfo);
11167
- return React2.useMemo(() => {
11166
+ return React.useMemo(() => {
11168
11167
  return tokensInfo?.find((item) => item.token === token);
11169
11168
  }, [tokensInfo, token]);
11170
11169
  };
11171
11170
  var useFutures = () => {
11172
11171
  const { dataAdapter } = useOrderlyContext();
11172
+ const rwaSymbolsInfo = useRwaSymbolsInfoStore();
11173
11173
  const { data } = useQuery("/v1/public/futures", {
11174
11174
  // 24 hours
11175
11175
  focusThrottleInterval: 1e3 * 60 * 60 * 24,
@@ -11184,12 +11184,14 @@ var useFutures = () => {
11184
11184
  // updateMarket(data as API.MarketInfoExt[]);
11185
11185
  // },
11186
11186
  });
11187
- const futures = React2.useMemo(() => {
11187
+ const futures = React.useMemo(() => {
11188
11188
  if (Array.isArray(data)) {
11189
- return typeof dataAdapter?.symbolList === "function" ? dataAdapter.symbolList(data) : data;
11189
+ return typeof dataAdapter?.symbolList === "function" ? dataAdapter.symbolList(data, {
11190
+ rwaSymbolsInfo
11191
+ }) : data;
11190
11192
  }
11191
11193
  return [];
11192
- }, [data, dataAdapter?.symbolList]);
11194
+ }, [data, dataAdapter?.symbolList, rwaSymbolsInfo]);
11193
11195
  return {
11194
11196
  data: futures
11195
11197
  };
@@ -11208,7 +11210,7 @@ var usePublicDataObserver = () => {
11208
11210
  (state) => state.actions
11209
11211
  );
11210
11212
  const symbols = useSymbolStore((state) => state.data);
11211
- React2.useEffect(() => {
11213
+ React.useEffect(() => {
11212
11214
  if (!symbols || !symbols?.length) {
11213
11215
  return;
11214
11216
  }
@@ -11272,7 +11274,7 @@ var usePublicDataObserver = () => {
11272
11274
  });
11273
11275
  const { data: futures } = useFutures();
11274
11276
  const { updateMarket } = useMarketStore((state) => state.actions);
11275
- React2.useEffect(() => {
11277
+ React.useEffect(() => {
11276
11278
  updateMarket(futures);
11277
11279
  }, [futures]);
11278
11280
  };
@@ -11287,9 +11289,9 @@ function getEstFundingRate(data) {
11287
11289
  return est_funding_rate;
11288
11290
  }
11289
11291
  var useDatabaseInitialization = () => {
11290
- const [isInitialized, setIsInitialized] = React2.useState(false);
11291
- const [error, setError] = React2.useState(null);
11292
- React2.useEffect(() => {
11292
+ const [isInitialized, setIsInitialized] = React.useState(false);
11293
+ const [error, setError] = React.useState(null);
11294
+ React.useEffect(() => {
11293
11295
  const initialize = async () => {
11294
11296
  try {
11295
11297
  await initializeAppDatabase(DEFAULT_DATABASE_CONFIG);
@@ -11311,13 +11313,13 @@ var DataCenterProvider = ({
11311
11313
  const calculatorService = useCalculatorService();
11312
11314
  usePublicDataObserver();
11313
11315
  useWSObserver(calculatorService);
11314
- const getKeyHandlerMapRef = React2.useRef(/* @__PURE__ */ new Map());
11316
+ const getKeyHandlerMapRef = React.useRef(/* @__PURE__ */ new Map());
11315
11317
  usePrivateDataObserver({
11316
11318
  getKeysMap(type) {
11317
11319
  return getKeyHandlerMapRef.current;
11318
11320
  }
11319
11321
  });
11320
- const memoizedValue = React2.useMemo(() => {
11322
+ const memoizedValue = React.useMemo(() => {
11321
11323
  return {
11322
11324
  registerKeyHandler: (key, fun) => {
11323
11325
  getKeyHandlerMapRef.current.set(key, fun);
@@ -11333,7 +11335,7 @@ var DataCenterProvider = ({
11333
11335
  return /* @__PURE__ */ jsxRuntime.jsx(DataCenterContext.Provider, { value: memoizedValue, children });
11334
11336
  };
11335
11337
  var OrderlyConfigProvider = (props) => {
11336
- const [account9, setAccount] = React2__default.default.useState(null);
11338
+ const [account9, setAccount] = React__default.default.useState(null);
11337
11339
  const {
11338
11340
  configStore,
11339
11341
  keyStore,
@@ -11363,7 +11365,7 @@ var OrderlyConfigProvider = (props) => {
11363
11365
  "If you have provided a custom `configStore` and the `brokerId` is set in the `configStore`, please remove the `brokerId` prop."
11364
11366
  );
11365
11367
  }
11366
- const innerConfigStore = React2.useMemo(() => {
11368
+ const innerConfigStore = React.useMemo(() => {
11367
11369
  return new ProxyConfigStore(
11368
11370
  configStore || new ExtendedConfigStore({
11369
11371
  brokerId,
@@ -11372,22 +11374,22 @@ var OrderlyConfigProvider = (props) => {
11372
11374
  })
11373
11375
  );
11374
11376
  }, [configStore, brokerId, brokerName, networkId]);
11375
- const innerKeyStore = React2.useMemo(() => {
11377
+ const innerKeyStore = React.useMemo(() => {
11376
11378
  return keyStore || new core.LocalStorageStore(networkId);
11377
11379
  }, [networkId, keyStore]);
11378
- const innerWalletAdapters = React2.useMemo(() => {
11380
+ const innerWalletAdapters = React.useMemo(() => {
11379
11381
  return walletAdapters || [
11380
11382
  new defaultEvmAdapter.DefaultEVMWalletAdapter(new web3ProviderEthers.EthersProvider()),
11381
11383
  new defaultSolanaAdapter.DefaultSolanaWalletAdapter()
11382
11384
  ];
11383
11385
  }, [walletAdapters]);
11384
- const defaultOrderbookTickSizes = React2.useMemo(() => {
11386
+ const defaultOrderbookTickSizes = React.useMemo(() => {
11385
11387
  return orderbookDefaultTickSizes || DEFAULT_TICK_SIZES;
11386
11388
  }, [orderbookDefaultTickSizes]);
11387
- const defaultOrderbookSymbolDepths = React2.useMemo(() => {
11389
+ const defaultOrderbookSymbolDepths = React.useMemo(() => {
11388
11390
  return orderbookDefaultSymbolDepths || DEFAULT_SYMBOL_DEPTHS;
11389
11391
  }, [orderbookDefaultSymbolDepths]);
11390
- React2.useLayoutEffect(() => {
11392
+ React.useLayoutEffect(() => {
11391
11393
  let account10 = core.SimpleDI.get(core.Account.instanceName);
11392
11394
  if (!account10) {
11393
11395
  account10 = new core.Account(
@@ -11403,13 +11405,13 @@ var OrderlyConfigProvider = (props) => {
11403
11405
  }
11404
11406
  setAccount(account10);
11405
11407
  }, []);
11406
- const filteredChains = React2.useMemo(() => {
11408
+ const filteredChains = React.useMemo(() => {
11407
11409
  if (typeof chainFilter === "function") {
11408
11410
  return chainFilter(innerConfigStore);
11409
11411
  }
11410
11412
  return chainFilter;
11411
11413
  }, [chainFilter, innerConfigStore]);
11412
- const memoizedValue = React2.useMemo(() => {
11414
+ const memoizedValue = React.useMemo(() => {
11413
11415
  return {
11414
11416
  configStore: innerConfigStore,
11415
11417
  keyStore: innerKeyStore,
@@ -11459,33 +11461,33 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11459
11461
  throw new types.SDKError("Order type is required");
11460
11462
  }
11461
11463
  }
11462
- const prevOrderData = React2.useRef(null);
11463
- const orderDataCache = React2.useRef(null);
11464
- const notSupportData = React2.useRef({});
11465
- const [errors, setErrors] = React2.useState(null);
11464
+ const prevOrderData = React.useRef(null);
11465
+ const orderDataCache = React.useRef(null);
11466
+ const notSupportData = React.useRef({});
11467
+ const [errors, setErrors] = React.useState(null);
11466
11468
  const ee = useEventEmitter();
11467
11469
  const positions3 = usePositions();
11468
- const fieldDirty = React2.useRef({});
11469
- const submitted = React2.useRef(false);
11470
- const askAndBid = React2.useRef([]);
11470
+ const fieldDirty = React.useRef({});
11471
+ const submitted = React.useRef(false);
11472
+ const askAndBid = React.useRef([]);
11471
11473
  const onOrderBookUpdate = useDebounce.useDebouncedCallback((data) => {
11472
11474
  askAndBid.current = data;
11473
11475
  }, 200);
11474
11476
  const { freeCollateral, totalCollateral, accountInfo } = useCollateral();
11475
11477
  const symbolInfo = useSymbolsInfo();
11476
- const symbol = React2.useMemo(() => {
11478
+ const symbol = React.useMemo(() => {
11477
11479
  if (typeof symbolOrOrder === "string") {
11478
11480
  return symbolOrOrder;
11479
11481
  }
11480
11482
  return symbolOrOrder.symbol;
11481
11483
  }, [symbolOrOrder]);
11482
- const optionsValue = React2.useMemo(() => {
11484
+ const optionsValue = React.useMemo(() => {
11483
11485
  if (typeof sideOrOptions === "object") {
11484
11486
  return sideOrOptions;
11485
11487
  }
11486
11488
  return options;
11487
11489
  }, [sideOrOptions]);
11488
- const isReduceOnly = React2.useMemo(() => {
11490
+ const isReduceOnly = React.useMemo(() => {
11489
11491
  if (typeof reduceOnly === "boolean") {
11490
11492
  return reduceOnly;
11491
11493
  }
@@ -11494,24 +11496,24 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11494
11496
  }
11495
11497
  return false;
11496
11498
  }, [symbolOrOrder, reduceOnly]);
11497
- const sideValue = React2.useMemo(() => {
11499
+ const sideValue = React.useMemo(() => {
11498
11500
  if (typeof symbolOrOrder === "object") {
11499
11501
  return symbolOrOrder.side;
11500
11502
  }
11501
11503
  return sideOrOptions;
11502
11504
  }, [symbolOrOrder, sideOrOptions]);
11503
- const baseDP = React2.useMemo(
11505
+ const baseDP = React.useMemo(
11504
11506
  () => utils.getPrecisionByNumber(symbolInfo[symbol]("base_tick", 0)),
11505
11507
  [symbolInfo]
11506
11508
  );
11507
- const quoteDP = React2.useMemo(() => {
11509
+ const quoteDP = React.useMemo(() => {
11508
11510
  return utils.getPrecisionByNumber(symbolInfo[symbol]("quote_tick", 0));
11509
11511
  }, [symbolInfo]);
11510
- const baseIMR = React2.useMemo(
11512
+ const baseIMR = React.useMemo(
11511
11513
  () => symbolInfo[symbol]("base_imr", 0),
11512
11514
  [symbolInfo]
11513
11515
  );
11514
- const baseMMR = React2.useMemo(
11516
+ const baseMMR = React.useMemo(
11515
11517
  () => symbolInfo[symbol]("base_mmr", 0),
11516
11518
  [symbolInfo]
11517
11519
  );
@@ -11555,7 +11557,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11555
11557
  }
11556
11558
  }
11557
11559
  };
11558
- const needParse = React2.useMemo(() => {
11560
+ const needParse = React.useMemo(() => {
11559
11561
  if (typeof symbolOrOrder === "string") {
11560
11562
  return null;
11561
11563
  }
@@ -11575,7 +11577,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11575
11577
  symbolOrOrder
11576
11578
  );
11577
11579
  }, [symbolOrOrder]);
11578
- const parsedData = React2.useMemo(() => {
11580
+ const parsedData = React.useMemo(() => {
11579
11581
  if (typeof symbolOrOrder === "string") {
11580
11582
  return null;
11581
11583
  }
@@ -11678,13 +11680,13 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11678
11680
  symbol
11679
11681
  });
11680
11682
  };
11681
- const submit = React2.useCallback(() => {
11683
+ const submit = React.useCallback(() => {
11682
11684
  if (!parsedData) {
11683
11685
  throw new types.SDKError("Function is not supported, please use onSubmit()");
11684
11686
  }
11685
11687
  return createOrder(parsedData);
11686
11688
  }, [parsedData]);
11687
- const calculate2 = React2.useCallback(
11689
+ const calculate2 = React.useCallback(
11688
11690
  (values, field, value) => {
11689
11691
  const fieldHandler = getCalculateHandler(field);
11690
11692
  const newValues = ramda.compose(
@@ -11712,7 +11714,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11712
11714
  markPrice
11713
11715
  });
11714
11716
  };
11715
- const formattedOrder = React2.useMemo(() => {
11717
+ const formattedOrder = React.useMemo(() => {
11716
11718
  if (!parsedData) {
11717
11719
  return notSupportData.current;
11718
11720
  }
@@ -11741,7 +11743,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11741
11743
  orderDataCache.current = values;
11742
11744
  return values;
11743
11745
  }, [parsedData, markPrice]);
11744
- React2.useEffect(() => {
11746
+ React.useEffect(() => {
11745
11747
  if (!markPrice || symbolInfo.isNil) return;
11746
11748
  validator(formattedOrder)?.then((err) => {
11747
11749
  setErrors(err);
@@ -11755,7 +11757,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11755
11757
  formattedOrder.order_type,
11756
11758
  markPrice
11757
11759
  ]);
11758
- React2.useEffect(() => {
11760
+ React.useEffect(() => {
11759
11761
  if (isNewVersion) {
11760
11762
  if (!optionsValue?.watchOrderbook) {
11761
11763
  throw new types.SDKError(
@@ -11772,7 +11774,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11772
11774
  ee.off("orderbook:update", onOrderBookUpdate);
11773
11775
  };
11774
11776
  }, [optionsValue?.watchOrderbook]);
11775
- React2.useEffect(() => {
11777
+ React.useEffect(() => {
11776
11778
  askAndBid.current = [];
11777
11779
  }, [parsedData?.symbol]);
11778
11780
  const getPriceAndQty2 = (symbolOrOrder2) => {
@@ -11815,7 +11817,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11815
11817
  }
11816
11818
  return { price, quantity };
11817
11819
  };
11818
- const estLiqPrice = React2.useMemo(() => {
11820
+ const estLiqPrice = React.useMemo(() => {
11819
11821
  if (!accountInfo || !parsedData || !markPrice) return null;
11820
11822
  const result = getPriceAndQty2(formattedOrder);
11821
11823
  if (result === null) return null;
@@ -11853,7 +11855,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
11853
11855
  formattedOrder?.trigger_price,
11854
11856
  accountInfo
11855
11857
  ]);
11856
- const estLeverage = React2.useMemo(() => {
11858
+ const estLeverage = React.useMemo(() => {
11857
11859
  if (!accountInfo || !parsedData) return null;
11858
11860
  const result = getPriceAndQty2(formattedOrder);
11859
11861
  if (result === null || !result.price || !result.quantity) return null;
@@ -11909,11 +11911,11 @@ function useMediaQuery(query) {
11909
11911
  }
11910
11912
  return false;
11911
11913
  };
11912
- const [matches, setMatches] = React2.useState(getMatches(query));
11914
+ const [matches, setMatches] = React.useState(getMatches(query));
11913
11915
  function handleChange() {
11914
11916
  setMatches(getMatches(query));
11915
11917
  }
11916
- React2.useEffect(() => {
11918
+ React.useEffect(() => {
11917
11919
  const matchMedia = window?.matchMedia(query);
11918
11920
  handleChange();
11919
11921
  if (matchMedia?.addListener) {
@@ -12438,13 +12440,13 @@ var DefaultLayoutConfig = {
12438
12440
  }
12439
12441
  };
12440
12442
  var usePoster = (data, options) => {
12441
- const [error, setError] = React2.useState(null);
12442
- const [canCopy, setCanCopy] = React2.useState(
12443
+ const [error, setError] = React.useState(null);
12444
+ const [canCopy, setCanCopy] = React.useState(
12443
12445
  () => typeof navigator.clipboard !== "undefined"
12444
12446
  );
12445
- const painterRef = React2.useRef(null);
12446
- const [target, setTarget] = React2.useState(null);
12447
- React2.useEffect(() => {
12447
+ const painterRef = React.useRef(null);
12448
+ const [target, setTarget] = React.useState(null);
12449
+ React.useEffect(() => {
12448
12450
  if (target) {
12449
12451
  if (!painterRef.current) {
12450
12452
  painterRef.current = new PosterPainter(target, {
@@ -12466,7 +12468,7 @@ var usePoster = (data, options) => {
12466
12468
  }
12467
12469
  return target.toDataURL(type, encoderOptions);
12468
12470
  };
12469
- const toBlob = React2.useCallback(
12471
+ const toBlob = React.useCallback(
12470
12472
  (type, encoderOptions) => {
12471
12473
  return new Promise((resolve) => {
12472
12474
  if (!target) {
@@ -12486,7 +12488,7 @@ var usePoster = (data, options) => {
12486
12488
  }
12487
12489
  setTarget(ref2);
12488
12490
  };
12489
- const download = React2.useCallback(
12491
+ const download = React.useCallback(
12490
12492
  (filename, type = "image/png", encoderOptions) => {
12491
12493
  if (!target) {
12492
12494
  throw new types.SDKError("The ref must be a canvas element");
@@ -12500,7 +12502,7 @@ var usePoster = (data, options) => {
12500
12502
  },
12501
12503
  [target]
12502
12504
  );
12503
- const copy = React2.useCallback(() => {
12505
+ const copy = React.useCallback(() => {
12504
12506
  if (!target) {
12505
12507
  throw new types.SDKError("The ref must be a canvas element");
12506
12508
  }
@@ -12551,7 +12553,7 @@ var TWType = /* @__PURE__ */ ((TWType2) => {
12551
12553
  return TWType2;
12552
12554
  })(TWType || {});
12553
12555
  var useEpochInfo = (type) => {
12554
- const [curEpochInfo, setCurEpochInfo] = React2.useState(
12556
+ const [curEpochInfo, setCurEpochInfo] = React.useState(
12555
12557
  void 0
12556
12558
  );
12557
12559
  const path2 = type === "normal" /* normal */ ? "/v1/public/trading_rewards/epoch_info" : "/v1/public/market_making_rewards/epoch_info";
@@ -12586,7 +12588,7 @@ var useEpochInfo = (type) => {
12586
12588
  return [];
12587
12589
  }
12588
12590
  });
12589
- const isNotStared = React2.useMemo(() => {
12591
+ const isNotStared = React.useMemo(() => {
12590
12592
  const epochOne = epochInfo?.find((item) => item.epoch_id === 1);
12591
12593
  if (epochOne) {
12592
12594
  return epochOne.start_time > utils.getTimestamp();
@@ -12608,7 +12610,7 @@ var useAllBrokers = () => {
12608
12610
  return [data];
12609
12611
  };
12610
12612
  var useCurEpochEstimate = (type) => {
12611
- const [data, setData] = React2.useState(void 0);
12613
+ const [data, setData] = React.useState(void 0);
12612
12614
  const { account: account9 } = useAccount();
12613
12615
  const brokers = useAllBrokers();
12614
12616
  const address = account9.address;
@@ -12626,7 +12628,7 @@ var useCurEpochEstimate = (type) => {
12626
12628
  return data2;
12627
12629
  }
12628
12630
  });
12629
- const reuslt = React2.useMemo(() => {
12631
+ const reuslt = React.useMemo(() => {
12630
12632
  if (estimateData) {
12631
12633
  const newData = { ...estimateData };
12632
12634
  newData.rows = newData.rows?.map((item) => ({
@@ -12660,7 +12662,7 @@ var useAccountRewardsHistory = (address) => {
12660
12662
  }
12661
12663
  }
12662
12664
  );
12663
- const result = React2.useMemo(() => {
12665
+ const result = React.useMemo(() => {
12664
12666
  if (data && brokers) {
12665
12667
  const newData = [...data];
12666
12668
  newData.forEach((data2) => {
@@ -17495,7 +17497,7 @@ var ENVType2 = /* @__PURE__ */ ((ENVType3) => {
17495
17497
  return ENVType3;
17496
17498
  })(ENVType2 || {});
17497
17499
  var useGetEnv = () => {
17498
- const { configStore } = React2.useContext(OrderlyContext);
17500
+ const { configStore } = React.useContext(OrderlyContext);
17499
17501
  const env = configStore.get("env");
17500
17502
  const networkId = configStore.get("networkId");
17501
17503
  if (networkId === "mainnet") {
@@ -17570,11 +17572,11 @@ var DistributionId = /* @__PURE__ */ ((DistributionId2) => {
17570
17572
  return DistributionId2;
17571
17573
  })(DistributionId || {});
17572
17574
  var useGetClaimed = (id) => {
17573
- const [data, setData] = React2.useState(0);
17575
+ const [data, setData] = React.useState(0);
17574
17576
  const { account: account9 } = useAccount();
17575
17577
  const address = account9.address;
17576
17578
  const env = useGetEnv();
17577
- const refresh = React2.useCallback(() => {
17579
+ const refresh = React.useCallback(() => {
17578
17580
  const params = getContractByEnv(env);
17579
17581
  if (typeof address === "undefined")
17580
17582
  return;
@@ -17595,7 +17597,7 @@ var useGetClaimed = (id) => {
17595
17597
  }).catch((error) => {
17596
17598
  });
17597
17599
  }, [address, env]);
17598
- React2.useEffect(() => {
17600
+ React.useEffect(() => {
17599
17601
  refresh();
17600
17602
  }, [env, id, address]);
17601
17603
  return [data, { refresh }];
@@ -17673,7 +17675,7 @@ var useApiKeyManager = (queryParams) => {
17673
17675
  "/v1/client/reset_orderly_key_ip_restriction",
17674
17676
  "POST"
17675
17677
  );
17676
- const setIPRestriction = React2.useCallback(
17678
+ const setIPRestriction = React.useCallback(
17677
17679
  (orderly_key, ip_restriction_list) => {
17678
17680
  return doIPRestriction({
17679
17681
  orderly_key,
@@ -17682,7 +17684,7 @@ var useApiKeyManager = (queryParams) => {
17682
17684
  },
17683
17685
  []
17684
17686
  );
17685
- const removeOrderlyKey = React2.useCallback((orderly_key) => {
17687
+ const removeOrderlyKey = React.useCallback((orderly_key) => {
17686
17688
  return doRemoveOrderKey({
17687
17689
  orderly_key
17688
17690
  });
@@ -17763,12 +17765,12 @@ var initialOrderState = {
17763
17765
  callback_rate: ""
17764
17766
  };
17765
17767
  var useOrderStore = (initialOrder) => {
17766
- const [entry, setEntry] = React2.useState(initialOrder);
17767
- const [estLeverage, setEstLeverage] = React2.useState(null);
17768
- const [estLiquidationPrice, setEstLiquidationPrice] = React2.useState(
17768
+ const [entry, setEntry] = React.useState(initialOrder);
17769
+ const [estLeverage, setEstLeverage] = React.useState(null);
17770
+ const [estLiquidationPrice, setEstLiquidationPrice] = React.useState(
17769
17771
  null
17770
17772
  );
17771
- const [errors, setErrors] = React2.useState({});
17773
+ const [errors, setErrors] = React.useState({});
17772
17774
  const updateOrder = (order) => {
17773
17775
  setEntry(
17774
17776
  // if use {...draft, ...order} will cause extra updated when object it not changed
@@ -17830,7 +17832,7 @@ var useOrderEntryNextInternal = (symbol, options = {}) => {
17830
17832
  ...options.initialOrder
17831
17833
  };
17832
17834
  const { actions: orderEntryActions, entry: orderEntity } = useOrderStore(initialOrder);
17833
- const calculate2 = React2.useCallback(
17835
+ const calculate2 = React.useCallback(
17834
17836
  (values, fieldName, value, markPrice, config) => {
17835
17837
  const fieldHandler = getCalculateHandler(fieldName);
17836
17838
  const newValues = ramda.compose(
@@ -17843,7 +17845,7 @@ var useOrderEntryNextInternal = (symbol, options = {}) => {
17843
17845
  },
17844
17846
  []
17845
17847
  );
17846
- React2.useEffect(() => {
17848
+ React.useEffect(() => {
17847
17849
  orderEntryActions.updateOrderByKey("symbol", symbol);
17848
17850
  }, [orderEntryActions, symbol]);
17849
17851
  const setValue = (key, value, additional) => {
@@ -17947,7 +17949,7 @@ var useOrderEntryNextInternal = (symbol, options = {}) => {
17947
17949
  orderEntryActions.updateOrder(newValues);
17948
17950
  return newValues;
17949
17951
  };
17950
- const onMarkPriceUpdated = React2.useCallback(
17952
+ const onMarkPriceUpdated = React.useCallback(
17951
17953
  (markPrice, baseOn = []) => {
17952
17954
  if (!options.symbolInfo) return;
17953
17955
  let newValues = { ...orderEntity };
@@ -18000,7 +18002,7 @@ var useOrderEntryNextInternal = (symbol, options = {}) => {
18000
18002
  });
18001
18003
  return order;
18002
18004
  };
18003
- const submitOrder = React2.useCallback(() => {
18005
+ const submitOrder = React.useCallback(() => {
18004
18006
  }, [orderEntity]);
18005
18007
  const resetOrder = (order) => {
18006
18008
  orderEntryActions.resetOrder(order);
@@ -18024,17 +18026,17 @@ var useOrderEntry2 = (symbol, options = {}) => {
18024
18026
  }
18025
18027
  const ee = useEventEmitter();
18026
18028
  const { track: track2 } = useTrack();
18027
- const [meta, setMeta] = React2.useState({
18029
+ const [meta, setMeta] = React.useState({
18028
18030
  dirty: {},
18029
18031
  submitted: false,
18030
18032
  validated: false,
18031
18033
  errors: null
18032
18034
  });
18033
- const askAndBid = React2.useRef([[]]);
18034
- const lastChangedField = React2.useRef();
18035
- const lastOrderTypeExt = React2.useRef();
18036
- const lastLevel = React2.useRef();
18037
- const calculateTPSL_baseOn = React2.useRef({
18035
+ const askAndBid = React.useRef([[]]);
18036
+ const lastChangedField = React.useRef();
18037
+ const lastOrderTypeExt = React.useRef();
18038
+ const lastLevel = React.useRef();
18039
+ const calculateTPSL_baseOn = React.useRef({
18038
18040
  tp: "",
18039
18041
  sl: ""
18040
18042
  });
@@ -18060,7 +18062,7 @@ var useOrderEntry2 = (symbol, options = {}) => {
18060
18062
  symbolInfo,
18061
18063
  symbolLeverage
18062
18064
  });
18063
- const [estSlippage, setEstSlippage] = React2.useState(null);
18065
+ const [estSlippage, setEstSlippage] = React.useState(null);
18064
18066
  const [doCreateOrder, { isMutating }] = useMutation(
18065
18067
  getCreateOrderUrl(formattedOrder)
18066
18068
  );
@@ -18136,7 +18138,7 @@ var useOrderEntry2 = (symbol, options = {}) => {
18136
18138
  setEstSlippage(estSlippage2);
18137
18139
  }
18138
18140
  };
18139
- React2.useEffect(() => {
18141
+ React.useEffect(() => {
18140
18142
  updateOrderPrice();
18141
18143
  }, [formattedOrder.order_type_ext, formattedOrder.level]);
18142
18144
  const onOrderBookUpdate = useDebounce.useDebouncedCallback((data) => {
@@ -18151,13 +18153,13 @@ var useOrderEntry2 = (symbol, options = {}) => {
18151
18153
  updateOrderPriceByOrderBook();
18152
18154
  updateEstSlippage(data);
18153
18155
  }, 200);
18154
- React2.useEffect(() => {
18156
+ React.useEffect(() => {
18155
18157
  ee.on("orderbook:update", onOrderBookUpdate);
18156
18158
  return () => {
18157
18159
  ee.off("orderbook:update", onOrderBookUpdate);
18158
18160
  };
18159
18161
  }, []);
18160
- React2.useEffect(() => {
18162
+ React.useEffect(() => {
18161
18163
  if ((formattedOrder.order_type === types.OrderType.MARKET || formattedOrder.order_type === types.OrderType.STOP_MARKET) && markPrice) {
18162
18164
  const baseOn = /* @__PURE__ */ new Set();
18163
18165
  if (lastChangedField.current) {
@@ -18172,7 +18174,7 @@ var useOrderEntry2 = (symbol, options = {}) => {
18172
18174
  orderEntryActions.onMarkPriceChange(markPrice, Array.from(baseOn));
18173
18175
  }
18174
18176
  }, [markPrice, formattedOrder.order_type]);
18175
- const prepareData = React2.useCallback(() => {
18177
+ const prepareData = React.useCallback(() => {
18176
18178
  return {
18177
18179
  markPrice: actions.getMarkPriceBySymbol(symbol),
18178
18180
  maxQty,
@@ -18281,14 +18283,14 @@ var useOrderEntry2 = (symbol, options = {}) => {
18281
18283
  );
18282
18284
  };
18283
18285
  const { freeCollateral, totalCollateral } = useCollateral();
18284
- const currentPosition = React2.useMemo(() => {
18286
+ const currentPosition = React.useMemo(() => {
18285
18287
  const rows = positions3 ?? [];
18286
18288
  const p = Array.isArray(rows) ? rows.find(
18287
18289
  (r) => r.symbol === symbol
18288
18290
  ) : null;
18289
18291
  return p?.position_qty ?? 0;
18290
18292
  }, [positions3, symbol]);
18291
- const estLiqPrice = React2.useMemo(() => {
18293
+ const estLiqPrice = React.useMemo(() => {
18292
18294
  const markPrice2 = actions.getMarkPriceBySymbol(symbol);
18293
18295
  if (!markPrice2 || !accountInfo || !symbolInfo) {
18294
18296
  return null;
@@ -18312,13 +18314,13 @@ var useOrderEntry2 = (symbol, options = {}) => {
18312
18314
  maxQty,
18313
18315
  symbolInfo
18314
18316
  ]);
18315
- const estLiqPriceDistance = React2.useMemo(() => {
18317
+ const estLiqPriceDistance = React.useMemo(() => {
18316
18318
  if (!estLiqPrice) {
18317
18319
  return null;
18318
18320
  }
18319
18321
  return new utils.Decimal(estLiqPrice).minus(markPrice).abs().div(markPrice).toNumber();
18320
18322
  }, [estLiqPrice, markPrice]);
18321
- const estLeverage = React2.useMemo(() => {
18323
+ const estLeverage = React.useMemo(() => {
18322
18324
  if (!symbolInfo) {
18323
18325
  return null;
18324
18326
  }
@@ -18422,7 +18424,7 @@ var useOrderEntry2 = (symbol, options = {}) => {
18422
18424
  }
18423
18425
  return result;
18424
18426
  };
18425
- React2.useEffect(() => {
18427
+ React.useEffect(() => {
18426
18428
  resetMetaState();
18427
18429
  }, [formattedOrder.order_type]);
18428
18430
  return {
@@ -18548,10 +18550,10 @@ var useOrderEntity = (order, options) => {
18548
18550
  if (!symbol) {
18549
18551
  throw new types.SDKError("Symbol is required");
18550
18552
  }
18551
- const [errors, setErrors] = React2.useState({});
18553
+ const [errors, setErrors] = React.useState({});
18552
18554
  const markPrice = useMarkPriceBySymbol(symbol);
18553
18555
  const symbolsInfo = useSymbolsInfo();
18554
- const prepareData = React2.useCallback(() => {
18556
+ const prepareData = React.useCallback(() => {
18555
18557
  return {
18556
18558
  markPrice,
18557
18559
  maxQty: maxQty || 0,
@@ -18575,7 +18577,7 @@ var useOrderEntity = (order, options) => {
18575
18577
  }
18576
18578
  );
18577
18579
  });
18578
- const clearErrors = React2.useCallback(() => {
18580
+ const clearErrors = React.useCallback(() => {
18579
18581
  setErrors({});
18580
18582
  }, []);
18581
18583
  return {
@@ -18597,10 +18599,10 @@ var useRestrictedInfo = (options) => {
18597
18599
  customUnblockRegions = defaultUnblockRegions,
18598
18600
  content
18599
18601
  } = options || {};
18600
- const [ip, setIp] = React2.useState("");
18601
- const [allInvalidAreas, setAllInvalidAreas] = React2.useState([]);
18602
- const [restrictedOpen, setRestrictedOpen] = React2.useState(false);
18603
- const [canUnblock, setCanUnblock] = React2.useState(false);
18602
+ const [ip, setIp] = React.useState("");
18603
+ const [allInvalidAreas, setAllInvalidAreas] = React.useState([]);
18604
+ const [restrictedOpen, setRestrictedOpen] = React.useState(false);
18605
+ const [canUnblock, setCanUnblock] = React.useState(false);
18604
18606
  const [accessRestricted, setAccessRestricted] = useLocalStorage("orderly_access_restricted", void 0);
18605
18607
  const { data: ipInfo } = useQuery("/v1/ip_info", {
18606
18608
  revalidateOnFocus: false
@@ -18611,7 +18613,7 @@ var useRestrictedInfo = (options) => {
18611
18613
  revalidateOnFocus: false
18612
18614
  }
18613
18615
  );
18614
- React2.useEffect(() => {
18616
+ React.useEffect(() => {
18615
18617
  if (!restrictedAreas || !ipInfo) {
18616
18618
  return;
18617
18619
  }
@@ -18677,12 +18679,12 @@ var usePositionClose = (options) => {
18677
18679
  const { position, order: initialOrder } = options;
18678
18680
  const { type, quantity, price } = initialOrder;
18679
18681
  const symbol = position.symbol;
18680
- const [errors, setErrors] = React2.useState(null);
18682
+ const [errors, setErrors] = React.useState(null);
18681
18683
  const symbolsInfo = useSymbolsInfo();
18682
18684
  const { data: markPrices } = useMarkPricesStream();
18683
- const markPricesRef = React2.useRef(markPrices);
18685
+ const markPricesRef = React.useRef(markPrices);
18684
18686
  const { orderMetadata } = useOrderlyContext();
18685
- React2.useEffect(() => {
18687
+ React.useEffect(() => {
18686
18688
  markPricesRef.current = markPrices;
18687
18689
  }, [markPrices]);
18688
18690
  const [doCreateOrder, { isMutating }] = useSubAccountMutation(
@@ -18693,7 +18695,7 @@ var usePositionClose = (options) => {
18693
18695
  }
18694
18696
  );
18695
18697
  const side = position.position_qty > 0 ? types.OrderSide.SELL : types.OrderSide.BUY;
18696
- const closeOrderData = React2.useMemo(() => {
18698
+ const closeOrderData = React.useMemo(() => {
18697
18699
  const data = {
18698
18700
  order_quantity: quantity,
18699
18701
  symbol,
@@ -18706,7 +18708,7 @@ var usePositionClose = (options) => {
18706
18708
  }
18707
18709
  return data;
18708
18710
  }, [symbol, price, type, quantity]);
18709
- const maxQty = React2.useMemo(() => {
18711
+ const maxQty = React.useMemo(() => {
18710
18712
  if (!position) {
18711
18713
  return 0;
18712
18714
  }
@@ -18727,7 +18729,7 @@ var usePositionClose = (options) => {
18727
18729
  }
18728
18730
  return 0;
18729
18731
  }, [position, side]);
18730
- const validate = React2.useCallback(
18732
+ const validate = React.useCallback(
18731
18733
  async (data) => {
18732
18734
  const creator = getOrderCreator(data);
18733
18735
  const errors2 = await creator.validate(data, {
@@ -18740,12 +18742,12 @@ var usePositionClose = (options) => {
18740
18742
  },
18741
18743
  [maxQty, symbol, symbolsInfo]
18742
18744
  );
18743
- React2.useEffect(() => {
18745
+ React.useEffect(() => {
18744
18746
  validate(closeOrderData).then((errors2) => {
18745
18747
  setErrors(errors2);
18746
18748
  });
18747
18749
  }, [validate, closeOrderData]);
18748
- const submit = React2.useCallback(async () => {
18750
+ const submit = React.useCallback(async () => {
18749
18751
  const errors2 = await validate(closeOrderData);
18750
18752
  if (Object.keys(errors2).length > 0) {
18751
18753
  throw errors2;
@@ -18819,7 +18821,7 @@ var useTpslPriceChecker = (params) => {
18819
18821
  currentPosition,
18820
18822
  orderQuantity
18821
18823
  } = params;
18822
- const prevResultRef = React2.useRef(null);
18824
+ const prevResultRef = React.useRef(null);
18823
18825
  function validateSlPriceBasic(slPriceDecimal, liqPriceDecimal) {
18824
18826
  if (!side) return null;
18825
18827
  const distance_ratio = calculateDistanceRatio(
@@ -18867,7 +18869,7 @@ var useTpslPriceChecker = (params) => {
18867
18869
  );
18868
18870
  return checkDistanceAndReturnResult(distance_ratio, warning_threshold);
18869
18871
  }
18870
- const currentResult = React2.useMemo(() => {
18872
+ const currentResult = React.useMemo(() => {
18871
18873
  if (slPrice === void 0 || liqPrice === void 0 || side === void 0 || liqPrice === null) {
18872
18874
  return null;
18873
18875
  }
@@ -18910,14 +18912,14 @@ var useTpslPriceChecker = (params) => {
18910
18912
  var useEstLiqPriceBySymbol = (symbol) => {
18911
18913
  const [data] = usePositionStream(symbol);
18912
18914
  const position = data?.rows?.find((row) => row.symbol === symbol);
18913
- return React2.useMemo(() => {
18915
+ return React.useMemo(() => {
18914
18916
  return position?.est_liq_price ?? void 0;
18915
18917
  }, [position]);
18916
18918
  };
18917
18919
  var useGetEstLiqPrice = (props) => {
18918
18920
  const { estLiqPrice, symbol, side } = props;
18919
18921
  const { data: markPrice } = useMarkPrice(symbol);
18920
- return React2.useMemo(() => {
18922
+ return React.useMemo(() => {
18921
18923
  if (!estLiqPrice || !markPrice) {
18922
18924
  return null;
18923
18925
  }
@@ -19116,6 +19118,7 @@ exports.useTradingRewardsStatus = useTradingRewardsStatus;
19116
19118
  exports.useTransfer = useTransfer;
19117
19119
  exports.useTransferHistory = useTransferHistory;
19118
19120
  exports.useUpdatedRef = useUpdatedRef;
19121
+ exports.useUserStatistics = useUserStatistics;
19119
19122
  exports.useVaultsHistory = useVaultsHistory;
19120
19123
  exports.useWS = useWS;
19121
19124
  exports.useWalletConnector = useWalletConnector;