@orderly.network/hooks 2.1.3 → 2.2.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.mjs CHANGED
@@ -2,7 +2,7 @@ import useSWR, { mutate } from 'swr';
2
2
  export { unstable_serialize, default as useSWR, useSWRConfig } from 'swr';
3
3
  import { get, WS, mutate as mutate$1 } from '@orderly.network/net';
4
4
  import React, { createContext, useContext, useCallback, useState, useEffect, useMemo, useRef, useId, useLayoutEffect } from 'react';
5
- import { TesntTokenFallback, ArbitrumSepoliaTokenInfo, SolanaDevnetTokenInfo, OrderType, OrderSide, SDKError, TrackerEventName, AccountStatusEnum, AlgoOrderRootType, OrderStatus, ArbitrumSepoliaChainInfo, SolanaDevnetChainInfo, MONAD_TESTNET_CHAINID, nativeTokenAddress, ChainKey, chainsInfoMap, ARBITRUM_TESTNET_CHAINID, ARBITRUM_MAINNET_CHAINID, isNativeTokenChecker, ChainNamespace, MaxUint256, DEPOSIT_FEE_RATE, LedgerWalletKey, SolanaChains, AlgoOrderType, TriggerPriceType } from '@orderly.network/types';
5
+ import { TesntTokenFallback, ArbitrumSepoliaTokenInfo, SolanaDevnetTokenInfo, OrderType, OrderSide, SDKError, TrackerEventName, AccountStatusEnum, AlgoOrderRootType, OrderStatus, ArbitrumSepoliaChainInfo, SolanaDevnetChainInfo, ARBITRUM_TESTNET_CHAINID, SOLANA_TESTNET_CHAINID, MONAD_TESTNET_CHAINID, ABSTRACT_TESTNET_CHAINID, nativeTokenAddress, ChainKey, chainsInfoMap, ARBITRUM_MAINNET_CHAINID, isNativeTokenChecker, ChainNamespace, MaxUint256, DEPOSIT_FEE_RATE, LedgerWalletKey, SolanaChains, AlgoOrderType, TriggerPriceType } from '@orderly.network/types';
6
6
  import useSWRMutation from 'swr/mutation';
7
7
  import useConstant from 'use-constant';
8
8
  export { default as useConstant } from 'use-constant';
@@ -12,7 +12,7 @@ import { debounce } from 'lodash';
12
12
  import useSWRInfinite, { unstable_serialize } from 'swr/infinite';
13
13
  import * as amplitude from '@amplitude/analytics-browser';
14
14
  import { jsx } from 'react/jsx-runtime';
15
- import { pathOr, prop, omit, pick, compose, head, mergeDeepRight, min, max, isNil, propOr, path, lensIndex, over } from 'ramda';
15
+ import { pathOr, omit, prop, pick, compose, head, mergeDeepRight, min, max, isNil, propOr, path, lensIndex, over } from 'ramda';
16
16
  import { create } from 'zustand';
17
17
  import { immer } from 'zustand/middleware/immer';
18
18
  import { order, account, positions } from '@orderly.network/perp';
