@bze/bze-ui-kit 0.1.0 → 0.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
@@ -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,22 +3012,124 @@ 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();
3132
+ const { assetsMap, usdPricesMap, balancesMap, isLoading: isLoadingPrices } = useAssetsContext();
3029
3133
  const totalUsdValue = useMemo8(() => {
3030
3134
  let total = toBigNumber(0);
3031
3135
  balancesMap.forEach((balance, denom) => {
@@ -3037,17 +3141,32 @@ function useAssetsValue() {
3037
3141
  });
3038
3142
  return total;
3039
3143
  }, [balancesMap, usdPricesMap, assetsMap]);
3040
- const denomUsdValue = (denom, uAmount) => {
3144
+ const denomUsdValue = useCallback7((denom, uAmount) => {
3041
3145
  const price = usdPricesMap.get(denom);
3042
3146
  if (!price || !price.gt(0)) return toBigNumber(0);
3043
3147
  const asset = assetsMap.get(denom);
3044
3148
  if (!asset) return toBigNumber(0);
3045
3149
  return price.multipliedBy(uAmountToBigNumberAmount(uAmount, asset.decimals));
3046
- };
3150
+ }, [usdPricesMap, assetsMap]);
3151
+ const compareValues = useCallback7((a, b) => {
3152
+ var _a2;
3153
+ let aValue = BigNumber10(0);
3154
+ const aPrice = usdPricesMap.get(a.denom);
3155
+ if (aPrice) {
3156
+ aValue = aPrice.multipliedBy(a.amount);
3157
+ }
3158
+ let bValue = BigNumber10(0);
3159
+ const bPrice = usdPricesMap.get(b.denom);
3160
+ if (bPrice) {
3161
+ bValue = bPrice.multipliedBy(b.amount);
3162
+ }
3163
+ return (_a2 = aValue.comparedTo(bValue)) != null ? _a2 : 0;
3164
+ }, [usdPricesMap]);
3047
3165
  return {
3048
3166
  totalUsdValue,
3049
3167
  denomUsdValue,
3050
- isLoading
3168
+ compareValues,
3169
+ isLoading: isLoadingPrices
3051
3170
  };
3052
3171
  }
3053
3172
 
@@ -3088,58 +3207,113 @@ function useFeeTokens() {
3088
3207
  }
3089
3208
 
3090
3209
  // src/hooks/useMarkets.ts
3091
- import { useMemo as useMemo10 } from "react";
3210
+ import { useCallback as useCallback8, useMemo as useMemo10 } from "react";
3211
+ import BigNumber11 from "bignumber.js";
3092
3212
  function useMarkets() {
3093
3213
  const { marketsMap, marketsDataMap, updateMarkets, isLoading } = useAssetsContext();
3094
3214
  const markets = useMemo10(() => {
3095
3215
  return Array.from(marketsMap.values());
3096
3216
  }, [marketsMap]);
3217
+ const marketsData = useMemo10(() => Array.from(marketsDataMap.values()), [marketsDataMap]);
3218
+ const marketExists = useCallback8((marketId) => marketsMap.has(marketId), [marketsMap]);
3219
+ const getMarketData = useCallback8((marketId) => marketsDataMap.get(marketId), [marketsDataMap]);
3220
+ const getMarket = useCallback8((marketId) => marketsMap.get(marketId), [marketsMap]);
3097
3221
  return {
3098
3222
  markets,
3223
+ marketsData,
3099
3224
  marketsMap,
3100
3225
  marketsDataMap,
3101
3226
  isLoading,
3102
- updateMarkets
3227
+ updateMarkets,
3228
+ marketExists,
3229
+ getMarketData,
3230
+ getMarket
3103
3231
  };
3104
3232
  }
