@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.d.mts +37 -3
- package/dist/index.d.ts +37 -3
- package/dist/index.js +222 -33
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +252 -65
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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 =
|
|
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
|
-
|
|
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
|
-
|
|
3109
|
-
|
|
3110
|
-
)
|
|
3111
|
-
|
|
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
|
-
|
|
3277
|
+
isLoading,
|
|
3278
|
+
assetMarkets,
|
|
3279
|
+
assetMarketsData,
|
|
3280
|
+
asset24hTradedVolume
|
|
3114
3281
|
};
|
|
3115
3282
|
}
|
|
3116
|
-
function useMarket(
|
|
3117
|
-
const { marketsMap, marketsDataMap,
|
|
3118
|
-
const
|
|
3119
|
-
const
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
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,
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
3248
|
-
import { useCallback as
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
4151
|
+
const resetSendForm = useCallback12(() => {
|
|
3967
4152
|
setSelectedCoin(void 0);
|
|
3968
4153
|
setSendAmount("");
|
|
3969
4154
|
setRecipient("");
|
|
3970
4155
|
setMemo("");
|
|
3971
4156
|
}, []);
|
|
3972
|
-
const handleSend =
|
|
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 =
|
|
4182
|
+
const handleCancel = useCallback12(() => {
|
|
3998
4183
|
resetSendForm();
|
|
3999
4184
|
onClose();
|
|
4000
4185
|
}, [onClose, resetSendForm]);
|
|
4001
|
-
const onRecipientChange =
|
|
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 =
|
|
4199
|
+
const onAmountChange = useCallback12((amount) => {
|
|
4015
4200
|
setSendAmount(sanitizeNumberInput(amount));
|
|
4016
4201
|
setSendAmountError("");
|
|
4017
4202
|
}, []);
|
|
4018
|
-
const onCoinSelectChange =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
4428
|
+
const handleCancel = useCallback12(() => {
|
|
4244
4429
|
setViewState("balances");
|
|
4245
4430
|
setClickedBalance("");
|
|
4246
4431
|
}, []);
|
|
4247
|
-
const onBalanceClick =
|
|
4432
|
+
const onBalanceClick = useCallback12((ticker) => {
|
|
4248
4433
|
setClickedBalance(ticker);
|
|
4249
4434
|
setViewState("send");
|
|
4250
4435
|
}, []);
|
|
4251
|
-
const handleDisconnectAll =
|
|
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,
|