@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.d.mts +35 -2
- package/dist/index.d.ts +35 -2
- package/dist/index.js +210 -32
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +240 -64
- 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,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
|
-
|
|
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
|
-
|
|
3109
|
-
|
|
3110
|
-
)
|
|
3111
|
-
|
|
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
|
-
|
|
3266
|
+
isLoading,
|
|
3267
|
+
assetMarkets,
|
|
3268
|
+
assetMarketsData,
|
|
3269
|
+
asset24hTradedVolume
|
|
3114
3270
|
};
|
|
3115
3271
|
}
|
|
3116
|
-
function useMarket(
|
|
3117
|
-
const { marketsMap, marketsDataMap,
|
|
3118
|
-
const
|
|
3119
|
-
const
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
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,
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
3248
|
-
import { useCallback as
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
4140
|
+
const resetSendForm = useCallback12(() => {
|
|
3967
4141
|
setSelectedCoin(void 0);
|
|
3968
4142
|
setSendAmount("");
|
|
3969
4143
|
setRecipient("");
|
|
3970
4144
|
setMemo("");
|
|
3971
4145
|
}, []);
|
|
3972
|
-
const handleSend =
|
|
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 =
|
|
4171
|
+
const handleCancel = useCallback12(() => {
|
|
3998
4172
|
resetSendForm();
|
|
3999
4173
|
onClose();
|
|
4000
4174
|
}, [onClose, resetSendForm]);
|
|
4001
|
-
const onRecipientChange =
|
|
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 =
|
|
4188
|
+
const onAmountChange = useCallback12((amount) => {
|
|
4015
4189
|
setSendAmount(sanitizeNumberInput(amount));
|
|
4016
4190
|
setSendAmountError("");
|
|
4017
4191
|
}, []);
|
|
4018
|
-
const onCoinSelectChange =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
4417
|
+
const handleCancel = useCallback12(() => {
|
|
4244
4418
|
setViewState("balances");
|
|
4245
4419
|
setClickedBalance("");
|
|
4246
4420
|
}, []);
|
|
4247
|
-
const onBalanceClick =
|
|
4421
|
+
const onBalanceClick = useCallback12((ticker) => {
|
|
4248
4422
|
setClickedBalance(ticker);
|
|
4249
4423
|
setViewState("send");
|
|
4250
4424
|
}, []);
|
|
4251
|
-
const handleDisconnectAll =
|
|
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,
|