diff --git a/src/hooks/useLoadTokens.ts b/src/hooks/useLoadTokens.ts
index 2633035a7..d588a7ffb 100644
--- a/src/hooks/useLoadTokens.ts
+++ b/src/hooks/useLoadTokens.ts
@@ -1,51 +1,40 @@
import { fromBinary, toBinary } from '@cosmjs/cosmwasm-stargate';
import { StargateClient } from '@cosmjs/stargate';
import { MulticallQueryClient } from '@oraichain/common-contracts-sdk';
+import { ContractCallResults, Multicall } from '@oraichain/ethereum-multicall';
+import { COSMOS_CHAIN_ID_COMMON, CustomChainInfo, ERC20__factory, EVM_BALANCE_RETRY_COUNT, solChainId, TON_CONTRACT, tronToEthAddress } from '@oraichain/oraidex-common';
import { OraiswapTokenTypes } from '@oraichain/oraidex-contracts-sdk';
+import { UniversalSwapHelper } from '@oraichain/oraidex-universal-swap';
+import { JettonMinter, JettonWallet } from '@oraichain/ton-bridge-contracts';
+import { getHttpEndpoint } from '@orbs-network/ton-access';
+import { Dispatch } from '@reduxjs/toolkit';
+import { Connection, PublicKey } from '@solana/web3.js';
+import { Address, TonClient } from '@ton/ton';
+import { ethers } from 'ethers';
+import {
+ genAddressCosmos,
+ getAddress,
+ getWalletByNetworkCosmosFromStorage,
+ handleCheckWallet,
+ handleErrorRateLimit
+} from 'helper';
+import { bitcoinChainId } from 'helper/constants';
import {
btcTokens,
chainInfos,
- cosmosTokens,
evmChains,
evmTokens,
network,
oraichainTokens,
- solTokens,
tonNetworkMainnet
} from 'initCommon';
-import flatten from 'lodash/flatten';
-import { ContractCallResults, Multicall } from '@oraichain/ethereum-multicall';
-import { COSMOS_CHAIN_ID_COMMON, TON_CONTRACT } from '@oraichain/oraidex-common';
-import { Dispatch } from '@reduxjs/toolkit';
-import { useDispatch } from 'react-redux';
-import {
- CustomChainInfo,
- EVM_BALANCE_RETRY_COUNT,
- ERC20__factory,
- getEvmAddress,
- tronToEthAddress,
- solChainId
-} from '@oraichain/oraidex-common';
-import { UniversalSwapHelper } from '@oraichain/oraidex-universal-swap';
-import { ethers } from 'ethers';
import { reduce } from 'lodash';
-import { bitcoinChainId } from 'helper/constants';
+import flatten from 'lodash/flatten';
import { getUtxos } from 'pages/Balance/helpers';
-import { generateError } from '../libs/utils';
+import { useDispatch } from 'react-redux';
import { updateAmounts } from 'reducer/token';
-import {
- genAddressCosmos,
- getAddress,
- handleCheckWallet,
- getWalletByNetworkCosmosFromStorage,
- handleErrorRateLimit
-} from 'helper';
-import { Connection, PublicKey } from '@solana/web3.js';
-import { getHttpEndpoint } from '@orbs-network/ton-access';
-import { Address, TonClient } from '@ton/ton';
-import { JettonMinter, JettonWallet } from '@oraichain/ton-bridge-contracts';
import { store } from 'store/configure';
-import { TON_ZERO_ADDRESS } from '@oraichain/common';
+import { generateError } from '../libs/utils';
export type LoadTokenParams = {
refresh?: boolean;
@@ -66,6 +55,12 @@ async function loadNativeBalance(dispatch: Dispatch, address: string, tokenInfo:
let amountDetails: AmountDetails = {};
+ const storage = store.getState();
+ const allOraichainTokens = storage.token.allOraichainTokens || [];
+ const allOtherChainTokens = storage.token.allOtherChainTokens || [];
+
+ const cosmosTokens = [...allOraichainTokens, ...allOtherChainTokens].filter((token => token.denom && token.cosmosBased && !token.contractAddress));
+
// reset native balances
cosmosTokens
.filter((t) => t.chainId === tokenInfo.chainId && !t.contractAddress)
@@ -192,8 +187,11 @@ async function loadTokensCosmos(dispatch: Dispatch, kwtAddress: string, oraiAddr
async function loadCw20Balance(dispatch: Dispatch, address: string) {
if (!address) return;
+ const storage = store.getState();
+ const allOraichainTokens = storage.token.allOraichainTokens || [];
+
// get all cw20 token contract
- const cw20Tokens = [...oraichainTokens.filter((t) => t.contractAddress)];
+ const cw20Tokens = [...allOraichainTokens.filter((t) => t.contractAddress)];
const data = toBinary({
balance: { address }
diff --git a/src/pages/Pool-V3/index.module.scss b/src/pages/Pool-V3/index.module.scss
index f192efb66..f5cf8f620 100644
--- a/src/pages/Pool-V3/index.module.scss
+++ b/src/pages/Pool-V3/index.module.scss
@@ -92,7 +92,7 @@
font-size: 14px;
display: flex;
gap: 8px;
-
+
span {
padding-left: 1rem;
}
@@ -146,12 +146,13 @@
border-color: theme-get('border-color');
}
- @media (max-width: 575px) {
+ @media (max-width: 300px) {
width: 100%;
}
}
.dropdownContent {
+ z-index: 1;
cursor: pointer;
position: absolute;
top: 100%;
@@ -172,6 +173,7 @@
.icon {
&.light {
color: black;
+
svg {
path {
stroke: #000;
diff --git a/src/pages/Pools/PoolDetail.tsx b/src/pages/Pools/PoolDetail.tsx
index 52ad07d7c..31dc6db23 100644
--- a/src/pages/Pools/PoolDetail.tsx
+++ b/src/pages/Pools/PoolDetail.tsx
@@ -37,21 +37,27 @@ const PoolDetail: React.FC = () => {
const dispatch = useDispatch();
const [address] = useConfigReducer('address');
- const poolDetailData = useGetPoolDetail({ pairDenoms: poolUrl });
- const loadTokenAmounts = useLoadTokens();
- const setCachedLpPools = (payload: LpPoolDetails) => dispatch(updateLpPools(payload));
+
+ const poolDetailData = useGetPoolDetail({ pairDenoms: poolUrl }); // ok
+
+ const loadTokenAmounts = useLoadTokens(); // ok
+
+ const setCachedLpPools = (payload: LpPoolDetails) => dispatch(updateLpPools(payload)); // ok
+
const pools = useGetPools();
- const lpAddresses = pools.map((pool) => pool.liquidityAddr);
+
const { refetchPairAmountInfo, refetchLpTokenInfoData, pairAmountInfoData } = useGetPairInfo(poolDetailData);
+
+ const { lpBalanceInfoData, refetchLpBalanceInfoData } = useGetLpBalance(poolDetailData);
+
+ const lpAddresses = pools.map((pool) => pool.liquidityAddr);
const queryClient = useQueryClient();
const [pairDenomsDeposit, setPairDenomsDeposit] = useState('');
const [ratioOraiBtc, setRatioOraiBtc] = useState(0);
-
- const { lpBalanceInfoData, refetchLpBalanceInfoData } = useGetLpBalance(poolDetailData);
const lpTokenBalance = BigInt(lpBalanceInfoData?.balance || '0');
const allOraichainTokens = useSelector((state: RootState) => state.token.allOraichainTokens || []);
- console.log({ pairAmountInfoData });
+
useEffect(() => {
refetchAllLpPools();
}, [lpAddresses]);
diff --git a/src/pages/Pools/components/ItemPoolMobile/ItemPoolMobile.tsx b/src/pages/Pools/components/ItemPoolMobile/ItemPoolMobile.tsx
index 5efb114fd..0c3764a4a 100644
--- a/src/pages/Pools/components/ItemPoolMobile/ItemPoolMobile.tsx
+++ b/src/pages/Pools/components/ItemPoolMobile/ItemPoolMobile.tsx
@@ -7,6 +7,8 @@ import { PoolTableData } from 'pages/Pools';
import { formatDisplayUsdt, parseAssetOnlyDenom } from 'pages/Pools/helpers';
import { useNavigate } from 'react-router-dom';
import styles from './ItemPoolMobile.module.scss';
+import { useSelector } from 'react-redux';
+import { RootState } from 'store/configure';
type PoolMobileItemProps = {
pool: PoolTableData;
@@ -16,6 +18,7 @@ type PoolMobileItemProps = {
export const PoolMobileItem: React.FC
= ({ pool, setPairDenomsDeposit, generateIcon }) => {
const navigate = useNavigate();
const [theme] = useConfigReducer('theme');
+ const allOraichainTokens = useSelector((state: RootState) => state.token.allOraichainTokens || []);
const handleClickRow = (event: React.MouseEvent) => {
event.stopPropagation();
@@ -28,12 +31,19 @@ export const PoolMobileItem: React.FC = ({ pool, setPairDen
);
};
+ const firstTokenDenom = parseAssetOnlyDenom(JSON.parse(pool.firstAssetInfo));
+ const secondTokenDenom = parseAssetOnlyDenom(JSON.parse(pool.secondAssetInfo));
+
+ const tokens = [firstTokenDenom, secondTokenDenom].map(
+ (symbol) => allOraichainTokens.find((token) => token.denom === symbol || token.contractAddress === symbol)?.name
+ );
+
return (
handleClickRow(e)}>
{generateIcon(pool.baseToken, pool.quoteToken)}
-
{pool.symbols}
+
{tokens?.join('/')}
APR
diff --git a/src/pages/Pools/components/OverviewPool/OverviewPool.tsx b/src/pages/Pools/components/OverviewPool/OverviewPool.tsx
index 52f96f075..822a1eb59 100644
--- a/src/pages/Pools/components/OverviewPool/OverviewPool.tsx
+++ b/src/pages/Pools/components/OverviewPool/OverviewPool.tsx
@@ -122,7 +122,7 @@ export const OverviewPool = ({ poolDetailData }: { poolDetailData: PoolDetail })
{formatNumberKMB(
- toDisplay(pairAmountInfoData?.token1Amount || '0', token1?.decimals, 0),
+ toDisplay(pairAmountInfoData?.token1Amount || '0', token1?.decimals),
false,
token1?.decimals
)}
@@ -145,7 +145,7 @@ export const OverviewPool = ({ poolDetailData }: { poolDetailData: PoolDetail })
{formatNumberKMB(
- toDisplay(pairAmountInfoData?.token2Amount || '0', token2?.decimals, 0),
+ toDisplay(pairAmountInfoData?.token2Amount || '0', token2?.decimals),
false,
token2?.decimals
)}
diff --git a/src/pages/Pools/hooks/hooks.ts b/src/pages/Pools/hooks/hooks.ts
index d1246350b..a0f2e9e22 100644
--- a/src/pages/Pools/hooks/hooks.ts
+++ b/src/pages/Pools/hooks/hooks.ts
@@ -5,21 +5,21 @@ import { toDisplay, TokenItemType } from '@oraichain/oraidex-common';
import { OraiswapStakingQueryClient, OraiswapStakingTypes } from '@oraichain/oraidex-contracts-sdk';
import { useQuery } from '@tanstack/react-query';
import useConfigReducer from 'hooks/useConfigReducer';
-import { cw20TokenMap, network, oraichainTokens, tokenMap } from 'initCommon';
+import { cw20TokenMap, network, tokenMap } from 'initCommon';
import isEqual from 'lodash/isEqual';
import { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import axios from 'rest/request';
+import { tokenInspector } from 'initTokenInspector';
import { getUsd } from 'libs/utils';
import { parseAssetOnlyDenom } from 'pages/Pools/helpers';
import { RewardPoolType } from 'reducer/config';
+import { onChainTokenToTokenItem } from 'reducer/onchainTokens';
import { updateLpPools } from 'reducer/token';
import { fetchRewardPerSecInfo, fetchTokenInfo } from 'rest/api';
import { RootState } from 'store/configure';
import { PoolInfoResponse } from 'types/pool';
-import { tokenInspector } from 'initTokenInspector';
-import { onChainTokenToTokenItem } from 'reducer/onchainTokens';
export const calculateLpPoolsV3 = (lpAddresses: string[], res: AggregateResult) => {
const lpTokenData = Object.fromEntries(
@@ -166,7 +166,7 @@ export const useGetMyStake = ({ stakerAddress, pairDenoms, tf }: GetStakedByUser
const { totalSupply, totalLiquidity } = pool;
const myStakedLP = pool.liquidityAddr
? totalRewardInfoData?.reward_infos.find((item) => isEqual(item.staking_token, pool.liquidityAddr))
- ?.bond_amount || '0'
+ ?.bond_amount || '0'
: 0;
const lpPrice = Number(totalSupply) ? totalLiquidity / Number(totalSupply) : 0;
@@ -177,9 +177,9 @@ export const useGetMyStake = ({ stakerAddress, pairDenoms, tf }: GetStakedByUser
const totalEarned = myStakes
? myStakes.reduce((total, current) => {
- total += current.earnAmountInUsdt;
- return total;
- }, 0)
+ total += current.earnAmountInUsdt;
+ return total;
+ }, 0)
: 0;
return {
@@ -190,6 +190,7 @@ export const useGetMyStake = ({ stakerAddress, pairDenoms, tf }: GetStakedByUser
};
export const useGetPoolDetail = ({ pairDenoms }: { pairDenoms: string }) => {
+ const allOraichainTokens = useSelector((state: RootState) => state.token.allOraichainTokens || []);
const getPoolDetail = async (queries: { pairDenoms: string }): Promise => {
try {
const res = await axios.get('/v1/pool-detail/', { params: queries });
@@ -210,11 +211,13 @@ export const useGetPoolDetail = ({ pairDenoms }: { pairDenoms: string }) => {
useEffect(() => {
if (!pairDenoms) return;
+
(async function fetchTokens() {
try {
+
const pairRawData = pairDenoms.split('_');
const tokenTypes = pairRawData.map((raw) =>
- oraichainTokens.find((token) => token.denom === raw || token.contractAddress === raw)
+ allOraichainTokens.find((token) => token.denom === raw || token.contractAddress === raw)
);
let token1 = tokenTypes[0];
@@ -233,6 +236,7 @@ export const useGetPoolDetail = ({ pairDenoms }: { pairDenoms: string }) => {
console.error('error fetchTokens: ', e);
}
})();
+
}, [pairDenoms]);
return {
diff --git a/src/pages/Pools/hooks/useGetPairInfo.ts b/src/pages/Pools/hooks/useGetPairInfo.ts
index a6e3efbd5..23800fcb8 100644
--- a/src/pages/Pools/hooks/useGetPairInfo.ts
+++ b/src/pages/Pools/hooks/useGetPairInfo.ts
@@ -1,4 +1,4 @@
-import { TokenInfo, TokenItemType } from '@oraichain/oraidex-common';
+import { TokenInfo } from '@oraichain/oraidex-common';
import { useQuery } from '@tanstack/react-query';
import { fetchTokenInfo, getPairAmountInfo } from 'rest/api';
import { PoolDetail } from 'types/pool';
@@ -13,7 +13,7 @@ export const useGetPairInfo = ({ token1, token2, info: pairInfoData }: PoolDetai
{
enabled: !!pairInfoData,
refetchOnWindowFocus: false,
- keepPreviousData: true,
+ // keepPreviousData: true,
refetchOnMount: true
}
);
@@ -26,7 +26,7 @@ export const useGetPairInfo = ({ token1, token2, info: pairInfoData }: PoolDetai
{
enabled: !!token1 && !!token2,
refetchOnWindowFocus: false,
- refetchInterval: 15000
+ refetchInterval: 10000
}
);
diff --git a/src/pages/UniversalSwap/Swap/index.tsx b/src/pages/UniversalSwap/Swap/index.tsx
index 3e7b229a5..c76c3b1e6 100644
--- a/src/pages/UniversalSwap/Swap/index.tsx
+++ b/src/pages/UniversalSwap/Swap/index.tsx
@@ -1067,6 +1067,7 @@ const SwapComponent: React.FC<{
token={originalFromToken}
handleReject={() => {
setIsConfirmTokenFrom('reject');
+ setIsSelectTokenFrom(true);
}}
handleConfirm={() => {
setIsConfirmTokenFrom('confirmed');
@@ -1078,6 +1079,7 @@ const SwapComponent: React.FC<{
token={originalToToken}
handleReject={() => {
setIsConfirmTokenTo('reject');
+ setIsSelectTokenTo(true);
}}
handleConfirm={() => {
setIsConfirmTokenTo('confirmed');
diff --git a/src/pages/UniversalSwap/hooks/useChartUsdPrice.ts b/src/pages/UniversalSwap/hooks/useChartUsdPrice.ts
index 2821a5923..002348acb 100644
--- a/src/pages/UniversalSwap/hooks/useChartUsdPrice.ts
+++ b/src/pages/UniversalSwap/hooks/useChartUsdPrice.ts
@@ -104,9 +104,9 @@ export const useChartUsdPrice = (
setCurrentItem({ value: 0, time: 0, volume: 0 });
onUpdateCurrentItem && onUpdateCurrentItem(0);
}
- setIsLoading(false);
} catch (e) {
console.log(' ERROR: e', 'background: #FF0000; color:#FFFFFF', e);
+ } finally {
setIsLoading(false);
}
};
diff --git a/src/rest/api.ts b/src/rest/api.ts
index c27271085..6be1f5b19 100644
--- a/src/rest/api.ts
+++ b/src/rest/api.ts
@@ -4,7 +4,6 @@ import { CwIcs20LatestQueryClient, MulticallQueryClient, Uint128 } from '@oraich
import { ConfigResponse, RelayerFeeResponse } from '@oraichain/common-contracts-sdk/build/CwIcs20Latest.types';
import {
BTC_CONTRACT,
- FACTORY_V2_CONTRACT,
IBCInfo,
IBC_WASM_CONTRACT,
KWT_DENOM,
@@ -18,7 +17,6 @@ import {
ibcInfos,
ibcInfosOld,
parseTokenInfo,
- toAmount,
toDecimal,
toDisplay,
toTokenInfo
@@ -38,14 +36,15 @@ import {
PairInfo
} from '@oraichain/oraidex-contracts-sdk';
import { TaxRateResponse } from '@oraichain/oraidex-contracts-sdk/build/OraiswapOracle.types';
-import { generateSwapOperationMsgs, UniversalSwapHelper } from '@oraichain/oraidex-universal-swap';
import { Position } from '@oraichain/oraidex-contracts-sdk/build/OraiswapV3.types';
+import { UniversalSwapHelper, generateSwapOperationMsgs } from '@oraichain/oraidex-universal-swap';
import { MsgTransfer } from 'cosmjs-types/ibc/applications/transfer/v1/tx';
-import { flattenTokens, network, oraichainTokens, tokenMap, tokens } from 'initCommon';
+import { network, oraichainTokens, tokenMap, tokens } from 'initCommon';
import isEqual from 'lodash/isEqual';
import { RemainingOraibTokenItem } from 'pages/Balance/StuckOraib/useGetOraiBridgeBalances';
import { listFactoryV1Pools } from 'pages/Pools/helpers';
import { getRouterConfig } from 'pages/UniversalSwap/Swap/hooks';
+import { store } from 'store/configure';
import { BondLP, MiningLP, UnbondLP, WithdrawLP } from 'types/pool';
import { PairInfoExtend, TokenInfo } from 'types/token';
@@ -120,10 +119,13 @@ export async function fetchPairPriceWithStablecoin(
): Promise {
if (!fromTokenInfo.denom || !toTokenInfo.denom) return '0';
const routerClient = new OraiswapRouterQueryClient(window.client, network.router);
+ const storage = store.getState();
+ const allOraichainTokens = storage.token.allOraichainTokens || [];
+ const allOtherChainTokens = storage.token.allOtherChainTokens || [];
const result = await Promise.allSettled([
UniversalSwapHelper.handleSimulateSwap({
- flattenTokens: flattenTokens,
- oraichainTokens: oraichainTokens,
+ flattenTokens: [...allOraichainTokens, ...allOtherChainTokens],
+ oraichainTokens: allOraichainTokens,
originalFromInfo: fromTokenInfo,
originalToInfo: tokenMap[STABLE_DENOM],
originalAmount: 1,
@@ -134,8 +136,8 @@ export async function fetchPairPriceWithStablecoin(
routerConfig: getRouterConfig()
}),
UniversalSwapHelper.handleSimulateSwap({
- flattenTokens: flattenTokens,
- oraichainTokens: oraichainTokens,
+ flattenTokens: [...allOraichainTokens, ...allOtherChainTokens],
+ oraichainTokens: allOraichainTokens,
originalFromInfo: toTokenInfo,
originalToInfo: tokenMap[STABLE_DENOM],
originalAmount: 1,
@@ -145,11 +147,16 @@ export async function fetchPairPriceWithStablecoin(
},
routerConfig: getRouterConfig()
})
- ]).then((results) => {
- for (let res of results) {
- if (res.status === 'fulfilled') return res.value; // only collect the result of the actual existing pool. If both exist then we only need data from one pool
- }
- });
+ ])
+ .then((results) => {
+ for (let res of results) {
+ if (res.status === 'fulfilled') return res.value; // only collect the result of the actual existing pool. If both exist then we only need data from one pool
+ }
+ })
+ .catch((error) => {
+ console.log('error when fetching pair price with stablecoin', error);
+ return { amount: '0' };
+ });
return result.amount;
}
diff --git a/src/store/constants.ts b/src/store/constants.ts
index 2c590d851..446868dca 100644
--- a/src/store/constants.ts
+++ b/src/store/constants.ts
@@ -1,5 +1,5 @@
// change version when update, add state redux-persist storage
-export const PERSIST_VER = 2.6;
+export const PERSIST_VER = 2.7;
export const PERSIST_CONFIG_KEY = 'root';
export const ADDRESS_BOOK_KEY_BACKUP = 'addressBookBackup';
diff --git a/yarn.lock b/yarn.lock
index 5a58725df..6809f42d9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4035,10 +4035,10 @@
resolved "https://registry.yarnpkg.com/@oraichain/oraidex-contracts-sdk/-/oraidex-contracts-sdk-1.0.45.tgz#42dae0fdd9e005f920ba305b987009f791acc365"
integrity sha512-/nYztdxEX5LQM4DMJQmi9HvZrBVoY3nLAmYqSKZGZ0U1h1SxU7O/o22R3/pQwB+sAJdcibaI8ygC0ov7jC8paA==
-"@oraichain/oraidex-universal-swap@1.2.0-beta27":
- version "1.2.0-beta27"
- resolved "https://registry.yarnpkg.com/@oraichain/oraidex-universal-swap/-/oraidex-universal-swap-1.2.0-beta27.tgz#f5a2da25491850d311f6d8f5eda37c0cc53cdbb0"
- integrity sha512-oDzGemMBlDJSjvP5YqnkIiobB32s5mZqmh1OSkrMDgGYs44wcCKc0lJTbl9aG9gmCPI3OYkkv+ZFvyaqWYvXiA==
+"@oraichain/oraidex-universal-swap@1.2.0-beta28":
+ version "1.2.0-beta28"
+ resolved "https://registry.yarnpkg.com/@oraichain/oraidex-universal-swap/-/oraidex-universal-swap-1.2.0-beta28.tgz#3014aa77279c646a8c116846c16d90da22134ff3"
+ integrity sha512-GiY7v1lFuAkt/TKt8fQJQSTEpRJtggDKD892hqdfFY5mN9Cjb+E6wdJEFfE56vXmin2EzHVWjfO/PqVteq4hHg==
dependencies:
"@oraichain/common" "1.2.6"
"@oraichain/oraidex-common" "2.0.5"
@@ -16830,7 +16830,7 @@ string-env-interpolation@^1.0.1:
resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152"
integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==
-"string-width-cjs@npm:string-width@^4.2.0":
+"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -16848,15 +16848,6 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
-string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -16885,7 +16876,7 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -16906,13 +16897,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
dependencies:
ansi-regex "^4.1.0"
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-ansi@^7.0.1:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -18316,7 +18300,7 @@ wordwrapjs@^5.1.0:
resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-5.1.0.tgz#4c4d20446dcc670b14fa115ef4f8fd9947af2b3a"
integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -18343,15 +18327,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"