@ecency/wallets 1.5.8 → 1.5.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.
@@ -2901,51 +2901,6 @@ function getAllTokensListQueryOptions(username) {
2901
2901
  }
2902
2902
  });
2903
2903
  }
2904
- var ACTION_ALIAS_MAP = {
2905
- "transfer-to-savings": "transfer-saving" /* TransferToSavings */,
2906
- "transfer-savings": "transfer-saving" /* TransferToSavings */,
2907
- "savings-transfer": "transfer-saving" /* TransferToSavings */,
2908
- "withdraw-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
2909
- "withdraw-savings": "withdraw-saving" /* WithdrawFromSavings */,
2910
- "savings-withdraw": "withdraw-saving" /* WithdrawFromSavings */,
2911
- "transfer-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
2912
- "powerup": "power-up" /* PowerUp */,
2913
- "power-down": "power-down" /* PowerDown */,
2914
- "powerdown": "power-down" /* PowerDown */,
2915
- "withdraw-vesting": "power-down" /* PowerDown */,
2916
- "hp-delegate": "delegate" /* Delegate */,
2917
- "delegate-hp": "delegate" /* Delegate */,
2918
- "delegate-power": "delegate" /* Delegate */,
2919
- "delegate-vesting-shares": "delegate" /* Delegate */,
2920
- "undelegate-power": "undelegate" /* Undelegate */,
2921
- "undelegate-token": "undelegate" /* Undelegate */,
2922
- "stake-token": "stake" /* Stake */,
2923
- "stake-power": "stake" /* Stake */,
2924
- "unstake-token": "unstake" /* Unstake */,
2925
- "unstake-power": "unstake" /* Unstake */,
2926
- "transfer-to-vesting": "power-up" /* PowerUp */,
2927
- "lock-liquidity": "lock" /* LockLiquidity */,
2928
- "lock-liq": "lock" /* LockLiquidity */,
2929
- "gift-points": "gift" /* Gift */,
2930
- "points-gift": "gift" /* Gift */,
2931
- "promote-post": "promote" /* Promote */,
2932
- "promote-entry": "promote" /* Promote */,
2933
- boost: "promote" /* Promote */,
2934
- convert: "swap" /* Swap */,
2935
- "swap-token": "swap" /* Swap */,
2936
- "swap_tokens": "swap" /* Swap */,
2937
- "claim-points": "claim" /* Claim */,
2938
- "claim-rewards": "claim" /* Claim */,
2939
- "buy-points": "buy" /* Buy */,
2940
- "ecency-point-transfer": "transfer" /* Transfer */,
2941
- "spkcc-spk-send": "transfer" /* Transfer */,
2942
- "withdraw-routes": "withdraw-routes" /* WithdrawRoutes */,
2943
- "withdrawroutes": "withdraw-routes" /* WithdrawRoutes */,
2944
- "claim-interest": "claim-interest" /* ClaimInterest */
2945
- };
2946
- var KNOWN_OPERATION_VALUES = new Map(
2947
- Object.values(AssetOperation).map((value) => [value, value])
2948
- );
2949
2904
  var DERIVED_PART_KEY_MAP = {
2950
2905
  liquid: ["liquid", "liquidBalance", "liquid_amount", "liquidTokens"],
2951
2906
  savings: ["savings", "savingsBalance", "savings_amount"],
@@ -3111,34 +3066,6 @@ function normalizeExtraDataParts(rawExtraData) {
3111
3066
  }).filter((part) => Boolean(part));
3112
3067
  return parts.length ? parts : void 0;
3113
3068
  }
