@bze/bze-ui-kit 0.1.0 → 0.2.1

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
@@ -2976,6 +2976,7 @@ function useEpochs() {
2976
2976
 
2977
2977
  // src/hooks/useLiquidityPools.ts
2978
2978
  import { useCallback as useCallback6, useMemo as useMemo7 } from "react";
2979
+ import BigNumber9 from "bignumber.js";
2979
2980
  function useLiquidityPools() {
2980
2981
  const { poolsMap, poolsDataMap, updateLiquidityPools, isLoading, assetsMap } = useAssetsContext();
2981
2982
  const pools = useMemo7(() => {
@@ -3001,6 +3002,7 @@ function useLiquidityPools() {
3001
3002
  return {
3002
3003
  pools,
3003
3004
  poolsMap,
3005
+ poolsData: poolsDataMap,
3004
3006
  poolsDataMap,
3005
3007
  isLoading,
3006
3008
  updateLiquidityPools,
@@ -3010,23 +3012,135 @@ function useLiquidityPools() {
3010
3012
  };
3011
3013
  }
3012
3014
  function useAssetLiquidityPools(denom) {
3013
- const { poolsMap, poolsDataMap } = useAssetsContext();
3015
+ const { poolsMap, poolsDataMap, isLoading } = useAssetsContext();
3014
3016
  const assetPools = useMemo7(() => {
3015
3017
  return Array.from(poolsMap.values()).filter(
3016
3018
  (pool) => pool.base === denom || pool.quote === denom
3017
3019
  );
3018
3020
  }, [poolsMap, denom]);
3021
+ const assetPoolsData = useMemo7(() => {
3022
+ const newMap = /* @__PURE__ */ new Map();
3023
+ if (isLoading || denom === "") return newMap;
3024
+ assetPools.forEach((pool) => {
3025
+ const poolData = poolsDataMap.get(pool.id);
3026
+ if (poolData) {
3027
+ newMap.set(pool.id, poolData);
3028
+ }
3029
+ });
3030
+ return newMap;
3031
+ }, [assetPools, poolsDataMap, isLoading, denom]);
3032
+ const asset24HoursVolume = useMemo7(() => {
3033
+ let volume = BigNumber9(0);
3034
+ if (isLoading || denom === "") return volume;
3035
+ assetPoolsData.forEach((poolData) => {
3036
+ if (poolData.base === denom) {
3037
+ volume = volume.plus(poolData.baseVolume);
3038
+ } else if (poolData.quote === denom) {
3039
+ volume = volume.plus(poolData.quoteVolume);
3040
+ }
3041
+ });
3042
+ return volume;
3043
+ }, [isLoading, assetPoolsData, denom]);
3019
3044
  return {
3020
3045
  assetPools,
3021
- poolsDataMap
3046
+ poolsDataMap,
3047
+ isLoading,
3048
+ asset24HoursVolume,
3049
+ assetPoolsData
3050
+ };
3051
+ }
3052
+ function useLiquidityPool(poolId) {
3053
+ const { balancesMap, assetsMap, poolsMap, poolsDataMap, isLoading } = useAssetsContext();
3054
+ const pool = useMemo7(() => poolsMap.get(poolId), [poolsMap, poolId]);
3055
+ const poolData = useMemo7(() => poolsDataMap.get(poolId), [poolsDataMap, poolId]);
3056
+ const userShares = useMemo7(() => {
3057
+ if (!pool) return toBigNumber(0);
3058
+ const balance = balancesMap.get(pool.lp_denom);
3059
+ if (!balance) return toBigNumber(0);
3060
+ return toBigNumber(balance.amount);
3061
+ }, [balancesMap, pool]);
3062
+ const totalShares = useMemo7(() => {
3063
+ if (!assetsMap || !pool) return toBigNumber(0);
3064
+ const sharesAsset = assetsMap.get(pool.lp_denom);
3065
+ if (!sharesAsset) return toBigNumber(0);
3066
+ return toBigNumber((sharesAsset == null ? void 0 : sharesAsset.supply) || 0);
3067
+ }, [assetsMap, pool]);
3068
+ const userSharesPercentage = useMemo7(() => {
3069
+ if (!userShares || !totalShares || totalShares.isZero()) {
3070
+ return toBigNumber(0);
3071
+ }
3072
+ return userShares.dividedBy(totalShares).multipliedBy(100).toFixed(2);
3073
+ }, [userShares, totalShares]);
3074
+ const userReserveBase = useMemo7(() => {
3075
+ if (!pool || !userShares || !totalShares || totalShares.isZero()) {
3076
+ return toBigNumber(0);
3077
+ }
3078
+ const reserveBase = toBigNumber(pool.reserve_base);
3079
+ return userShares.dividedBy(totalShares).multipliedBy(reserveBase);
3080
+ }, [pool, userShares, totalShares]);
3081
+ const userReserveQuote = useMemo7(() => {
3082
+ if (!pool || !userShares || !totalShares || totalShares.isZero()) {
3083
+ return toBigNumber(0);
3084
+ }
3085
+ const reserveQuote = toBigNumber(pool.reserve_quote);
3086
+ return userShares.dividedBy(totalShares).multipliedBy(reserveQuote);
3087
+ }, [pool, userShares, totalShares]);
3088
+ const calculateOppositeAmount = useCallback6((amount, isBase) => {
3089
+ if (!pool) {
3090
+ return toBigNumber(0);
3091
+ }
3092
+ return calculatePoolOppositeAmount(pool, amount, isBase);
3093
+ }, [pool]);
3094
+ const calculateSharesFromAmounts = useCallback6((baseAmount, quoteAmount) => {
3095
+ if (!pool || !totalShares) {
3096
+ return toBigNumber(0);
3097
+ }
3098
+ const baseAmountBN = toBigNumber(baseAmount);
3099
+ const quoteAmountBN = toBigNumber(quoteAmount);
3100
+ if (baseAmountBN.isZero() || baseAmountBN.isNaN() || quoteAmountBN.isZero() || quoteAmountBN.isNaN()) {
3101
+ return toBigNumber(0);
3102
+ }
3103
+ const reserveBase = toBigNumber(pool.reserve_base);
3104
+ const reserveQuote = toBigNumber(pool.reserve_quote);
3105
+ if (reserveBase.isZero() || reserveQuote.isZero() || totalShares.isZero()) {
3106
+ return toBigNumber(0);
3107
+ }
3108
+ const baseRatio = baseAmountBN.dividedBy(reserveBase);
3109
+ const quoteRatio = quoteAmountBN.dividedBy(reserveQuote);
3110
+ const mintRatio = BigNumber9.minimum(baseRatio, quoteRatio);
3111
+ const tokensToMint = mintRatio.multipliedBy(totalShares);
3112
+ return tokensToMint.integerValue(BigNumber9.ROUND_DOWN);
3113
+ }, [pool, totalShares]);
3114
+ return {
3115
+ isLoading,
3116
+ pool,
3117
+ poolData,
3118
+ userShares,
3119
+ totalShares,
3120
+ userSharesPercentage,
3121
+ userReserveBase,
3122
+ userReserveQuote,
3123
+ calculateOppositeAmount,
3124
+ calculateSharesFromAmounts
3022
3125
  };
3023
3126
  }
3024
3127
 
3025
3128
  // src/hooks/useAssetsValue.ts
3026
- import { useMemo as useMemo8 } from "react";
3129
+ import { useCallback as useCallback7, useMemo as useMemo8 } from "react";
3130
+ import BigNumber10 from "bignumber.js";
3027
3131
  function useAssetsValue() {
3028
- const { assetsMap, usdPricesMap, balancesMap, isLoading } = useAssetsContext();
3029
- const totalUsdValue = useMemo8(() => {
3132
+ const { assetsMap, usdPricesMap, balancesMap, isLoading: isLoadingPrices } = useAssetsContext();
3133
+ const totalUsdValue = useCallback7((prettyBalances) => {
3134
+ let usdValue = BigNumber10(0);
3135
+ prettyBalances.map((denomBalance) => {
3136
+ const assetPrice = usdPricesMap.get(denomBalance.denom);
3137
+ if (assetPrice && assetPrice.gt(0)) {
3138
+ usdValue = usdValue.plus(assetPrice.multipliedBy(denomBalance.amount));
3139
+ }
3140
+ });
3141
+ return usdValue;
3142
+ }, [usdPricesMap]);
3143
+ const walletTotalUsdValue = useMemo8(() => {
3030
3144
  let total = toBigNumber(0);
3031
3145
  balancesMap.forEach((balance, denom) => {
3032
3146
  const price = usdPricesMap.get(denom);
@@ -3037,17 +3151,33 @@ function useAssetsValue() {
3037
3151
  });
3038
3152
  return total;
3039
3153
  }, [balancesMap, usdPricesMap, assetsMap]);
3040
- const denomUsdValue = (denom, uAmount) => {
3154
+ const denomUsdValue = useCallback7((denom, uAmount) => {
3041
3155
  const price = usdPricesMap.get(denom);
3042
3156
  if (!price || !price.gt(0)) return toBigNumber(0);
3043
3157
  const asset = assetsMap.get(denom);
3044
3158
  if (!asset) return toBigNumber(0);
3045
3159
  return price.multipliedBy(uAmountToBigNumberAmount(uAmount, asset.decimals));
3046
- };
3160
+ }, [usdPricesMap, assetsMap]);
3161
+ const compareValues = useCallback7((a, b) => {
3162
+ var _a2;
3163
+ let aValue = BigNumber10(0);
3164
+ const aPrice = usdPricesMap.get(a.denom);
3165
+ if (aPrice) {
3166
+ aValue = aPrice.multipliedBy(a.amount);
3167
+ }
3168
+ let bValue = BigNumber10(0);
3169
+ const bPrice = usdPricesMap.get(b.denom);
3170
+ if (bPrice) {
3171
+ bValue = bPrice.multipliedBy(b.amount);
3172
+ }
3173
+ return (_a2 = aValue.comparedTo(bValue)) != null ? _a2 : 0;
3174
+ }, [usdPricesMap]);
3047
3175
  return {
3048
3176
  totalUsdValue,
3177
+ walletTotalUsdValue,
3049
3178
  denomUsdValue,
3050
- isLoading
3179
+ compareValues,
3180
+ isLoading: isLoadingPrices
3051
3181
  };
3052
3182
  }
3053
3183
 
@@ -3088,58 +3218,113 @@ function useFeeTokens() {
3088
3218
  }
3089
3219
 
3090
3220
  // src/hooks/useMarkets.ts
3091
- import { useMemo as useMemo10 } from "react";
3221
+ import { useCallback as useCallback8, useMemo as useMemo10 } from "react";
3222
+ import BigNumber11 from "bignumber.js";
3092
3223
  function useMarkets() {
3093
3224
  const { marketsMap, marketsDataMap, updateMarkets, isLoading } = useAssetsContext();
3094
3225
  const markets = useMemo10(() => {
3095
3226
  return Array.from(marketsMap.values());
3096
3227
  }, [marketsMap]);
3228
+ const marketsData = useMemo10(() => Array.from(marketsDataMap.values()), [marketsDataMap]);
3229
+ const marketExists = useCallback8((marketId) => marketsMap.has(marketId), [marketsMap]);
3230
+ const getMarketData = useCallback8((marketId) => marketsDataMap.get(marketId), [marketsDataMap]);
3231
+ const getMarket = useCallback8((marketId) => marketsMap.get(marketId), [marketsMap]);
3097
3232
  return {
3098
3233
  markets,
3234
+ marketsData,
3099
3235
  marketsMap,
3100
3236
  marketsDataMap,
3101
3237
  isLoading,
3102
- updateMarkets
3238
+ updateMarkets,
3239
+ marketExists,
3240
+ getMarketData,
3241
+ getMarket
3103
3242
  };
3104
3243
  }
3105
3244
  function useAssetMarkets(denom) {
3106
- const { marketsMap } = useAssetsContext();
3245
+ const { isLoading, marketsMap, marketsDataMap } = useAssetsContext();
3246
+ const markets = useMemo10(() => Array.from(marketsMap.values()), [marketsMap]);
3247
+ const marketsData = useMemo10(() => Array.from(marketsDataMap.values()), [marketsDataMap]);
3107
3248
  const assetMarkets = useMemo10(() => {
3108
- return Array.from(marketsMap.values()).filter(
3109
- (market) => market.base === denom || market.quote === denom
3110
- );
3111
- }, [marketsMap, denom]);
3249
+ const baseMatches = [];
3250
+ const quoteMatches = [];
3251
+ for (const market of markets) {
3252
+ if (market.base === denom) baseMatches.push(market);
3253
+ else if (market.quote === denom) quoteMatches.push(market);
3254
+ }
3255
+ return [...baseMatches, ...quoteMatches];
3256
+ }, [markets, denom]);
3257
+ const assetMarketsData = useMemo10(() => {
3258
+ const baseMatches = [];
3259
+ const quoteMatches = [];
3260
+ for (const market of marketsData) {
3261
+ if (market.base === denom) baseMatches.push(market);
3262
+ else if (market.quote === denom) quoteMatches.push(market);
3263
+ }
3264
+ return [...baseMatches, ...quoteMatches];
3265
+ }, [marketsData, denom]);
3266
+ const asset24hTradedVolume = useMemo10(() => {
3267
+ return assetMarketsData.reduce((acc, market) => {
3268
+ if (denom === market.base) {
3269
+ return acc.plus(market.base_volume || 0);
3270
+ } else if (denom === market.quote) {
3271
+ return acc.plus(market.quote_volume || 0);
3272
+ }
3273
+ return acc;
3274
+ }, new BigNumber11(0));
3275
+ }, [assetMarketsData, denom]);
3112
3276
  return {
3113
- assetMarkets
3277
+ isLoading,
3278
+ assetMarkets,
3279
+ assetMarketsData,
3280
+ asset24hTradedVolume
3114
3281
  };
3115
3282
  }
3116
- function useMarket(base, quote) {
3117
- const { marketsMap, marketsDataMap, assetsMap, isLoading } = useAssetsContext();
3118
- const marketId = useMemo10(() => createMarketId(base, quote), [base, quote]);
3119
- const market = useMemo10(() => {
3120
- return marketsMap.get(marketId);
3121
- }, [marketsMap, marketId]);
3122
- const marketData = useMemo10(() => {
3123
- return marketsDataMap.get(marketId);
3124
- }, [marketsDataMap, marketId]);
3283
+ function useMarket(marketId) {
3284
+ const { marketsMap, marketsDataMap, isLoading, assetsMap } = useAssetsContext();
3285
+ const market = useMemo10(() => marketsMap.get(marketId), [marketsMap, marketId]);
3286
+ const marketSymbol = useMemo10(() => {
3287
+ var _a2, _b2;
3288
+ if (isLoading) return "";
3289
+ if (!market) return "";
3290
+ let base = (_a2 = assetsMap.get(market.base)) == null ? void 0 : _a2.ticker;
3291
+ if (!base) {
3292
+ base = truncateDenom(market.base);
3293
+ }
3294
+ let quote = (_b2 = assetsMap.get(market.quote)) == null ? void 0 : _b2.ticker;
3295
+ if (!quote) {
3296
+ quote = truncateDenom(market.quote);
3297
+ }
3298
+ return `${base}/${quote}`;
3299
+ }, [market, isLoading, assetsMap]);
3300
+ const marketData = useMemo10(() => marketsDataMap.get(marketId), [marketsDataMap, marketId]);
3125
3301
  const marketExists = useMemo10(() => !!market, [market]);
3126
3302
  const volume24h = useMemo10(() => {
3127
- if (!marketData) return toBigNumber(0);
3128
- const quoteAsset = assetsMap.get(quote);
3303
+ if (!marketData || !market) return toBigNumber(0);
3304
+ const quoteAsset = assetsMap.get(market.quote);
3129
3305
  if (!quoteAsset) return toBigNumber(0);
3130
3306
  return uAmountToBigNumberAmount(toBigNumber(marketData.quote_volume), quoteAsset.decimals);
3131
- }, [marketData, assetsMap, quote]);
3307
+ }, [marketData, assetsMap, market]);
3132
3308
  return {
3309
+ isLoading,
3133
3310
  market,
3134
3311
  marketData,
3312
+ marketSymbol,
3313
+ marketId,
3135
3314
  marketExists,
3136
- volume24h,
3315
+ volume24h
3316
+ };
3317
+ }
3318
+ function useMarketsManager() {
3319
+ const { updateMarkets, isLoading } = useAssetsContext();
3320
+ return {
3321
+ updateMarkets,
3137
3322
  isLoading
3138
3323
  };
3139
3324
  }
3140
3325
 
3141
3326
  // src/hooks/useToast.tsx
3142
- import { useCallback as useCallback8, useMemo as useMemo11 } from "react";
3327
+ import { useCallback as useCallback9, useMemo as useMemo11 } from "react";
3143
3328
 
3144
3329
  // src/components/toaster.tsx
3145
3330
  import {
@@ -3169,7 +3354,7 @@ var Toaster = () => {
3169
3354
 
3170
3355
  // src/hooks/useToast.tsx
3171
3356
  var useToast = () => {
3172
- const clickableSuccess = useCallback8((title, actionFn, actionLabel, description, duration = 5e3) => {
3357
+ const clickableSuccess = useCallback9((title, actionFn, actionLabel, description, duration = 5e3) => {
3173
3358
  toaster.create({
3174
3359
  title,
3175
3360
  description,
@@ -3182,7 +3367,7 @@ var useToast = () => {
3182
3367
  }
3183
3368
  });
3184
3369
  }, []);
3185
- const success = useCallback8((title, description, duration = 5e3) => {
3370
+ const success = useCallback9((title, description, duration = 5e3) => {
3186
3371
  toaster.create({
3187
3372
  title,
3188
3373
  description,
@@ -3191,7 +3376,7 @@ var useToast = () => {
3191
3376
  closable: true
3192
3377
  });
3193
3378
  }, []);
3194
- const error = useCallback8((title, description, duration = 8e3) => {
3379
+ const error = useCallback9((title, description, duration = 8e3) => {
3195
3380
  toaster.create({
3196
3381
  title,
3197
3382
  description,
@@ -3200,7 +3385,7 @@ var useToast = () => {
3200
3385
  closable: true
3201
3386
  });
3202
3387
  }, []);
3203
- const warning = useCallback8((title, description, duration = 6e3) => {
3388
+ const warning = useCallback9((title, description, duration = 6e3) => {
3204
3389
  toaster.create({
3205
3390
  title,
3206
3391
  description,
@@ -3209,7 +3394,7 @@ var useToast = () => {
3209
3394
  closable: true
3210
3395
  });
3211
3396
  }, []);
3212
- const info = useCallback8((title, description, duration = 5e3) => {
3397
+ const info = useCallback9((title, description, duration = 5e3) => {
3213
3398
  toaster.create({
3214
3399
  title,
3215
3400
  description,
@@ -3218,7 +3403,7 @@ var useToast = () => {
3218
3403
  closable: true
3219
3404
  });
3220
3405
  }, []);
3221
- const loading = useCallback8((title, description) => {
3406
+ const loading = useCallback9((title, description) => {
3222
3407
  return toaster.create({
3223
3408
  title,
3224
3409
  description,
@@ -3226,7 +3411,7 @@ var useToast = () => {
3226
3411
  closable: false
3227
3412
  });
3228
3413
  }, []);
3229
- const dismiss = useCallback8((id) => {
3414
+ const dismiss = useCallback9((id) => {
3230
3415
  toaster.dismiss(id);
3231
3416
  }, []);
3232
3417
  const toast = useMemo11(() => ({
@@ -3244,8 +3429,8 @@ var useToast = () => {
3244
3429
  // src/hooks/useTx.tsx
3245
3430
  import { coins, isDeliverTxSuccess } from "@cosmjs/stargate";
3246
3431
  import { useChain as useChain2 } from "@interchain-kit/react";
3247
- import BigNumber9 from "bignumber.js";
3248
- import { useCallback as useCallback9, useMemo as useMemo12, useState as useState3 } from "react";
3432
+ import BigNumber12 from "bignumber.js";
3433
+ import { useCallback as useCallback10, useMemo as useMemo12, useState as useState3 } from "react";
3249
3434
  var TxStatus = /* @__PURE__ */ ((TxStatus2) => {
3250
3435
  TxStatus2["Failed"] = "Transaction Failed";
3251
3436
  TxStatus2["Successful"] = "Transaction Successful";
@@ -3285,18 +3470,18 @@ var useTx = (chainName, isCosmos, isIBC) => {
3285
3470
  const { getDenomsPool } = useLiquidityPools();
3286
3471
  const { feeDenom } = useSettings();
3287
3472
  const defaultChainName = useMemo12(() => getChainName(), []);
3288
- const canUseClient = useCallback9(async () => {
3473
+ const canUseClient = useCallback10(async () => {
3289
3474
  if (!isSigningClientReady) {
3290
3475
  console.error("waiting for signing client to be ready", signingClientError);
3291
3476
  await sleep(1e3);
3292
3477
  }
3293
3478
  return isSigningClientReady;
3294
3479
  }, [isSigningClientReady, signingClientError]);
3295
- const simulateFee = useCallback9(async (messages, memo) => {
3480
+ const simulateFee = useCallback10(async (messages, memo) => {
3296
3481
  const gasPrice = 0.02;
3297
3482
  const nativeDenom = getChainNativeAssetDenom();
3298
3483
  const gasEstimated = await signingClient.simulate(address, messages, memo);
3299
- const gasAmount = BigNumber9(gasEstimated).multipliedBy(1.5);
3484
+ const gasAmount = BigNumber12(gasEstimated).multipliedBy(1.5);
3300
3485
  const gasPayment = gasAmount.multipliedBy(gasPrice);
3301
3486
  const nativeFee = {
3302
3487
  amount: coins(gasPayment.toFixed(0).toString(), nativeDenom),
@@ -3313,16 +3498,16 @@ var useTx = (chainName, isCosmos, isIBC) => {
3313
3498
  if (!expectedAmount.isPositive()) {
3314
3499
  return nativeFee;
3315
3500
  }
3316
- expectedAmount = expectedAmount.multipliedBy(1.5).integerValue(BigNumber9.ROUND_FLOOR);
3501
+ expectedAmount = expectedAmount.multipliedBy(1.5).integerValue(BigNumber12.ROUND_FLOOR);
3317
3502
  if (expectedAmount.multipliedBy(pool.fee).lt(1)) {
3318
- expectedAmount = toBigNumber(1).dividedBy(pool.fee).integerValue(BigNumber9.ROUND_CEIL);
3503
+ expectedAmount = toBigNumber(1).dividedBy(pool.fee).integerValue(BigNumber12.ROUND_CEIL);
3319
3504
  }
3320
3505
  return {
3321
3506
  amount: coins(expectedAmount.toFixed(0).toString(), feeDenom),
3322
3507
  gas: gasAmount.multipliedBy(1.5).toFixed(0)
3323
3508
  };
3324
3509
  }, [signingClient, address, feeDenom, getDenomsPool]);
3325
- const getFee = useCallback9(async (messages, options) => {
3510
+ const getFee = useCallback10(async (messages, options) => {
3326
3511
  try {
3327
3512
  if (options == null ? void 0 : options.fee) {
3328
3513
  return options.fee;
@@ -3339,7 +3524,7 @@ var useTx = (chainName, isCosmos, isIBC) => {
3339
3524
  }
3340
3525
  }
3341
3526
  }, [simulateFee]);
3342
- const tx = useCallback9(async (msgs, options) => {
3527
+ const tx = useCallback10(async (msgs, options) => {
3343
3528
  var _a2;
3344
3529
  if (!address) {
3345
3530
  toast.error("Transaction Failed" /* Failed */, "Please connect the wallet");
@@ -3592,7 +3777,7 @@ import {
3592
3777
  } from "@chakra-ui/react";
3593
3778
  import { Select, Portal as Portal3 } from "@chakra-ui/react";
3594
3779
  import { useTheme } from "next-themes";
3595
- import { useState as useState6, useEffect as useEffect4, useMemo as useMemo13, useCallback as useCallback10 } from "react";
3780
+ import { useState as useState6, useEffect as useEffect4, useMemo as useMemo13, useCallback as useCallback11 } from "react";
3596
3781
  import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
3597
3782
  var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3598
3783
  const { setTheme, resolvedTheme } = useTheme();
@@ -3612,7 +3797,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3612
3797
  setPreferredFeeDenom(settings.preferredFeeDenom || getChainNativeAssetDenom());
3613
3798
  }
3614
3799
  }, [isLoaded, settings]);
3615
- const handleValidateEndpoints = useCallback10(async (rest, rpc) => {
3800
+ const handleValidateEndpoints = useCallback11(async (rest, rpc) => {
3616
3801
  setIsValidating(true);
3617
3802
  setValidationResults({});
3618
3803
  try {
@@ -3632,7 +3817,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3632
3817
  setTimeout(() => setValidationResults({}), 1e4);
3633
3818
  }
3634
3819
  }, []);
3635
- const handleSaveSettings = useCallback10(async (rest, rpc, feeDenom) => {
3820
+ const handleSaveSettings = useCallback11(async (rest, rpc, feeDenom) => {
3636
3821
  setValidationResults({});
3637
3822
  const results = await validateEndpoints(rest, rpc);
3638
3823
  if (!results.isValid) {
@@ -3652,7 +3837,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3652
3837
  toast.success("Success!", "Settings have been saved.");
3653
3838
  }
3654
3839
  }, []);
3655
- const handleResetToDefaults = useCallback10(() => {
3840
+ const handleResetToDefaults = useCallback11(() => {
3656
3841
  setRestEndpoint(defaultSettings.endpoints.restEndpoint);
3657
3842
  setRpcEndpoint(defaultSettings.endpoints.rpcEndpoint);
3658
3843
  setPreferredFeeDenom(defaultSettings.preferredFeeDenom);
@@ -3685,7 +3870,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3685
3870
  name: token.ticker || token.name
3686
3871
  }))
3687
3872
  }), [feeTokens]);
3688
- const handleFeeTokenChange = useCallback10((denom) => {
3873
+ const handleFeeTokenChange = useCallback11((denom) => {
3689
3874
  setPreferredFeeDenom(denom || void 0);
3690
3875
  }, []);
3691
3876
  const hasUnsavedChanges = restEndpoint !== settings.endpoints.restEndpoint || rpcEndpoint !== settings.endpoints.rpcEndpoint || preferredFeeDenom !== settings.preferredFeeDenom;
@@ -3861,15 +4046,15 @@ import {
3861
4046
  VStack as VStack2
3862
4047
  } from "@chakra-ui/react";
3863
4048
  import { LuCopy, LuExternalLink, LuX as LuX2 } from "react-icons/lu";
3864
- import { useCallback as useCallback11, useEffect as useEffect5, useMemo as useMemo14, useRef as useRef3, useState as useState7 } from "react";
4049
+ import { useCallback as useCallback12, useEffect as useEffect5, useMemo as useMemo14, useRef as useRef3, useState as useState7 } from "react";
3865
4050
  import { WalletState } from "@interchain-kit/core";
3866
- import BigNumber10 from "bignumber.js";
4051
+ import BigNumber13 from "bignumber.js";
3867
4052
  import { cosmos } from "@bze/bzejs";
3868
4053
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
3869
4054
  var validateAmount = (amount, coin, onError) => {
3870
4055
  if (!coin) return;
3871
4056
  if (amount === "") return;
3872
- const amountNumber = BigNumber10(amount);
4057
+ const amountNumber = BigNumber13(amount);
3873
4058
  if (amountNumber.isNaN()) {
3874
4059
  onError("Invalid amount");
3875
4060
  return;
@@ -3963,13 +4148,13 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
3963
4148
  const isValidForm = useMemo14(() => {
3964
4149
  return selectedCoin && memoError === "" && recipientError === "" && sendAmountError === "" && sendAmount !== "" && recipient !== "";
3965
4150
  }, [selectedCoin, memoError, recipientError, sendAmountError, sendAmount, recipient]);
3966
- const resetSendForm = useCallback11(() => {
4151
+ const resetSendForm = useCallback12(() => {
3967
4152
  setSelectedCoin(void 0);
3968
4153
  setSendAmount("");
3969
4154
  setRecipient("");
3970
4155
  setMemo("");
3971
4156
  }, []);
3972
- const handleSend = useCallback11(async () => {
4157
+ const handleSend = useCallback12(async () => {
3973
4158
  var _a2, _b2;
3974
4159
  if (!isValidForm) {
3975
4160
  toast.error("Can not send coins!", "Please check the input data.");
@@ -3994,11 +4179,11 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
3994
4179
  setIsLoading(false);
3995
4180
  onClose();
3996
4181
  }, [address, memo, onClose, recipient, selectedCoin, sendAmount, status]);
3997
- const handleCancel = useCallback11(() => {
4182
+ const handleCancel = useCallback12(() => {
3998
4183
  resetSendForm();
3999
4184
  onClose();
4000
4185
  }, [onClose, resetSendForm]);
4001
- const onRecipientChange = useCallback11((recipient2) => {
4186
+ const onRecipientChange = useCallback12((recipient2) => {
4002
4187
  setRecipient(recipient2);
4003
4188
  if (recipient2.length === 0) {
4004
4189
  setRecipientError("");
@@ -4011,11 +4196,11 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
4011
4196
  setRecipientError(validate.message);
4012
4197
  }
4013
4198
  }, []);
4014
- const onAmountChange = useCallback11((amount) => {
4199
+ const onAmountChange = useCallback12((amount) => {
4015
4200
  setSendAmount(sanitizeNumberInput(amount));
4016
4201
  setSendAmountError("");
4017
4202
  }, []);
4018
- const onCoinSelectChange = useCallback11((ticker) => {
4203
+ const onCoinSelectChange = useCallback12((ticker) => {
4019
4204
  if (ticker === "") return;
4020
4205
  const selectedCoin2 = balances.find((item) => item.ticker === ticker);
4021
4206
  if (selectedCoin2) {
@@ -4023,13 +4208,13 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
4023
4208
  validateAmount(sendAmount, selectedCoin2, setSendAmountError);
4024
4209
  }
4025
4210
  }, [sendAmount, balances]);
4026
- const setMaxAmount = useCallback11(() => {
4211
+ const setMaxAmount = useCallback12(() => {
4027
4212
  if (!selectedCoin) return;
4028
4213
  const maxAmount = uAmountToBigNumberAmount(selectedCoin.amount, selectedCoin.decimals);
4029
4214
  onAmountChange(maxAmount.toString());
4030
4215
  validateAmount(maxAmount.toString(), selectedCoin, setSendAmountError);
4031
4216
  }, [selectedCoin, onAmountChange]);
4032
- const onMemoChange = useCallback11((memo2) => {
4217
+ const onMemoChange = useCallback12((memo2) => {
4033
4218
  setMemo(memo2);
4034
4219
  if (memo2.length > 256) {
4035
4220
  setMemoError("Memo must be less than or equal to 256 characters");
@@ -4240,15 +4425,15 @@ var WalletSidebarContent = ({ accentColor = "blue" }) => {
4240
4425
  setShowCopiedTooltip(true);
4241
4426
  setTimeout(() => setShowCopiedTooltip(false), 2e3);
4242
4427
  };
4243
- const handleCancel = useCallback11(() => {
4428
+ const handleCancel = useCallback12(() => {
4244
4429
  setViewState("balances");
4245
4430
  setClickedBalance("");
4246
4431
  }, []);
4247
- const onBalanceClick = useCallback11((ticker) => {
4432
+ const onBalanceClick = useCallback12((ticker) => {
4248
4433
  setClickedBalance(ticker);
4249
4434
  setViewState("send");
4250
4435
  }, []);
4251
- const handleDisconnectAll = useCallback11(async () => {
4436
+ const handleDisconnectAll = useCallback12(async () => {
4252
4437
  setIsDisconnecting(true);
4253
4438
  try {
4254
4439
  console.log("Disconnected from all chains");
@@ -4647,9 +4832,11 @@ export {
4647
4832
  useFeeTokens,
4648
4833
  useIBCChains,
4649
4834
  useIBCTx,
4835
+ useLiquidityPool,
4650
4836
  useLiquidityPools,
4651
4837
  useMarket,
4652
4838
  useMarkets,
4839
+ useMarketsManager,
4653
4840
  useSDKTx,
4654
4841
  useSettings,
4655
4842
  useSigningClient,