@ecency/wallets 1.5.10 → 1.5.12

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.
@@ -1589,6 +1589,7 @@ var AssetOperation = /* @__PURE__ */ ((AssetOperation2) => {
1589
1589
  AssetOperation2["WithdrawRoutes"] = "withdraw-routes";
1590
1590
  AssetOperation2["ClaimInterest"] = "claim-interest";
1591
1591
  AssetOperation2["Swap"] = "swap";
1592
+ AssetOperation2["Convert"] = "convert";
1592
1593
  AssetOperation2["Gift"] = "gift";
1593
1594
  AssetOperation2["Promote"] = "promote";
1594
1595
  AssetOperation2["Claim"] = "claim";
@@ -2901,35 +2902,6 @@ function getAllTokensListQueryOptions(username) {
2901
2902
  }
2902
2903
  });
2903
2904
  }
2904
- var DERIVED_PART_KEY_MAP = {
2905
- liquid: ["liquid", "liquidBalance", "liquid_amount", "liquidTokens"],
2906
- savings: ["savings", "savingsBalance", "savings_amount"],
2907
- staked: ["staked", "stakedBalance", "staking", "stake", "power"],
2908
- delegated: ["delegated", "delegatedBalance", "delegationsOut"],
2909
- received: ["received", "receivedBalance", "delegationsIn"],
2910
- pending: [
2911
- "pending",
2912
- "pendingRewards",
2913
- "unclaimed",
2914
- "unclaimedBalance",
2915
- "pendingReward"
2916
- ]
2917
- };
2918
- var EXTRA_DATA_PART_KEY_MAP = {
2919
- delegated: "outgoing_delegations",
2920
- outgoing: "outgoing_delegations",
2921
- delegations_out: "outgoing_delegations",
2922
- delegated_hive_power: "outgoing_delegations",
2923
- delegated_hp: "outgoing_delegations",
2924
- received: "incoming_delegations",
2925
- incoming: "incoming_delegations",
2926
- delegations_in: "incoming_delegations",
2927
- received_hive_power: "incoming_delegations",
2928
- received_hp: "incoming_delegations",
2929
- powering_down: "pending_power_down",
2930
- power_down: "pending_power_down",
2931
- powering_down_hive_power: "pending_power_down"
2932
- };
2933
2905
  function normalizeString(value) {
2934
2906
  if (typeof value === "string") {
2935
2907
  const trimmed = value.trim();
@@ -2961,151 +2933,33 @@ function normalizeNumber(value) {
2961
2933
  }
2962
2934
  return void 0;
2963
2935
  }
2964
- function normalizeApr(value) {
2965
- const numeric = normalizeNumber(value);
2966
- if (numeric === void 0) {
2967
- if (typeof value === "string") {
2968
- const trimmed = value.trim();
2969
- return trimmed.length > 0 ? trimmed : void 0;
2970
- }
2971
- return void 0;
2972
- }
2973
- return numeric.toString();
2974
- }
2975
- function normalizeParts(rawParts) {
2976
- if (Array.isArray(rawParts)) {
2977
- const parsed = rawParts.map((item) => {
2978
- if (!item || typeof item !== "object") {
2979
- return void 0;
2980
- }
2981
- const name = normalizeString(
2982
- item.name ?? item.label ?? item.type ?? item.part
2983
- );
2984
- const balance = normalizeNumber(
2985
- item.balance ?? item.amount ?? item.value
2986
- );
2987
- if (!name || balance === void 0) {
2988
- return void 0;
2989
- }
2990
- return { name, balance };
2991
- }).filter((item) => Boolean(item));
2992
- return parsed.length ? parsed : void 0;
2993
- }
2994
- if (rawParts && typeof rawParts === "object") {
2995
- const parsed = Object.entries(rawParts).map(([name, amount]) => {
2996
- const balance = normalizeNumber(amount);
2997
- if (!name || balance === void 0) {
2998
- return void 0;
2999
- }
3000
- return { name, balance };
3001
- }).filter((item) => Boolean(item));
3002
- return parsed.length ? parsed : void 0;
3003
- }
3004
- return void 0;
3005
- }
3006
- function deriveParts(record) {
3007
- const derived = Object.entries(DERIVED_PART_KEY_MAP).map(([name, keys]) => {
3008
- for (const key of keys) {
3009
- const value = normalizeNumber(record[key]);
3010
- if (value !== void 0) {
3011
- return { name, balance: value };
3012
- }
3013
- }
3014
- return void 0;
3015
- }).filter((item) => Boolean(item));
3016
- return derived.length ? derived : void 0;
3017
- }
3018
- function normalizePartKey(value) {
3019
- return value.trim().toLowerCase().replace(/[\s-]+/g, "_");
3020
- }
3021
- function mergeParts(...sources) {
3022
- const order = [];
3023
- const values2 = /* @__PURE__ */ new Map();
3024
- for (const parts of sources) {
3025
- if (!parts) {
3026
- continue;
3027
- }
3028
- for (const part of parts) {
3029
- if (!part?.name || typeof part.balance !== "number") {
3030
- continue;
3031
- }
3032
- const existing = values2.get(part.name);
3033
- if (existing === void 0) {
3034
- order.push(part.name);
3035
- values2.set(part.name, part.balance);
3036
- } else {
3037
- values2.set(part.name, existing + part.balance);
3038
- }
3039
- }
3040
- }
3041
- return order.length ? order.map((name) => ({ name, balance: values2.get(name) })) : void 0;
3042
- }
3043
- function normalizeExtraDataParts(rawExtraData) {
3044
- const items = Array.isArray(rawExtraData) ? rawExtraData : rawExtraData && typeof rawExtraData === "object" ? Object.values(rawExtraData) : [];
3045
- const parts = items.map((item) => {
3046
- if (!item || typeof item !== "object") {
3047
- return void 0;
3048
- }
3049
- const record = item;
3050
- const keyCandidate = normalizeString(record.dataKey) ?? normalizeString(record.key) ?? normalizeString(record.name);
3051
- if (!keyCandidate) {
3052
- return void 0;
3053
- }
3054
- const canonical = normalizePartKey(keyCandidate);
3055
- const partName = EXTRA_DATA_PART_KEY_MAP[canonical];
3056
- if (!partName) {
3057
- return void 0;
3058
- }
3059
- const balance = normalizeNumber(
3060
- record.balance ?? record.amount ?? record.value ?? record.displayValue ?? record.text
3061
- );
3062
- if (balance === void 0) {
3063
- return void 0;
3064
- }
3065
- return { name: partName, balance: Math.abs(balance) };
3066
- }).filter((part) => Boolean(part));
3067
- return parts.length ? parts : void 0;
3068
- }
3069
2936
  function parseToken(rawToken) {
3070
2937
  if (!rawToken || typeof rawToken !== "object") {
3071
2938
  return void 0;
3072
2939
  }
3073
2940
  const token = rawToken;
3074
- const symbol = normalizeString(token.symbol) ?? normalizeString(token.asset) ?? normalizeString(token.name);
3075
- if (!symbol) {
3076
- return void 0;
3077
- }
3078
- const normalizedSymbol = symbol.toUpperCase();
3079
- const title = normalizeString(token.title) ?? normalizeString(token.display) ?? normalizeString(token.label) ?? normalizeString(token.friendlyName) ?? normalizeString(token.name) ?? normalizedSymbol;
3080
- const price = normalizeNumber(token.fiatRate) ?? 0;
3081
- const apr = normalizeApr(token.apr) ?? normalizeApr(token.aprPercent) ?? normalizeApr(token.metrics?.apr) ?? normalizeApr(
3082
- token.metrics?.aprPercent
3083
- );
3084
- const baseParts = normalizeParts(
3085
- token.parts ?? token.balances ?? token.sections ?? token.breakdown ?? token.accountBreakdown ?? token.walletParts
3086
- ) ?? deriveParts(token);
3087
- const parts = mergeParts(
3088
- baseParts,
3089
- normalizeExtraDataParts(
3090
- token.extraData ?? token.extra_data ?? token.extra ?? token.badges
3091
- )
3092
- );
3093
- const accountBalance = normalizeNumber(token.balance) ?? normalizeNumber(token.accountBalance) ?? normalizeNumber(token.totalBalance) ?? normalizeNumber(token.total) ?? normalizeNumber(token.amount) ?? (baseParts ? baseParts.reduce((total, part) => total + (part.balance ?? 0), 0) : parts ? parts.reduce((total, part) => total + (part.balance ?? 0), 0) : 0);
3094
- const layer = normalizeString(token.layer) ?? normalizeString(token.chain) ?? normalizeString(token.category) ?? normalizeString(token.type);
3095
- const pendingRewards = normalizeNumber(token.pendingRewards);
3096
2941
  return {
3097
- symbol: normalizedSymbol,
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
2942
+ name: normalizeString(token.name) ?? "",
2943
+ symbol: normalizeString(token.symbol) ?? "",
2944
+ layer: normalizeString(token.layer) ?? "hive",
2945
+ balance: normalizeNumber(token.balance) ?? 0,
2946
+ fiatRate: normalizeNumber(token.fiatRate) ?? 0,
2947
+ currency: normalizeString(token.currency) ?? "usd",
2948
+ precision: normalizeNumber(token.precision) ?? 3,
2949
+ address: normalizeString(token.address),
2950
+ error: normalizeString(token.error),
2951
+ pendingRewards: normalizeNumber(token.pendingRewards),
2952
+ pendingRewardsFiat: normalizeNumber(token.pendingRewardsFiat),
2953
+ liquid: normalizeNumber(token.liquid),
2954
+ liquidFiat: normalizeNumber(token.liquidFiat),
2955
+ savings: normalizeNumber(token.savings),
2956
+ savingsFiat: normalizeNumber(token.savingsFiat),
2957
+ staked: normalizeNumber(token.staked),
2958
+ stakedFiat: normalizeNumber(token.stakedFiat),
2959
+ iconUrl: normalizeString(token.iconUrl),
2960
+ actions: token.actions ?? [],
2961
+ extraData: token.extraData ?? [],
2962
+ apr: normalizeNumber(token.apr)
3109
2963
  };
3110
2964
  }
3111
2965
  function extractTokens(payload) {
@@ -3169,7 +3023,7 @@ function getVisionPortfolioQueryOptions(username, currency = "usd") {
3169
3023
  if (!username) {
3170
3024
  throw new Error("[SDK][Wallets] \u2013 username is required");
3171
3025
  }
3172
- if (!sdk.CONFIG.privateApiHost) {
3026
+ if (sdk.CONFIG.privateApiHost === void 0 || sdk.CONFIG.privateApiHost === null) {
3173
3027
  throw new Error(
3174
3028
  "[SDK][Wallets] \u2013 privateApiHost isn't configured for portfolio"
3175
3029
  );
@@ -3262,7 +3116,7 @@ function getAccountWalletListQueryOptions(username, currency = "usd") {
3262
3116
  try {
3263
3117
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3264
3118
  const tokensFromPortfolio = portfolio.wallets.map(
3265
- (asset) => asset.name
3119
+ (asset) => asset.symbol
3266
3120
  );
3267
3121
  if (tokensFromPortfolio.length > 0) {
3268
3122
  const visibleTokens = tokensFromPortfolio.map((token) => token?.toUpperCase?.()).filter((token) => Boolean(token)).filter(isTokenVisible);
@@ -3736,18 +3590,17 @@ function getAccountWalletAssetInfoQueryOptions(username, asset, options2 = { ref
3736
3590
  try {
3737
3591
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3738
3592
  const assetInfo = portfolio.wallets.find(
3739
- (assetItem) => assetItem.name === asset.toUpperCase()
3593
+ (assetItem) => assetItem.symbol.toUpperCase() === asset.toUpperCase()
3740
3594
  );
3741
3595
  if (!assetInfo) return void 0;
3742
3596
  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,
3597
+ name: assetInfo.symbol,
3598
+ title: assetInfo.name,
3599
+ price: assetInfo.fiatRate,
3600
+ accountBalance: assetInfo.balance,
3601
+ apr: assetInfo.apr?.toString(),
3748
3602
  layer: assetInfo.layer,
3749
- pendingRewards: assetInfo.pendingRewards,
3750
- parts: assetInfo.parts
3603
+ pendingRewards: assetInfo.pendingRewards
3751
3604
  };
3752
3605
  } catch (e) {
3753
3606
  return void 0;
@@ -3821,7 +3674,7 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3821
3674
  getVisionPortfolioQueryOptions(username, currency)
3822
3675
  );
3823
3676
  const assetEntry = portfolio.wallets.find(
3824
- (assetItem) => assetItem.symbol?.toUpperCase() === normalizedToken
3677
+ (assetItem) => assetItem.symbol.toUpperCase() === normalizedToken
3825
3678
  );
3826
3679
  if (!assetEntry) {
3827
3680
  return [];
@@ -3876,7 +3729,7 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3876
3729
  "swap": "swap" /* Swap */,
3877
3730
  "swap-token": "swap" /* Swap */,
3878
3731
  "swap-tokens": "swap" /* Swap */,
3879
- "convert": "swap" /* Swap */,
3732
+ "convert": "convert" /* Convert */,
3880
3733
  // Points operations
3881
3734
  "promote": "promote" /* Promote */,
3882
3735
  "promote-post": "promote" /* Promote */,
@@ -3904,9 +3757,10 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3904
3757
  (op) => op.toLowerCase() === canonical
3905
3758
  );
3906
3759
  return directMatch;
3907
- }).filter((op) => Boolean(op));
3760
+ }).filter((op) => Boolean(op)).filter((op, index, self) => self.indexOf(op) === index);
3908
3761
  const isHiveOrHbd = ["HIVE", "HBD"].includes(normalizedToken);
3909
- const hasSavings = Number(assetEntry.savings ?? 0) > 0;
3762
+ const rawToken = assetEntry;
3763
+ const hasSavings = Number(rawToken.savings ?? 0) > 0;
3910
3764
  if (isHiveOrHbd && !hasSavings) {
3911
3765
  return operations.filter(
3912
3766
  (operation) => operation !== "withdraw-saving" /* WithdrawFromSavings */