3114
- function normalizeActionKey(value) {
3115
- return value.trim().toLowerCase().replace(/[\s_]+/g, "-");
3116
- }
3117
- function mapActions(rawActions) {
3118
- if (!rawActions) {
3119
- return [];
3120
- }
3121
- const rawList = Array.isArray(rawActions) ? rawActions : [rawActions];
3122
- const result = [];
3123
- for (const raw of rawList) {
3124
- let candidate;
3125
- if (typeof raw === "string") {
3126
- candidate = raw;
3127
- } else if (raw && typeof raw === "object") {
3128
- const record = raw;
3129
- candidate = normalizeString(record.code) ?? normalizeString(record.id) ?? normalizeString(record.name) ?? normalizeString(record.action);
3130
- }
3131
- if (!candidate) {
3132
- continue;
3133
- }
3134
- const canonical = normalizeActionKey(candidate);
3135
- const operation = KNOWN_OPERATION_VALUES.get(canonical) ?? ACTION_ALIAS_MAP[canonical];
3136
- if (operation && !result.includes(operation)) {
3137
- result.push(operation);
3138
- }
3139
- }
3140
- return result;
3141
- }
3142
3069
  function parseToken(rawToken) {
3143
3070
  if (!rawToken || typeof rawToken !== "object") {
3144
3071
  return void 0;
@@ -3168,19 +3095,17 @@ function parseToken(rawToken) {
3168
3095
  const pendingRewards = normalizeNumber(token.pendingRewards);
3169
3096
  return {
3170
3097
  symbol: normalizedSymbol,
3171
- info: {
3172
- name: normalizedSymbol,
3173
- title,
3174
- price,
3175
- accountBalance,
3176
- apr: apr ?? void 0,
3177
- layer: layer ?? void 0,
3178
- pendingRewards: pendingRewards ?? void 0,
3179
- parts
3180
- },
3181
- operations: mapActions(
3182
- token.actions ?? token.available_actions ?? token.availableActions ?? token.operations ?? token.supportedActions
3183
- )
3098
+ name: normalizedSymbol,
3099
+ title,
3100
+ price,
3101
+ accountBalance,
3102
+ apr: apr ? Number.parseFloat(apr) : void 0,
3103
+ layer: layer ?? void 0,
3104
+ pendingRewards: pendingRewards ?? void 0,
3105
+ parts,
3106
+ actions: token.actions ?? token.available_actions ?? token.availableActions ?? token.operations ?? token.supportedActions,
3107
+ fiatRate: normalizeNumber(token.fiatRate) ?? void 0,
3108
+ fiatCurrency: normalizeString(token.fiatCurrency) ?? void 0
3184
3109
  };
3185
3110
  }
3186
3111
  function extractTokens(payload) {
@@ -3337,7 +3262,7 @@ function getAccountWalletListQueryOptions(username, currency = "usd") {
3337
3262
  try {
3338
3263
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3339
3264
  const tokensFromPortfolio = portfolio.wallets.map(
3340
- (asset) => asset.info.name
3265
+ (asset) => asset.name
3341
3266
  );
3342
3267
  if (tokensFromPortfolio.length > 0) {
3343
3268
  const visibleTokens = tokensFromPortfolio.map((token) => token?.toUpperCase?.()).filter((token) => Boolean(token)).filter(isTokenVisible);
@@ -3791,14 +3716,39 @@ function getAccountWalletAssetInfoQueryOptions(username, asset, options2 = { ref
3791
3716
  }
3792
3717
  return queryClient.getQueryData(queryOptions43.queryKey);
3793
3718
  };
3719
+ const convertPriceToUserCurrency = async (assetInfo) => {
3720
+ if (!assetInfo || currency === "usd") {
3721
+ return assetInfo;
3722
+ }
3723
+ try {
3724
+ const conversionRate = await sdk.getCurrencyRate(currency);
3725
+ return {
3726
+ ...assetInfo,
3727
+ price: assetInfo.price * conversionRate
3728
+ };
3729
+ } catch (error) {
3730
+ console.warn(`Failed to convert price from USD to ${currency}:`, error);
3731
+ return assetInfo;
3732
+ }
3733
+ };
3794
3734
  const portfolioQuery = getVisionPortfolioQueryOptions(username, currency);
3795
3735
  const getPortfolioAssetInfo = async () => {
3796
3736
  try {
3797
3737
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3798
3738
  const assetInfo = portfolio.wallets.find(
3799
- (assetItem) => assetItem.info.name === asset.toUpperCase()
3739
+ (assetItem) => assetItem.name === asset.toUpperCase()
3800
3740
  );
3801
- return assetInfo?.info;
3741
+ if (!assetInfo) return void 0;
3742
+ return {
3743
+ name: assetInfo.name,
3744
+ title: assetInfo.title,
3745
+ price: assetInfo.price ?? assetInfo.fiatRate ?? 0,
3746
+ accountBalance: assetInfo.accountBalance ?? 0,
3747
+ apr: assetInfo.apr,
3748
+ layer: assetInfo.layer,
3749
+ pendingRewards: assetInfo.pendingRewards,
3750
+ parts: assetInfo.parts
3751
+ };
3802
3752
  } catch (e) {
3803
3753
  return void 0;
3804
3754
  }
@@ -3807,63 +3757,56 @@ function getAccountWalletAssetInfoQueryOptions(username, asset, options2 = { ref
3807
3757
  queryKey: ["ecency-wallets", "asset-info", username, asset, currency],
3808
3758
  queryFn: async () => {
3809
3759
  const portfolioAssetInfo = await getPortfolioAssetInfo();
3810
- if (portfolioAssetInfo) {
3760
+ if (portfolioAssetInfo && portfolioAssetInfo.price > 0) {
3811
3761
  return portfolioAssetInfo;
3812
3762
  }
3763
+ let assetInfo;
3813
3764
  if (asset === "HIVE") {
3814
- return fetchQuery(getHiveAssetGeneralInfoQueryOptions(username));
3765
+ assetInfo = await fetchQuery(getHiveAssetGeneralInfoQueryOptions(username));
3815
3766
  } else if (asset === "HP") {
3816
- return fetchQuery(getHivePowerAssetGeneralInfoQueryOptions(username));
3767
+ assetInfo = await fetchQuery(getHivePowerAssetGeneralInfoQueryOptions(username));
3817
3768
  } else if (asset === "HBD") {
3818
- return fetchQuery(getHbdAssetGeneralInfoQueryOptions(username));
3769
+ assetInfo = await fetchQuery(getHbdAssetGeneralInfoQueryOptions(username));
3819
3770
  } else if (asset === "SPK") {
3820
- return fetchQuery(getSpkAssetGeneralInfoQueryOptions(username));
3771
+ assetInfo = await fetchQuery(getSpkAssetGeneralInfoQueryOptions(username));
3821
3772
  } else if (asset === "LARYNX") {
3822
- return fetchQuery(getLarynxAssetGeneralInfoQueryOptions(username));
3773
+ assetInfo = await fetchQuery(getLarynxAssetGeneralInfoQueryOptions(username));
3823
3774
  } else if (asset === "LP") {
3824
- return fetchQuery(getLarynxPowerAssetGeneralInfoQueryOptions(username));
3775
+ assetInfo = await fetchQuery(getLarynxPowerAssetGeneralInfoQueryOptions(username));
3825
3776
  } else if (asset === "POINTS") {
3826
- return fetchQuery(getPointsAssetGeneralInfoQueryOptions(username));
3777
+ assetInfo = await fetchQuery(getPointsAssetGeneralInfoQueryOptions(username));
3827
3778
  } else if (asset === "APT") {
3828
- return fetchQuery(getAptAssetGeneralInfoQueryOptions(username));
3779
+ assetInfo = await fetchQuery(getAptAssetGeneralInfoQueryOptions(username));
3829
3780
  } else if (asset === "BNB") {
3830
- return fetchQuery(getBnbAssetGeneralInfoQueryOptions(username));
3781
+ assetInfo = await fetchQuery(getBnbAssetGeneralInfoQueryOptions(username));
3831
3782
  } else if (asset === "BTC") {
3832
- return fetchQuery(getBtcAssetGeneralInfoQueryOptions(username));
3783
+ assetInfo = await fetchQuery(getBtcAssetGeneralInfoQueryOptions(username));
3833
3784
  } else if (asset === "ETH") {
3834
- return fetchQuery(getEthAssetGeneralInfoQueryOptions(username));
3785
+ assetInfo = await fetchQuery(getEthAssetGeneralInfoQueryOptions(username));
3835
3786
  } else if (asset === "SOL") {
3836
- return fetchQuery(getSolAssetGeneralInfoQueryOptions(username));
3787
+ assetInfo = await fetchQuery(getSolAssetGeneralInfoQueryOptions(username));
3837
3788
  } else if (asset === "TON") {
3838
- return fetchQuery(getTonAssetGeneralInfoQueryOptions(username));
3789
+ assetInfo = await fetchQuery(getTonAssetGeneralInfoQueryOptions(username));
3839
3790
  } else if (asset === "TRX") {
3840
- return fetchQuery(getTronAssetGeneralInfoQueryOptions(username));
3841
- }
3842
- const balances = await queryClient.ensureQueryData(
3843
- getHiveEngineTokensBalancesQueryOptions(username)
3844
- );
3845
- if (balances.some((balance) => balance.symbol === asset)) {
3846
- return await fetchQuery(
3847
- getHiveEngineTokenGeneralInfoQueryOptions(username, asset)
3848
- );
3791
+ assetInfo = await fetchQuery(getTronAssetGeneralInfoQueryOptions(username));
3849
3792
  } else {
3850
- throw new Error(
3851
- "[SDK][Wallets] \u2013 has requested unrecognized asset info"
3793
+ const balances = await queryClient.ensureQueryData(
3794
+ getHiveEngineTokensBalancesQueryOptions(username)
3852
3795
  );
3796
+ if (balances.some((balance) => balance.symbol === asset)) {
3797
+ assetInfo = await fetchQuery(
3798
+ getHiveEngineTokenGeneralInfoQueryOptions(username, asset)
3799
+ );
3800
+ } else {
3801
+ throw new Error(
3802
+ "[SDK][Wallets] \u2013 has requested unrecognized asset info"
3803
+ );
3804
+ }
3853
3805
  }
3806
+ return await convertPriceToUserCurrency(assetInfo);
3854
3807
  }
3855
3808
  });
3856
3809
  }
3857
- function normalizePartKey2(value) {
3858
- return value.trim().toLowerCase().replace(/[\s-]+/g, "_");
3859
- }
3860
- function hasNonZeroSavingsBalance(parts) {
3861
- return Boolean(
3862
- parts?.some(
3863
- (part) => normalizePartKey2(part.name) === "savings" && Number(part.balance) > 0
3864
- )
3865
- );
3866
- }
3867
3810
  function getTokenOperationsQueryOptions(token, username, isForOwner = false, currency = "usd") {
3868
3811
  return reactQuery.queryOptions({
3869
3812
  queryKey: ["wallets", "token-operations", token, username, isForOwner, currency],
@@ -3878,16 +3821,93 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3878
3821
  getVisionPortfolioQueryOptions(username, currency)
3879
3822
  );
3880
3823
  const assetEntry = portfolio.wallets.find(
3881
- (assetItem) => assetItem.info.name === normalizedToken
3824
+ (assetItem) => assetItem.symbol?.toUpperCase() === normalizedToken
3882
3825
  );
3883
3826
  if (!assetEntry) {
3884
3827
  return [];
3885
3828
  }
3886
- const operations = assetEntry.operations ?? [];
3887
- const isHiveOrHbd = ["HIVE", "HBD"].includes(
3888
- assetEntry.info.name.toUpperCase()
3889
- );
3890
- if (isHiveOrHbd && !hasNonZeroSavingsBalance(assetEntry.info.parts)) {
3829
+ const rawActions = assetEntry.actions ?? [];
3830
+ const operations = rawActions.map((action) => {
3831
+ if (typeof action === "string") return action;
3832
+ if (action && typeof action === "object") {
3833
+ const record = action;
3834
+ return record.id ?? record.code ?? record.name ?? record.action;
3835
+ }
3836
+ return void 0;
3837
+ }).filter((id) => Boolean(id)).map((id) => {
3838
+ const canonical = id.trim().toLowerCase().replace(/[\s_]+/g, "-");
3839
+ const aliasMap = {
3840
+ // Common operations
3841
+ "transfer": "transfer" /* Transfer */,
3842
+ "ecency-point-transfer": "transfer" /* Transfer */,
3843
+ "spkcc-spk-send": "transfer" /* Transfer */,
3844
+ // Savings operations
3845
+ "transfer-to-savings": "transfer-saving" /* TransferToSavings */,
3846
+ "transfer-savings": "transfer-saving" /* TransferToSavings */,
3847
+ "savings-transfer": "transfer-saving" /* TransferToSavings */,
3848
+ "withdraw-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
3849
+ "transfer-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
3850
+ "withdraw-savings": "withdraw-saving" /* WithdrawFromSavings */,
3851
+ "savings-withdraw": "withdraw-saving" /* WithdrawFromSavings */,
3852
+ // Vesting/Power operations
3853
+ "transfer-to-vesting": "power-up" /* PowerUp */,
3854
+ "powerup": "power-up" /* PowerUp */,
3855
+ "power-up": "power-up" /* PowerUp */,
3856
+ "withdraw-vesting": "power-down" /* PowerDown */,
3857
+ "power-down": "power-down" /* PowerDown */,
3858
+ "powerdown": "power-down" /* PowerDown */,
3859
+ // Delegation
3860
+ "delegate": "delegate" /* Delegate */,
3861
+ "delegate-vesting-shares": "delegate" /* Delegate */,
3862
+ "hp-delegate": "delegate" /* Delegate */,
3863
+ "delegate-hp": "delegate" /* Delegate */,
3864
+ "delegate-power": "delegate" /* Delegate */,
3865
+ "undelegate": "undelegate" /* Undelegate */,
3866
+ "undelegate-power": "undelegate" /* Undelegate */,
3867
+ "undelegate-token": "undelegate" /* Undelegate */,
3868
+ // Staking (Layer 2)
3869
+ "stake": "stake" /* Stake */,
3870
+ "stake-token": "stake" /* Stake */,
3871
+ "stake-power": "stake" /* Stake */,
3872
+ "unstake": "unstake" /* Unstake */,
3873
+ "unstake-token": "unstake" /* Unstake */,
3874
+ "unstake-power": "unstake" /* Unstake */,
3875
+ // Swap/Convert
3876
+ "swap": "swap" /* Swap */,
3877
+ "swap-token": "swap" /* Swap */,
3878
+ "swap-tokens": "swap" /* Swap */,
3879
+ "convert": "swap" /* Swap */,
3880
+ // Points operations
3881
+ "promote": "promote" /* Promote */,
3882
+ "promote-post": "promote" /* Promote */,
3883
+ "promote-entry": "promote" /* Promote */,
3884
+ "boost": "promote" /* Promote */,
3885
+ "gift": "gift" /* Gift */,
3886
+ "gift-points": "gift" /* Gift */,
3887
+ "points-gift": "gift" /* Gift */,
3888
+ "claim": "claim" /* Claim */,
3889
+ "claim-rewards": "claim" /* Claim */,
3890
+ "claim-points": "claim" /* Claim */,
3891
+ "buy": "buy" /* Buy */,
3892
+ "buy-points": "buy" /* Buy */,
3893
+ // Other
3894
+ "claim-interest": "claim-interest" /* ClaimInterest */,
3895
+ "withdraw-routes": "withdraw-routes" /* WithdrawRoutes */,
3896
+ "withdrawroutes": "withdraw-routes" /* WithdrawRoutes */,
3897
+ "lock": "lock" /* LockLiquidity */,
3898
+ "lock-liquidity": "lock" /* LockLiquidity */,
3899
+ "lock-liq": "lock" /* LockLiquidity */
3900
+ };
3901
+ const mapped = aliasMap[canonical];
3902
+ if (mapped) return mapped;
3903
+ const directMatch = Object.values(AssetOperation).find(
3904
+ (op) => op.toLowerCase() === canonical
3905
+ );
3906
+ return directMatch;
3907
+ }).filter((op) => Boolean(op));
3908
+ const isHiveOrHbd = ["HIVE", "HBD"].includes(normalizedToken);
3909
+ const hasSavings = Number(assetEntry.savings ?? 0) > 0;
3910
+ if (isHiveOrHbd && !hasSavings) {
3891
3911
  return operations.filter(
3892
3912
  (operation) => operation !== "withdraw-saving" /* WithdrawFromSavings */
3893
3913
  );