@@ -34,9 +34,9 @@ var __export = (target, all) => {
34
34
  // src/version.ts
35
35
  if (typeof window !== "undefined") {
36
36
  window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
37
- window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.1.3";
37
+ window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "2.2.0";
38
38
  }
39
- var version_default = "2.1.3";
39
+ var version_default = "2.2.0";
40
40
  var fetcher = (url, init2 = {}, queryOptions) => get(url, init2, queryOptions?.formatter);
41
41
  var OrderlyContext = createContext({
42
42
  // configStore: new MemoryConfigStore(),
@@ -3117,30 +3117,59 @@ var useMarkPricesStream = () => {
3117
3117
  const data = useMarkPriceStore((state) => state.markPrices);
3118
3118
  return { data };
3119
3119
  };
3120
+ var generateLeverageLevers = (max3) => {
3121
+ const min3 = 1;
3122
+ const parts = 5;
3123
+ const step = (max3 - min3) / (parts - 1);
3124
+ const result = [];
3125
+ for (let i = 0; i < parts; i++) {
3126
+ result.push(Math.floor(min3 + step * i));
3127
+ }
3128
+ return result;
3129
+ };
3120
3130
  var useLeverage = () => {
3121
- const { data, mutate: mutate3 } = usePrivateQuery("/v1/client/info");
3131
+ const { data, mutate: mutate3 } = usePrivateQuery(
3132
+ "/v1/client/info"
3133
+ );
3122
3134
  const [update, { isMutating }] = useMutation("/v1/client/leverage");
3123
- const { data: config } = useQuery("/v1/public/config", {
3124
- revalidateOnFocus: false
3135
+ const { data: leverageConfig, isLoading } = useQuery("/v1/public/leverage", {
3136
+ revalidateOnFocus: false,
3137
+ errorRetryCount: 3
3138
+ // formatter: (data) => data,
3125
3139
  });
3126
- const updateLeverage = useCallback((data2) => {
3127
- return update(data2).then((res) => {
3140
+ const updateLeverage = useCallback(
3141
+ async (data2) => {
3142
+ const res = await update(data2);
3128
3143
  if (res.success) {
3129
3144
  return mutate3();
3130
3145
  } else {
3131
3146
  throw new Error(res.message);
3132
3147
  }
3133
- });
3134
- }, []);
3135
- return [
3136
- prop("max_leverage", data),
3137
- {
3138
- update: updateLeverage,
3139
- isMutating,
3140
- // config: [1, 2, 3, 4, 5, 10, 15, 20],
3141
- config: config ? config?.available_futures_leverage?.split(",").map((item) => parseInt(item)) : []
3142
- }
3143
- ];
3148
+ },
3149
+ [update, mutate3]
3150
+ );
3151
+ const memoizedCurLeverage = useMemo(() => {
3152
+ if (data?.max_leverage !== void 0) {
3153
+ return Number(data.max_leverage);
3154
+ }
3155
+ return 1;
3156
+ }, [data?.max_leverage]);
3157
+ const memoizedMaxLeverage = useMemo(() => {
3158
+ if (leverageConfig?.max_futures_leverage !== void 0) {
3159
+ return Number(leverageConfig.max_futures_leverage);
3160
+ }
3161
+ return 1;
3162
+ }, [leverageConfig?.max_futures_leverage]);
3163
+ const memoizedLeverageLevers = useMemo(() => {
3164
+ return generateLeverageLevers(memoizedMaxLeverage);
3165
+ }, [memoizedMaxLeverage]);
3166
+ return {
3167
+ update: updateLeverage,
3168
+ isLoading: isLoading || isMutating,
3169
+ leverageLevers: memoizedLeverageLevers,
3170
+ curLeverage: memoizedCurLeverage,
3171
+ maxLeverage: memoizedMaxLeverage
3172
+ };
3144
3173
  };
3145
3174
  var useFundingRate = (symbol) => {
3146
3175
  if (!symbol) {
@@ -3866,15 +3895,17 @@ var useMarginRatio = () => {
3866
3895
  }, [rows, notional]);
3867
3896
  return { marginRatio, currentLeverage, mmr };
3868
3897
  };
3869
- var TestNetWhiteList = [421614, 901901901, MONAD_TESTNET_CHAINID];
3898
+ var TestNetWhiteList = [
3899
+ ARBITRUM_TESTNET_CHAINID,
3900
+ SOLANA_TESTNET_CHAINID,
3901
+ MONAD_TESTNET_CHAINID,
3902
+ ABSTRACT_TESTNET_CHAINID
3903
+ ];
3870
3904
  var testnetTokenFallback = TesntTokenFallback([
3871
3905
  ArbitrumSepoliaTokenInfo,
3872
3906
  SolanaDevnetTokenInfo
3873
3907
  ]);
3874
- var testnetChainFallback = [
3875
- ArbitrumSepoliaChainInfo,
3876
- SolanaDevnetChainInfo
3877
- ];
3908
+ var testnetChainFallback = [ArbitrumSepoliaChainInfo, SolanaDevnetChainInfo];
3878
3909
  function useChains(networkId, options = {}) {
3879
3910
  const { pick: pickField, ...swrOptions } = options;
3880
3911
  const {
@@ -4022,7 +4053,7 @@ function _checkChainSupport(chainId, chains) {
4022
4053
  });
4023
4054
  }
4024
4055
  function fillChainsInfo(chains, filter, chainInfos) {
4025
- let _chains = [];
4056
+ const _chains = [];
4026
4057
  chains?.forEach((item) => {
4027
4058
  item.chain_details.forEach((chain) => {
4028
4059
  const chainId = Number(chain.chain_id);
@@ -4058,7 +4089,7 @@ function fillChainsInfo(chains, filter, chainInfos) {
4058
4089
  function filterAndUpdateChains(chains, chainInfos, filter, isTestNet) {
4059
4090
  const filterChains = [];
4060
4091
  chains.forEach((chain) => {
4061
- let _chain = { ...chain };
4092
+ const _chain = { ...chain };
4062
4093
  const networkInfo = chainInfos?.find(
4063
4094
  (item) => item.chain_id == chain.network_infos.chain_id
4064
4095
  );
@@ -4446,6 +4477,7 @@ var useDeposit = (options) => {
4446
4477
  }).then((res) => {
4447
4478
  return updateAllowanceWhenTxSuccess(res.hash);
4448
4479
  }).catch((e) => {
4480
+ throw e;
4449
4481
  });
4450
4482
  },
4451
4483
  [account5, getAllowance, options?.address, dst]