3105
3233
  function useAssetMarkets(denom) {
3106
- const { marketsMap } = useAssetsContext();
3234
+ const { isLoading, marketsMap, marketsDataMap } = useAssetsContext();
3235
+ const markets = useMemo10(() => Array.from(marketsMap.values()), [marketsMap]);
3236
+ const marketsData = useMemo10(() => Array.from(marketsDataMap.values()), [marketsDataMap]);
3107
3237
  const assetMarkets = useMemo10(() => {
3108
- return Array.from(marketsMap.values()).filter(
3109
- (market) => market.base === denom || market.quote === denom
3110
- );
3111
- }, [marketsMap, denom]);
3238
+ const baseMatches = [];
3239
+ const quoteMatches = [];
3240
+ for (const market of markets) {
3241
+ if (market.base === denom) baseMatches.push(market);
3242
+ else if (market.quote === denom) quoteMatches.push(market);
3243
+ }
3244
+ return [...baseMatches, ...quoteMatches];
3245
+ }, [markets, denom]);
3246
+ const assetMarketsData = useMemo10(() => {
3247
+ const baseMatches = [];
3248
+ const quoteMatches = [];
3249
+ for (const market of marketsData) {
3250
+ if (market.base === denom) baseMatches.push(market);
3251
+ else if (market.quote === denom) quoteMatches.push(market);
3252
+ }
3253
+ return [...baseMatches, ...quoteMatches];
3254
+ }, [marketsData, denom]);
3255
+ const asset24hTradedVolume = useMemo10(() => {
3256
+ return assetMarketsData.reduce((acc, market) => {
3257
+ if (denom === market.base) {
3258
+ return acc.plus(market.base_volume || 0);
3259
+ } else if (denom === market.quote) {
3260
+ return acc.plus(market.quote_volume || 0);
3261
+ }
3262
+ return acc;
3263
+ }, new BigNumber11(0));
3264
+ }, [assetMarketsData, denom]);
3112
3265
  return {
3113
- assetMarkets
3266
+ isLoading,
3267
+ assetMarkets,
3268
+ assetMarketsData,
3269
+ asset24hTradedVolume
3114
3270
  };
3115
3271
  }
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]);
3272
+ function useMarket(marketId) {
3273
+ const { marketsMap, marketsDataMap, isLoading, assetsMap } = useAssetsContext();
3274
+ const market = useMemo10(() => marketsMap.get(marketId), [marketsMap, marketId]);
3275
+ const marketSymbol = useMemo10(() => {
3276
+ var _a2, _b2;
3277
+ if (isLoading) return "";
3278
+ if (!market) return "";
3279
+ let base = (_a2 = assetsMap.get(market.base)) == null ? void 0 : _a2.ticker;
3280
+ if (!base) {
3281
+ base = truncateDenom(market.base);
3282
+ }
3283
+ let quote = (_b2 = assetsMap.get(market.quote)) == null ? void 0 : _b2.ticker;
3284
+ if (!quote) {
3285
+ quote = truncateDenom(market.quote);
3286
+ }
3287
+ return `${base}/${quote}`;
3288
+ }, [market, isLoading, assetsMap]);
3289
+ const marketData = useMemo10(() => marketsDataMap.get(marketId), [marketsDataMap, marketId]);
3125
3290
  const marketExists = useMemo10(() => !!market, [market]);
3126
3291
  const volume24h = useMemo10(() => {
3127
- if (!marketData) return toBigNumber(0);
3128
- const quoteAsset = assetsMap.get(quote);
3292
+ if (!marketData || !market) return toBigNumber(0);
3293
+ const quoteAsset = assetsMap.get(market.quote);
3129
3294
  if (!quoteAsset) return toBigNumber(0);
3130
3295
  return uAmountToBigNumberAmount(toBigNumber(marketData.quote_volume), quoteAsset.decimals);
3131
- }, [marketData, assetsMap, quote]);
3296
+ }, [marketData, assetsMap, market]);
3132
3297
  return {
3298
+ isLoading,
3133
3299
  market,
3134
3300
  marketData,
3301
+ marketSymbol,
3302
+ marketId,
3135
3303
  marketExists,
3136
- volume24h,
3304
+ volume24h
3305
+ };
3306
+ }
3307
+ function useMarketsManager() {
3308
+ const { updateMarkets, isLoading } = useAssetsContext();
3309
+ return {
3310
+ updateMarkets,
3137
3311
  isLoading
3138
3312
  };
3139
3313
  }
