@ecency/wallets 1.4.8 → 1.4.10

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.
@@ -904,7 +904,7 @@ function getHiveAssetTransactionsQueryOptions(username, limit = 20, group) {
904
904
  case "transfer_to_savings":
905
905
  case "transfer_to_vesting":
906
906
  case "recurrent_transfer":
907
- return ["HIVE"].includes(item.amount);
907
+ return parseAsset(item.amount).symbol === "HIVE";
908
908
  case "fill_recurrent_transfer":
909
909
  const asset = parseAsset(item.amount);
910
910
  return ["HIVE"].includes(asset.symbol);
@@ -954,11 +954,14 @@ function getHivePowerAssetTransactionsQueryOptions(username, limit = 20, group)
954
954
  item.reward_vests
955
955
  );
956
956
  return rewardVests.amount > 0;
957
+ case "transfer_to_vesting":
958
+ return true;
957
959
  case "transfer":
958
960
  case "transfer_to_savings":
959
- case "transfer_to_vesting":
960
961
  case "recurrent_transfer":
961
- return ["VESTS", "HP"].includes(item.amount);
962
+ return ["VESTS", "HP"].includes(
963
+ parseAsset(item.amount).symbol
964
+ );
962
965
  case "fill_recurrent_transfer":
963
966
  const asset = parseAsset(item.amount);
964
967
  return ["VESTS", "HP"].includes(asset.symbol);
@@ -1000,7 +1003,7 @@ function getHbdAssetTransactionsQueryOptions(username, limit = 20, group) {
1000
1003
  case "transfer_to_savings":
1001
1004
  case "transfer_to_vesting":
1002
1005
  case "recurrent_transfer":
1003
- return ["HBD"].includes(item.amount);
1006
+ return parseAsset(item.amount).symbol === "HBD";
1004
1007
  case "fill_recurrent_transfer":
1005
1008
  const asset = parseAsset(item.amount);
1006
1009
  return ["HBD"].includes(asset.symbol);
@@ -1765,12 +1768,23 @@ function getHiveEngineTokenGeneralInfoQueryOptions(username, symbol) {
1765
1768
  const balance = balanceList?.find((i) => i.symbol === symbol);
1766
1769
  const market = marketList?.find((i) => i.symbol === symbol);
1767
1770
  const lastPrice = +(market?.lastPrice ?? "0");
1771
+ const liquidBalance = parseFloat(balance?.balance ?? "0");
1772
+ const stakedBalance = parseFloat(balance?.stake ?? "0");
1773
+ const unstakingBalance = parseFloat(balance?.pendingUnstake ?? "0");
1774
+ const parts = [
1775
+ { name: "liquid", balance: liquidBalance },
1776
+ { name: "staked", balance: stakedBalance }
1777
+ ];
1778
+ if (unstakingBalance > 0) {
1779
+ parts.push({ name: "unstaking", balance: unstakingBalance });
1780
+ }
1768
1781
  return {
1769
1782
  name: symbol,
1770
1783
  title: metadata?.name ?? "",
1771
1784
  price: lastPrice === 0 ? 0 : Number(lastPrice * (hiveData?.price ?? 0)),
1772
- accountBalance: parseFloat(balance?.balance ?? "0"),
1773
- layer: "ENGINE"
1785
+ accountBalance: liquidBalance + stakedBalance,
1786
+ layer: "ENGINE",
1787
+ parts
1774
1788
  };
1775
1789
  }
1776
1790
  });
@@ -2226,6 +2240,9 @@ function getPointsAssetTransactionsQueryOptions(username, type) {
2226
2240
  `${CONFIG.privateApiHost}/private-api/point-list`,
2227
2241
  {
2228
2242
  method: "POST",
2243
+ headers: {
2244
+ "Content-Type": "application/json"
2245
+ },
2229
2246
  body: JSON.stringify({
2230
2247
  username,
2231
2248
  type: type ?? 0
@@ -2929,22 +2946,30 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false) {
2929
2946
  case "TRX":
2930
2947
  return [];
2931
2948
  }
2949
+ if (!username) {
2950
+ return ["transfer" /* Transfer */];
2951
+ }
2952
+ const queryClient = getQueryClient();
2932
2953
  const balancesListQuery = getHiveEngineTokensBalancesQueryOptions(username);
2933
- await getQueryClient().prefetchQuery(balancesListQuery);
2934
- const balances = getQueryClient().getQueryData(
2935
- balancesListQuery.queryKey
2936
- );
2954
+ const balances = await queryClient.ensureQueryData(balancesListQuery);
2937
2955
  const tokensQuery = getHiveEngineTokensMetadataQueryOptions(
2938
- balances?.map((b) => b.symbol) ?? []
2956
+ balances.map((b) => b.symbol)
2939
2957
  );
2940
- await getQueryClient().prefetchQuery(tokensQuery);
2941
- const tokens = getQueryClient().getQueryData(tokensQuery.queryKey);
2942
- const balanceInfo = balances?.find((m) => m.symbol === token);
2943
- const tokenInfo = tokens?.find((t) => t.symbol === token);
2958
+ const tokens = await queryClient.ensureQueryData(tokensQuery);
2959
+ const balanceInfo = balances.find((m) => m.symbol === token);
2960
+ const tokenInfo = tokens.find((t) => t.symbol === token);
2944
2961
  const canDelegate = isForOwner && tokenInfo?.delegationEnabled && balanceInfo && parseFloat(balanceInfo.delegationsOut) !== parseFloat(balanceInfo.balance);
2945
2962
  const canUndelegate = isForOwner && parseFloat(balanceInfo?.delegationsOut ?? "0") > 0;
2946
- const canStake = isForOwner && tokenInfo?.stakingEnabled;
2947
- const canUnstake = isForOwner && parseFloat(balanceInfo?.stake ?? "0") > 0;
2963
+ const stakeBalance = parseFloat(balanceInfo?.stake ?? "0");
2964
+ const pendingUnstakeBalance = parseFloat(
2965
+ balanceInfo?.pendingUnstake ?? "0"
2966
+ );
2967
+ const supportsStakingFeature = Boolean(
2968
+ tokenInfo?.stakingEnabled || (tokenInfo?.unstakingCooldown ?? 0) > 0 || parseFloat(tokenInfo?.totalStaked ?? "0") > 0
2969
+ );
2970
+ const hasStakingBalances = stakeBalance > 0 || pendingUnstakeBalance > 0;
2971
+ const canStake = isForOwner && Boolean(tokenInfo?.stakingEnabled);
2972
+ const canUnstake = isForOwner && (supportsStakingFeature || hasStakingBalances);
2948
2973
  return [
2949
2974
  "transfer" /* Transfer */,
2950
2975
  ...canDelegate ? ["delegate" /* Delegate */] : [],
@@ -3320,7 +3345,7 @@ function useWalletOperation(username, asset, operation) {
3320
3345
  return useMutation({
3321
3346
  mutationKey: ["ecency-wallets", asset, operation],
3322
3347
  mutationFn: async (payload) => {
3323
- const operationFn = operationToFunctionMap[asset][operation];
3348
+ const operationFn = operationToFunctionMap[asset]?.[operation];
3324
3349
  if (operationFn) {
3325
3350
  return operationFn(payload);
3326
3351
  }