@orderly.network/hooks 1.1.3-alpha.9 → 1.1.3

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.d.mts CHANGED
@@ -25,7 +25,7 @@ declare global {
25
25
  };
26
26
  }
27
27
  }
28
- declare const _default: "1.1.3-alpha.9";
28
+ declare const _default: "1.1.3";
29
29
 
30
30
  type useQueryOptions<T> = SWRConfiguration & {
31
31
  formatter?: (data: any) => T;
@@ -118,7 +118,11 @@ interface OrderlyConfigContextState {
118
118
  declare const OrderlyContext: react.Context<OrderlyConfigContextState>;
119
119
  declare const OrderlyProvider: react.Provider<OrderlyConfigContextState>;
120
120
 
121
- type WsNetworkStatus = "connected" | "unstable" | "disconnected";
121
+ declare enum WsNetworkStatus {
122
+ Connected = "connected",
123
+ Unstable = "unstable",
124
+ Disconnected = "disconnected"
125
+ }
122
126
  declare function useWsStatus(): WsNetworkStatus;
123
127
 
124
128
  interface StatusContextState {
@@ -185,7 +189,7 @@ type OrderbookOptions = {
185
189
  declare const useOrderbookStream: (symbol: string, initial?: OrderbookData, options?: OrderbookOptions) => ({
186
190
  asks: OrderBookItem[];
187
191
  bids: OrderBookItem[];
188
- markPrice: any;
192
+ markPrice: number;
189
193
  middlePrice: number[];
190
194
  onDepthChange?: undefined;
191
195
  depth?: undefined;
@@ -240,7 +244,7 @@ type UseOrderEntryReturn = {
240
244
  metaState: UseOrderEntryMetaState;
241
245
  symbolConfig: API.SymbolExt;
242
246
  };
243
- type OrderParams = Required<Pick<OrderEntity, "side" | "order_type" | "symbol">> & Partial<Omit<OrderEntity, "side" | "symbol" | "order_type">>;
247
+ type OrderParams = Required<Pick<OrderEntity, "side" | "order_type" | "symbol">> & Partial<Omit<OrderEntity, "side" | "symbol" | "order_type">> & {};
244
248
  /**
245
249
  * Create Order
246
250
  * @example
@@ -302,7 +306,9 @@ declare const useMarkets: (type: MarketsType) => readonly [_orderly_network_type
302
306
 
303
307
  declare const useMarkPricesStream: () => swr_subscription.SWRSubscriptionResponse<any, any>;
304
308
 
305
- declare const useMarkPrice: (symbol: string) => swr_subscription.SWRSubscriptionResponse<any, any>;
309
+ declare const useMarkPrice: (symbol: string) => {
310
+ data: number;
311
+ };
306
312
 
307
313
  declare const useIndexPrice: (symbol: string) => swr_subscription.SWRSubscriptionResponse<any, any>;
308
314
 
@@ -539,4 +545,4 @@ declare const useCrossSwap: () => any;
539
545
  /** @hidden */
540
546
  declare const useSwap: () => any;
541
547
 
542
- export { ConfigProviderProps, Favorite, FavoriteTab, MarketsType, OrderlyConfigContextState, OrderlyConfigProvider, OrderlyContext, OrderlyProvider, Recent, StatusContext, StatusContextState, StatusProvider, UseOrderEntryMetaState, WalletConnectorContext, cleanStringStyle, useAccount, useAccountInfo, useAccountInstance, useBoolean, useChain, useChains, useCollateral, useConfig, useCrossSwap, useDeposit, useEventEmitter, useFundingRate, useHoldingStream, useIndexPrice, useLazyQuery, useLeverage, useLocalStorage, useMarginRatio, useMarkPrice, useMarkPricesStream, useMarketTradeStream, useMarkets, useMarketsStream, useMaxQty, useMediaQuery, useMutation, useOrderEntry, useOrderStream, useOrderbookStream, usePositionStream, usePreLoadData, usePrivateDataObserver, usePrivateInfiniteQuery, usePrivateQuery, useQuery, useSessionStorage, useSettleSubscription, useSwap, useSymbolPriceRange, useSymbolsInfo, useTickerStream, useWS, useWalletConnector, useWalletSubscription, useWithdraw, useWooCrossSwapQuery, useWooSwapQuery, useWsStatus, _default as version };
548
+ export { ConfigProviderProps, Favorite, FavoriteTab, MarketsType, OrderParams, OrderlyConfigContextState, OrderlyConfigProvider, OrderlyContext, OrderlyProvider, Recent, StatusContext, StatusContextState, StatusProvider, UseOrderEntryMetaState, WalletConnectorContext, WsNetworkStatus, cleanStringStyle, useAccount, useAccountInfo, useAccountInstance, useBoolean, useChain, useChains, useCollateral, useConfig, useCrossSwap, useDeposit, useEventEmitter, useFundingRate, useHoldingStream, useIndexPrice, useLazyQuery, useLeverage, useLocalStorage, useMarginRatio, useMarkPrice, useMarkPricesStream, useMarketTradeStream, useMarkets, useMarketsStream, useMaxQty, useMediaQuery, useMutation, useOrderEntry, useOrderStream, useOrderbookStream, usePositionStream, usePreLoadData, usePrivateDataObserver, usePrivateInfiniteQuery, usePrivateQuery, useQuery, useSessionStorage, useSettleSubscription, useSwap, useSymbolPriceRange, useSymbolsInfo, useTickerStream, useWS, useWalletConnector, useWalletSubscription, useWithdraw, useWooCrossSwapQuery, useWooSwapQuery, useWsStatus, _default as version };
package/dist/index.d.ts CHANGED
@@ -25,7 +25,7 @@ declare global {
25
25
  };
26
26
  }
27
27
  }
28
- declare const _default: "1.1.3-alpha.9";
28
+ declare const _default: "1.1.3";
29
29
 
30
30
  type useQueryOptions<T> = SWRConfiguration & {
31
31
  formatter?: (data: any) => T;
@@ -118,7 +118,11 @@ interface OrderlyConfigContextState {
118
118
  declare const OrderlyContext: react.Context<OrderlyConfigContextState>;
119
119
  declare const OrderlyProvider: react.Provider<OrderlyConfigContextState>;
120
120
 
121
- type WsNetworkStatus = "connected" | "unstable" | "disconnected";
121
+ declare enum WsNetworkStatus {
122
+ Connected = "connected",
123
+ Unstable = "unstable",
124
+ Disconnected = "disconnected"
125
+ }
122
126
  declare function useWsStatus(): WsNetworkStatus;
123
127
 
124
128
  interface StatusContextState {
@@ -185,7 +189,7 @@ type OrderbookOptions = {
185
189
  declare const useOrderbookStream: (symbol: string, initial?: OrderbookData, options?: OrderbookOptions) => ({
186
190
  asks: OrderBookItem[];
187
191
  bids: OrderBookItem[];
188
- markPrice: any;
192
+ markPrice: number;
189
193
  middlePrice: number[];
190
194
  onDepthChange?: undefined;
191
195
  depth?: undefined;
@@ -240,7 +244,7 @@ type UseOrderEntryReturn = {
240
244
  metaState: UseOrderEntryMetaState;
241
245
  symbolConfig: API.SymbolExt;
242
246
  };
243
- type OrderParams = Required<Pick<OrderEntity, "side" | "order_type" | "symbol">> & Partial<Omit<OrderEntity, "side" | "symbol" | "order_type">>;
247
+ type OrderParams = Required<Pick<OrderEntity, "side" | "order_type" | "symbol">> & Partial<Omit<OrderEntity, "side" | "symbol" | "order_type">> & {};
244
248
  /**
245
249
  * Create Order
246
250
  * @example
@@ -302,7 +306,9 @@ declare const useMarkets: (type: MarketsType) => readonly [_orderly_network_type
302
306
 
303
307
  declare const useMarkPricesStream: () => swr_subscription.SWRSubscriptionResponse<any, any>;
304
308
 
305
- declare const useMarkPrice: (symbol: string) => swr_subscription.SWRSubscriptionResponse<any, any>;
309
+ declare const useMarkPrice: (symbol: string) => {
310
+ data: number;
311
+ };
306
312
 
307
313
  declare const useIndexPrice: (symbol: string) => swr_subscription.SWRSubscriptionResponse<any, any>;
308
314
 
@@ -539,4 +545,4 @@ declare const useCrossSwap: () => any;
539
545
  /** @hidden */
540
546
  declare const useSwap: () => any;
541
547
 
542
- export { ConfigProviderProps, Favorite, FavoriteTab, MarketsType, OrderlyConfigContextState, OrderlyConfigProvider, OrderlyContext, OrderlyProvider, Recent, StatusContext, StatusContextState, StatusProvider, UseOrderEntryMetaState, WalletConnectorContext, cleanStringStyle, useAccount, useAccountInfo, useAccountInstance, useBoolean, useChain, useChains, useCollateral, useConfig, useCrossSwap, useDeposit, useEventEmitter, useFundingRate, useHoldingStream, useIndexPrice, useLazyQuery, useLeverage, useLocalStorage, useMarginRatio, useMarkPrice, useMarkPricesStream, useMarketTradeStream, useMarkets, useMarketsStream, useMaxQty, useMediaQuery, useMutation, useOrderEntry, useOrderStream, useOrderbookStream, usePositionStream, usePreLoadData, usePrivateDataObserver, usePrivateInfiniteQuery, usePrivateQuery, useQuery, useSessionStorage, useSettleSubscription, useSwap, useSymbolPriceRange, useSymbolsInfo, useTickerStream, useWS, useWalletConnector, useWalletSubscription, useWithdraw, useWooCrossSwapQuery, useWooSwapQuery, useWsStatus, _default as version };
548
+ export { ConfigProviderProps, Favorite, FavoriteTab, MarketsType, OrderParams, OrderlyConfigContextState, OrderlyConfigProvider, OrderlyContext, OrderlyProvider, Recent, StatusContext, StatusContextState, StatusProvider, UseOrderEntryMetaState, WalletConnectorContext, WsNetworkStatus, cleanStringStyle, useAccount, useAccountInfo, useAccountInstance, useBoolean, useChain, useChains, useCollateral, useConfig, useCrossSwap, useDeposit, useEventEmitter, useFundingRate, useHoldingStream, useIndexPrice, useLazyQuery, useLeverage, useLocalStorage, useMarginRatio, useMarkPrice, useMarkPricesStream, useMarketTradeStream, useMarkets, useMarketsStream, useMaxQty, useMediaQuery, useMutation, useOrderEntry, useOrderStream, useOrderbookStream, usePositionStream, usePreLoadData, usePrivateDataObserver, usePrivateInfiniteQuery, usePrivateQuery, useQuery, useSessionStorage, useSettleSubscription, useSwap, useSymbolPriceRange, useSymbolsInfo, useTickerStream, useWS, useWalletConnector, useWalletSubscription, useWithdraw, useWooCrossSwapQuery, useWooSwapQuery, useWsStatus, _default as version };
package/dist/index.js CHANGED
@@ -28,9 +28,9 @@ var useSWRSubscription__default = /*#__PURE__*/_interopDefault(useSWRSubscriptio
28
28
  // src/version.ts
29
29
  if (typeof window !== "undefined") {
30
30
  window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
31
- window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.1.3-alpha.9";
31
+ window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.1.3";
32
32
  }
33
- var version_default = "1.1.3-alpha.9";
33
+ var version_default = "1.1.3";
34
34
  var fetcher = (url, init = {}, queryOptions) => net.get(url, init, queryOptions?.formatter);
35
35
  var OrderlyContext = React.createContext({
36
36
  // configStore: new MemoryConfigStore(),
@@ -457,10 +457,16 @@ var useWS = () => {
457
457
  });
458
458
  return ws;
459
459
  };
460
+ var WsNetworkStatus = /* @__PURE__ */ ((WsNetworkStatus2) => {
461
+ WsNetworkStatus2["Connected"] = "connected";
462
+ WsNetworkStatus2["Unstable"] = "unstable";
463
+ WsNetworkStatus2["Disconnected"] = "disconnected";
464
+ return WsNetworkStatus2;
465
+ })(WsNetworkStatus || {});
460
466
  function useWsStatus() {
461
467
  const ws = useWS();
462
468
  const [wsStatus, setWsStatus] = React.useState(
463
- ws.client.public.readyState ? "connected" : "disconnected"
469
+ ws.client.public.readyState ? "connected" /* Connected */ : "disconnected" /* Disconnected */
464
470
  );
465
471
  const connectCount = React.useRef(0);
466
472
  React.useEffect(() => {
@@ -470,16 +476,16 @@ function useWsStatus() {
470
476
  switch (type) {
471
477
  case "open":
472
478
  connectCount.current = 0;
473
- setWsStatus("connected");
479
+ setWsStatus("connected" /* Connected */);
474
480
  break;
475
481
  case "close":
476
482
  connectCount.current = 0;
477
- setWsStatus("disconnected");
483
+ setWsStatus("disconnected" /* Disconnected */);
478
484
  break;
479
485
  case "reconnecting":
480
486
  connectCount.current++;
481
- if (connectCount.current >= 2) {
482
- setWsStatus("unstable");
487
+ if (connectCount.current >= 3) {
488
+ setWsStatus("unstable" /* Unstable */);
483
489
  }
484
490
  break;
485
491
  }
@@ -507,7 +513,8 @@ var usePrivateDataObserver = (options) => {
507
513
  "positions"
508
514
  );
509
515
  map.forEach((getKey, key) => {
510
- if (orderStatus === "history" && key === "orders" || orderStatus === "positions" && key === "orders:NEW" || key.includes(orderStatus)) {
516
+ if (orderStatus === "history" && key === "orders" || orderStatus === "positions" && key === "orders:NEW" || key.includes("INCOMPLETE") || // always update pending list
517
+ key.includes(orderStatus)) {
511
518
  mutate2(
512
519
  useSWRInfinite.unstable_serialize((index, prevData) => [
513
520
  getKey(index, prevData),
@@ -704,16 +711,18 @@ var useWalletConnector = () => {
704
711
  };
705
712
  var useMarkPrice = (symbol) => {
706
713
  const ws = useWS();
707
- return useSWRSubscription__default.default(`${symbol}@markprice`, (key, { next }) => {
714
+ const [price, setPrice] = React.useState(0);
715
+ React.useEffect(() => {
708
716
  const unsubscribe = ws.subscribe(`${symbol}@markprice`, {
709
717
  onMessage: (message) => {
710
- next(null, message.price);
718
+ setPrice(message.price);
711
719
  }
712
720
  });
713
721
  return () => {
714
722
  unsubscribe?.();
715
723
  };
716
- });
724
+ }, [symbol]);
725
+ return { data: price };
717
726
  };
718
727
  var useIndexPrice = (symbol) => {
719
728
  symbol = symbol.replace("PERP", "SPOT");
@@ -879,7 +888,7 @@ var reduceItems = (depth, level, data, asks = false) => {
879
888
  const result = [];
880
889
  if (typeof depth !== "undefined") {
881
890
  const prices = /* @__PURE__ */ new Map();
882
- for (let i = 0; i < ramda.min(level, data.length); i++) {
891
+ for (let i = 0; i < data.length; i++) {
883
892
  const [price, quantity] = data[i];
884
893
  if (isNaN(price) || isNaN(quantity))
885
894
  continue;
@@ -1202,13 +1211,13 @@ function quantityInputHandle(inputs) {
1202
1211
  }
1203
1212
  if (values.order_type === types.OrderType.MARKET || values.order_type === types.OrderType.STOP_MARKET) {
1204
1213
  const price = markPrice;
1205
- values.total = quantity.mul(price).todp(2).toNumber();
1214
+ values.total = quantity.mul(price).todp(2).toString();
1206
1215
  }
1207
1216
  if (values.order_type === types.OrderType.LIMIT || values.order_type === types.OrderType.STOP_LIMIT) {
1208
1217
  if (values.order_price) {
1209
1218
  const price = Number(values.order_price);
1210
1219
  const total = quantity.mul(price);
1211
- values.total = total.todp(2).toNumber();
1220
+ values.total = total.todp(2).toString();
1212
1221
  } else {
1213
1222
  values.total = "";
1214
1223
  }
@@ -1237,13 +1246,13 @@ function totalInputHandle(inputs) {
1237
1246
  const totalDP = total.dp();
1238
1247
  if (totalDP > config.quoteDP) {
1239
1248
  total = total.toDecimalPlaces(config.quoteDP);
1240
- values.total = total.toNumber();
1249
+ values.total = total.toString();
1241
1250
  }
1242
1251
  const quantity = total.div(price);
1243
1252
  return [
1244
1253
  {
1245
1254
  ...values,
1246
- order_quantity: quantity.toDecimalPlaces(Math.min(config.baseDP, quantity.dp())).toNumber()
1255
+ order_quantity: quantity.toDecimalPlaces(Math.min(config.baseDP, quantity.dp())).toString()
1247
1256
  },
1248
1257
  input,
1249
1258
  value,
@@ -1711,7 +1720,8 @@ var useOrderStream = (params) => {
1711
1720
  // onError: (err) => {
1712
1721
  // console.error("fetch failed::::", err);
1713
1722
  // },
1714
- formatter: (data) => data
1723
+ formatter: (data) => data,
1724
+ revalidateOnFocus: false
1715
1725
  });
1716
1726
  const flattenOrders = React.useMemo(() => {
1717
1727
  if (!ordersResponse.data) {
@@ -2346,7 +2356,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
2346
2356
  const diffOrderEntry = (prev, current) => {
2347
2357
  if (!prev)
2348
2358
  return null;
2349
- let key, value;
2359
+ let key, value, preValue;
2350
2360
  const keys = Object.keys(current);
2351
2361
  for (let i = 0; i < keys.length; i++) {
2352
2362
  const k = keys[i];
@@ -2357,12 +2367,13 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
2357
2367
  if (preveValue !== currentValue) {
2358
2368
  key = k;
2359
2369
  value = currentValue;
2370
+ preValue = preveValue;
2360
2371
  break;
2361
2372
  }
2362
2373
  }
2363
2374
  if (!key)
2364
2375
  return null;
2365
- return { key, value };
2376
+ return { key, value, preValue };
2366
2377
  };
2367
2378
  const maxQty = useMaxQty(symbol, sideValue, isReduceOnly);
2368
2379
  const parseString2Number = (order3, key) => {
@@ -2373,12 +2384,34 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
2373
2384
  }
2374
2385
  order3[key] = order3[key].replace(/,/g, "");
2375
2386
  };
2387
+ const needParse = React.useMemo(() => {
2388
+ if (typeof symbolOrOrder === "string") {
2389
+ return null;
2390
+ }
2391
+ return ramda.pick([
2392
+ "order_price",
2393
+ "side",
2394
+ "order_quantity",
2395
+ "visible_quantity",
2396
+ "order_type",
2397
+ "order_type_ext",
2398
+ "symbol",
2399
+ "total",
2400
+ "reduce_only",
2401
+ "trigger_price"
2402
+ ])(
2403
+ //@ts-ignore
2404
+ symbolOrOrder
2405
+ );
2406
+ }, [symbolOrOrder]);
2376
2407
  const parsedData = React.useMemo(() => {
2377
2408
  if (typeof symbolOrOrder === "string") {
2378
2409
  return null;
2379
2410
  }
2380
2411
  if (typeof symbolOrOrder.order_quantity === "string") {
2381
2412
  parseString2Number(symbolOrOrder, "order_quantity");
2413
+ } else if (typeof symbolOrOrder.order_quantity === "number") {
2414
+ symbolOrOrder.order_quantity = new utils.Decimal(symbolOrOrder.order_quantity).toDecimalPlaces(baseDP).toString();
2382
2415
  }
2383
2416
  if (typeof symbolOrOrder.order_price === "string") {
2384
2417
  parseString2Number(symbolOrOrder, "order_price");
@@ -2389,14 +2422,18 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
2389
2422
  if (typeof symbolOrOrder.trigger_price === "string") {
2390
2423
  parseString2Number(symbolOrOrder, "trigger_price");
2391
2424
  }
2392
- if (typeof symbolOrOrder.trigger_price === "string") {
2393
- symbolOrOrder.trigger_price = symbolOrOrder.trigger_price.replace(/,/g, "");
2394
- }
2395
- if (typeof symbolOrOrder.order_quantity === "number") {
2396
- symbolOrOrder.order_quantity = new utils.Decimal(symbolOrOrder.order_quantity).toDecimalPlaces(baseDP).toString();
2397
- }
2398
2425
  return symbolOrOrder;
2399
- }, [symbolOrOrder]);
2426
+ }, [
2427
+ needParse?.order_price,
2428
+ needParse?.order_quantity,
2429
+ needParse?.total,
2430
+ needParse?.trigger_price,
2431
+ needParse?.order_type,
2432
+ needParse?.order_type_ext,
2433
+ needParse?.symbol,
2434
+ needParse?.reduce_only,
2435
+ needParse?.side
2436
+ ]);
2400
2437
  const createOrder = (values) => {
2401
2438
  if (!values.symbol) {
2402
2439
  throw new types.SDKError("symbol is error");
@@ -2518,19 +2555,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
2518
2555
  prevOrderData.current = parsedData;
2519
2556
  orderDataCache.current = values;
2520
2557
  return values;
2521
- }, [
2522
- parsedData?.order_price,
2523
- parsedData?.side,
2524
- parsedData?.order_quantity,
2525
- parsedData?.visible_quantity,
2526
- parsedData?.order_type,
2527
- parsedData?.order_type_ext,
2528
- parsedData?.symbol,
2529
- parsedData?.total,
2530
- parsedData?.reduce_only,
2531
- parsedData?.trigger_price,
2532
- markPrice
2533
- ]);
2558
+ }, [parsedData, markPrice]);
2534
2559
  React.useEffect(() => {
2535
2560
  if (!markPrice)
2536
2561
  return;
@@ -4058,7 +4083,7 @@ var woofiDexCrossChainRouterAbi = [
4058
4083
  var nativeTokenAddress = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
4059
4084
  var isNativeTokenChecker = (address) => address === nativeTokenAddress;
4060
4085
  var useChains = (networkId, options = {}) => {
4061
- const { pick: pick3, crossEnabled, wooSwapEnabled, ...swrOptions } = options;
4086
+ const { pick: pick4, crossEnabled, wooSwapEnabled, ...swrOptions } = options;
4062
4087
  const { configStore } = React.useContext(OrderlyContext);
4063
4088
  const field = options?.pick;
4064
4089
  const filterFun = React.useRef(options?.filter);
@@ -5287,6 +5312,7 @@ exports.OrderlyProvider = OrderlyProvider;
5287
5312
  exports.StatusContext = StatusContext;
5288
5313
  exports.StatusProvider = StatusProvider;
5289
5314
  exports.WalletConnectorContext = WalletConnectorContext;
5315
+ exports.WsNetworkStatus = WsNetworkStatus;
5290
5316
  exports.cleanStringStyle = cleanStringStyle;
5291
5317
  exports.useAccount = useAccount;
5292
5318
  exports.useAccountInfo = useAccountInfo;