3140
3314
 
3141
3315
  // src/hooks/useToast.tsx
3142
- import { useCallback as useCallback8, useMemo as useMemo11 } from "react";
3316
+ import { useCallback as useCallback9, useMemo as useMemo11 } from "react";
3143
3317
 
3144
3318
  // src/components/toaster.tsx
3145
3319
  import {
@@ -3169,7 +3343,7 @@ var Toaster = () => {
3169
3343
 
3170
3344
  // src/hooks/useToast.tsx
3171
3345
  var useToast = () => {
3172
- const clickableSuccess = useCallback8((title, actionFn, actionLabel, description, duration = 5e3) => {
3346
+ const clickableSuccess = useCallback9((title, actionFn, actionLabel, description, duration = 5e3) => {
3173
3347
  toaster.create({
3174
3348
  title,
3175
3349
  description,
@@ -3182,7 +3356,7 @@ var useToast = () => {
3182
3356
  }
3183
3357
  });
3184
3358
  }, []);
3185
- const success = useCallback8((title, description, duration = 5e3) => {
3359
+ const success = useCallback9((title, description, duration = 5e3) => {
3186
3360
  toaster.create({
3187
3361
  title,
3188
3362
  description,
@@ -3191,7 +3365,7 @@ var useToast = () => {
3191
3365
  closable: true
3192
3366
  });
3193
3367
  }, []);
3194
- const error = useCallback8((title, description, duration = 8e3) => {
3368
+ const error = useCallback9((title, description, duration = 8e3) => {
3195
3369
  toaster.create({
3196
3370
  title,
3197
3371
  description,
@@ -3200,7 +3374,7 @@ var useToast = () => {
3200
3374
  closable: true
3201
3375
  });
3202
3376
  }, []);
3203
- const warning = useCallback8((title, description, duration = 6e3) => {
3377
+ const warning = useCallback9((title, description, duration = 6e3) => {
3204
3378
  toaster.create({
3205
3379
  title,
3206
3380
  description,
@@ -3209,7 +3383,7 @@ var useToast = () => {
3209
3383
  closable: true
3210
3384
  });
3211
3385
  }, []);
3212
- const info = useCallback8((title, description, duration = 5e3) => {
3386
+ const info = useCallback9((title, description, duration = 5e3) => {
3213
3387
  toaster.create({
3214
3388
  title,
3215
3389
  description,
@@ -3218,7 +3392,7 @@ var useToast = () => {
3218
3392
  closable: true
3219
3393
  });
3220
3394
  }, []);
3221
- const loading = useCallback8((title, description) => {
3395
+ const loading = useCallback9((title, description) => {
3222
3396
  return toaster.create({
3223
3397
  title,
3224
3398
  description,
@@ -3226,7 +3400,7 @@ var useToast = () => {
3226
3400
  closable: false
3227
3401
  });
3228
3402
  }, []);
3229
- const dismiss = useCallback8((id) => {
3403
+ const dismiss = useCallback9((id) => {
3230
3404
  toaster.dismiss(id);
3231
3405
  }, []);
3232
3406
  const toast = useMemo11(() => ({
@@ -3244,8 +3418,8 @@ var useToast = () => {
3244
3418
  // src/hooks/useTx.tsx
3245
3419
  import { coins, isDeliverTxSuccess } from "@cosmjs/stargate";
3246
3420
  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";
3421
+ import BigNumber12 from "bignumber.js";
3422
+ import { useCallback as useCallback10, useMemo as useMemo12, useState as useState3 } from "react";
3249
3423
  var TxStatus = /* @__PURE__ */ ((TxStatus2) => {
3250
3424
  TxStatus2["Failed"] = "Transaction Failed";
3251
3425
  TxStatus2["Successful"] = "Transaction Successful";
@@ -3285,18 +3459,18 @@ var useTx = (chainName, isCosmos, isIBC) => {
3285
3459
  const { getDenomsPool } = useLiquidityPools();
3286
3460
  const { feeDenom } = useSettings();
3287
3461
  const defaultChainName = useMemo12(() => getChainName(), []);
3288
- const canUseClient = useCallback9(async () => {
3462
+ const canUseClient = useCallback10(async () => {
3289
3463
  if (!isSigningClientReady) {
3290
3464
  console.error("waiting for signing client to be ready", signingClientError);
3291
3465
  await sleep(1e3);
3292
3466
  }
3293
3467
  return isSigningClientReady;
3294
3468
  }, [isSigningClientReady, signingClientError]);
3295
- const simulateFee = useCallback9(async (messages, memo) => {
3469
+ const simulateFee = useCallback10(async (messages, memo) => {
3296
3470
  const gasPrice = 0.02;
3297
3471
  const nativeDenom = getChainNativeAssetDenom();
3298
3472
  const gasEstimated = await signingClient.simulate(address, messages, memo);
3299
- const gasAmount = BigNumber9(gasEstimated).multipliedBy(1.5);
3473
+ const gasAmount = BigNumber12(gasEstimated).multipliedBy(1.5);
3300
3474
  const gasPayment = gasAmount.multipliedBy(gasPrice);
3301
3475
  const nativeFee = {
3302
3476
  amount: coins(gasPayment.toFixed(0).toString(), nativeDenom),
@@ -3313,16 +3487,16 @@ var useTx = (chainName, isCosmos, isIBC) => {
3313
3487
  if (!expectedAmount.isPositive()) {
3314
3488
  return nativeFee;
3315
3489
  }
3316
- expectedAmount = expectedAmount.multipliedBy(1.5).integerValue(BigNumber9.ROUND_FLOOR);
3490
+ expectedAmount = expectedAmount.multipliedBy(1.5).integerValue(BigNumber12.ROUND_FLOOR);
3317
3491
  if (expectedAmount.multipliedBy(pool.fee).lt(1)) {
3318
- expectedAmount = toBigNumber(1).dividedBy(pool.fee).integerValue(BigNumber9.ROUND_CEIL);
3492
+ expectedAmount = toBigNumber(1).dividedBy(pool.fee).integerValue(BigNumber12.ROUND_CEIL);
3319
3493
  }
3320
3494
  return {
3321
3495
  amount: coins(expectedAmount.toFixed(0).toString(), feeDenom),
3322
3496
  gas: gasAmount.multipliedBy(1.5).toFixed(0)
3323
3497
  };
3324
3498
  }, [signingClient, address, feeDenom, getDenomsPool]);
3325
- const getFee = useCallback9(async (messages, options) => {
3499
+ const getFee = useCallback10(async (messages, options) => {
3326
3500
  try {
3327
3501
  if (options == null ? void 0 : options.fee) {
3328
3502
  return options.fee;
@@ -3339,7 +3513,7 @@ var useTx = (chainName, isCosmos, isIBC) => {
3339
3513
  }
3340
3514
  }
3341
3515
  }, [simulateFee]);
3342
- const tx = useCallback9(async (msgs, options) => {
3516
+ const tx = useCallback10(async (msgs, options) => {
3343
3517
  var _a2;
3344
3518
  if (!address) {
3345
3519
  toast.error("Transaction Failed" /* Failed */, "Please connect the wallet");
@@ -3592,7 +3766,7 @@ import {
3592
3766
  } from "@chakra-ui/react";
3593
3767
  import { Select, Portal as Portal3 } from "@chakra-ui/react";
3594
3768
  import { useTheme } from "next-themes";
3595
- import { useState as useState6, useEffect as useEffect4, useMemo as useMemo13, useCallback as useCallback10 } from "react";
3769
+ import { useState as useState6, useEffect as useEffect4, useMemo as useMemo13, useCallback as useCallback11 } from "react";
3596
3770
  import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
3597
3771
  var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3598
3772
  const { setTheme, resolvedTheme } = useTheme();
@@ -3612,7 +3786,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3612
3786
  setPreferredFeeDenom(settings.preferredFeeDenom || getChainNativeAssetDenom());
3613
3787
  }
3614
3788
  }, [isLoaded, settings]);
3615
- const handleValidateEndpoints = useCallback10(async (rest, rpc) => {
3789
+ const handleValidateEndpoints = useCallback11(async (rest, rpc) => {
3616
3790
  setIsValidating(true);
3617
3791
  setValidationResults({});
3618
3792
  try {
@@ -3632,7 +3806,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3632
3806
  setTimeout(() => setValidationResults({}), 1e4);
3633
3807
  }
3634
3808
  }, []);
3635
- const handleSaveSettings = useCallback10(async (rest, rpc, feeDenom) => {
3809
+ const handleSaveSettings = useCallback11(async (rest, rpc, feeDenom) => {
3636
3810
  setValidationResults({});
3637
3811
  const results = await validateEndpoints(rest, rpc);
3638
3812
  if (!results.isValid) {
@@ -3652,7 +3826,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3652
3826
  toast.success("Success!", "Settings have been saved.");
3653
3827
  }
3654
3828
  }, []);
3655
- const handleResetToDefaults = useCallback10(() => {
3829
+ const handleResetToDefaults = useCallback11(() => {
3656
3830
  setRestEndpoint(defaultSettings.endpoints.restEndpoint);
3657
3831
  setRpcEndpoint(defaultSettings.endpoints.rpcEndpoint);
3658
3832
  setPreferredFeeDenom(defaultSettings.preferredFeeDenom);
@@ -3685,7 +3859,7 @@ var SettingsSidebarContent = ({ accentColor = "blue" }) => {
3685
3859
  name: token.ticker || token.name
3686
3860
  }))
3687
3861
  }), [feeTokens]);
3688
- const handleFeeTokenChange = useCallback10((denom) => {
3862
+ const handleFeeTokenChange = useCallback11((denom) => {
3689
3863
  setPreferredFeeDenom(denom || void 0);
3690
3864
  }, []);
3691
3865
  const hasUnsavedChanges = restEndpoint !== settings.endpoints.restEndpoint || rpcEndpoint !== settings.endpoints.rpcEndpoint || preferredFeeDenom !== settings.preferredFeeDenom;
@@ -3861,15 +4035,15 @@ import {
3861
4035
  VStack as VStack2
3862
4036
  } from "@chakra-ui/react";
3863
4037
  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";
4038
+ import { useCallback as useCallback12, useEffect as useEffect5, useMemo as useMemo14, useRef as useRef3, useState as useState7 } from "react";
3865
4039
  import { WalletState } from "@interchain-kit/core";
3866
- import BigNumber10 from "bignumber.js";
4040
+ import BigNumber13 from "bignumber.js";
3867
4041
  import { cosmos } from "@bze/bzejs";
3868
4042
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
3869
4043
  var validateAmount = (amount, coin, onError) => {
3870
4044
  if (!coin) return;
3871
4045
  if (amount === "") return;
3872
- const amountNumber = BigNumber10(amount);
4046
+ const amountNumber = BigNumber13(amount);
3873
4047
  if (amountNumber.isNaN()) {
3874
4048
  onError("Invalid amount");
3875
4049
  return;
@@ -3963,13 +4137,13 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
3963
4137
  const isValidForm = useMemo14(() => {
3964
4138
  return selectedCoin && memoError === "" && recipientError === "" && sendAmountError === "" && sendAmount !== "" && recipient !== "";
3965
4139
  }, [selectedCoin, memoError, recipientError, sendAmountError, sendAmount, recipient]);
3966
- const resetSendForm = useCallback11(() => {
4140
+ const resetSendForm = useCallback12(() => {
3967
4141
  setSelectedCoin(void 0);
3968
4142
  setSendAmount("");
3969
4143
  setRecipient("");
3970
4144
  setMemo("");
3971
4145
  }, []);
3972
- const handleSend = useCallback11(async () => {
4146
+ const handleSend = useCallback12(async () => {
3973
4147
  var _a2, _b2;
3974
4148
  if (!isValidForm) {
3975
4149
  toast.error("Can not send coins!", "Please check the input data.");
@@ -3994,11 +4168,11 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
3994
4168
  setIsLoading(false);
3995
4169
  onClose();
3996
4170
  }, [address, memo, onClose, recipient, selectedCoin, sendAmount, status]);
3997
- const handleCancel = useCallback11(() => {
4171
+ const handleCancel = useCallback12(() => {
3998
4172
  resetSendForm();
3999
4173
  onClose();
4000
4174
  }, [onClose, resetSendForm]);
4001
- const onRecipientChange = useCallback11((recipient2) => {
4175
+ const onRecipientChange = useCallback12((recipient2) => {
4002
4176
  setRecipient(recipient2);
4003
4177
  if (recipient2.length === 0) {
4004
4178
  setRecipientError("");
@@ -4011,11 +4185,11 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
4011
4185
  setRecipientError(validate.message);
4012
4186
  }
4013
4187
  }, []);
4014
- const onAmountChange = useCallback11((amount) => {
4188
+ const onAmountChange = useCallback12((amount) => {
4015
4189
  setSendAmount(sanitizeNumberInput(amount));
4016
4190
  setSendAmountError("");
4017
4191
  }, []);
4018
- const onCoinSelectChange = useCallback11((ticker) => {
4192
+ const onCoinSelectChange = useCallback12((ticker) => {
4019
4193
  if (ticker === "") return;
4020
4194
  const selectedCoin2 = balances.find((item) => item.ticker === ticker);
4021
4195
  if (selectedCoin2) {
@@ -4023,13 +4197,13 @@ var SendForm = ({ balances, onClose, selectedTicker, accentColor }) => {
4023
4197
  validateAmount(sendAmount, selectedCoin2, setSendAmountError);
4024
4198
  }
4025
4199
  }, [sendAmount, balances]);
4026
- const setMaxAmount = useCallback11(() => {
4200
+ const setMaxAmount = useCallback12(() => {
4027
4201
  if (!selectedCoin) return;
4028
4202
  const maxAmount = uAmountToBigNumberAmount(selectedCoin.amount, selectedCoin.decimals);
4029
4203
  onAmountChange(maxAmount.toString());
4030
4204
  validateAmount(maxAmount.toString(), selectedCoin, setSendAmountError);
4031
4205
  }, [selectedCoin, onAmountChange]);
4032
- const onMemoChange = useCallback11((memo2) => {
4206
+ const onMemoChange = useCallback12((memo2) => {
4033
4207
  setMemo(memo2);
4034
4208
  if (memo2.length > 256) {
4035
4209
  setMemoError("Memo must be less than or equal to 256 characters");
@@ -4240,15 +4414,15 @@ var WalletSidebarContent = ({ accentColor = "blue" }) => {
4240
4414
  setShowCopiedTooltip(true);
4241
4415
  setTimeout(() => setShowCopiedTooltip(false), 2e3);
4242
4416
  };
4243
- const handleCancel = useCallback11(() => {
4417
+ const handleCancel = useCallback12(() => {
4244
4418
  setViewState("balances");
4245
4419
  setClickedBalance("");
4246
4420
  }, []);
4247
- const onBalanceClick = useCallback11((ticker) => {
4421
+ const onBalanceClick = useCallback12((ticker) => {
4248
4422
  setClickedBalance(ticker);
4249
4423
  setViewState("send");
4250
4424
  }, []);
4251
- const handleDisconnectAll = useCallback11(async () => {
4425
+ const handleDisconnectAll = useCallback12(async () => {
4252
4426
  setIsDisconnecting(true);
4253
4427
  try {
4254
4428
  console.log("Disconnected from all chains");
@@ -4647,9 +4821,11 @@ export {
4647
4821
  useFeeTokens,
4648
4822
  useIBCChains,
4649
4823
  useIBCTx,
4824
+ useLiquidityPool,
4650
4825
  useLiquidityPools,
4651
4826
  useMarket,
4652
4827
  useMarkets,
4828
+ useMarketsManager,
4653
4829
  useSDKTx,
4654
4830
  useSettings,
4655
4831
  useSigningClient,