@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.
@@ -1562,6 +1562,7 @@ var AssetOperation = /* @__PURE__ */ ((AssetOperation2) => {
1562
1562
  AssetOperation2["WithdrawRoutes"] = "withdraw-routes";
1563
1563
  AssetOperation2["ClaimInterest"] = "claim-interest";
1564
1564
  AssetOperation2["Swap"] = "swap";
1565
+ AssetOperation2["Convert"] = "convert";
1565
1566
  AssetOperation2["Gift"] = "gift";
1566
1567
  AssetOperation2["Promote"] = "promote";
1567
1568
  AssetOperation2["Claim"] = "claim";
@@ -2874,35 +2875,6 @@ function getAllTokensListQueryOptions(username) {
2874
2875
  }
2875
2876
  });
2876
2877
  }
2877
- var DERIVED_PART_KEY_MAP = {
2878
- liquid: ["liquid", "liquidBalance", "liquid_amount", "liquidTokens"],
2879
- savings: ["savings", "savingsBalance", "savings_amount"],
2880
- staked: ["staked", "stakedBalance", "staking", "stake", "power"],
2881
- delegated: ["delegated", "delegatedBalance", "delegationsOut"],
2882
- received: ["received", "receivedBalance", "delegationsIn"],
2883
- pending: [
2884
- "pending",
2885
- "pendingRewards",
2886
- "unclaimed",
2887
- "unclaimedBalance",
2888
- "pendingReward"
2889
- ]
2890
- };
2891
- var EXTRA_DATA_PART_KEY_MAP = {
2892
- delegated: "outgoing_delegations",
2893
- outgoing: "outgoing_delegations",
2894
- delegations_out: "outgoing_delegations",
2895
- delegated_hive_power: "outgoing_delegations",
2896
- delegated_hp: "outgoing_delegations",
2897
- received: "incoming_delegations",
2898
- incoming: "incoming_delegations",
2899
- delegations_in: "incoming_delegations",
2900
- received_hive_power: "incoming_delegations",
2901
- received_hp: "incoming_delegations",
2902
- powering_down: "pending_power_down",
2903
- power_down: "pending_power_down",
2904
- powering_down_hive_power: "pending_power_down"
2905
- };
2906
2878
  function normalizeString(value) {
2907
2879
  if (typeof value === "string") {
2908
2880
  const trimmed = value.trim();
@@ -2934,151 +2906,33 @@ function normalizeNumber(value) {
2934
2906
  }
2935
2907
  return void 0;
2936
2908
  }
2937
- function normalizeApr(value) {
2938
- const numeric = normalizeNumber(value);
2939
- if (numeric === void 0) {
2940
- if (typeof value === "string") {
2941
- const trimmed = value.trim();
2942
- return trimmed.length > 0 ? trimmed : void 0;
2943
- }
2944
- return void 0;
2945
- }
2946
- return numeric.toString();
2947
- }
2948
- function normalizeParts(rawParts) {
2949
- if (Array.isArray(rawParts)) {
2950
- const parsed = rawParts.map((item) => {
2951
- if (!item || typeof item !== "object") {
2952
- return void 0;
2953
- }
2954
- const name = normalizeString(
2955
- item.name ?? item.label ?? item.type ?? item.part
2956
- );
2957
- const balance = normalizeNumber(
2958
- item.balance ?? item.amount ?? item.value
2959
- );
2960
- if (!name || balance === void 0) {
2961
- return void 0;
2962
- }
2963
- return { name, balance };
2964
- }).filter((item) => Boolean(item));
2965
- return parsed.length ? parsed : void 0;
2966
- }
2967
- if (rawParts && typeof rawParts === "object") {
2968
- const parsed = Object.entries(rawParts).map(([name, amount]) => {
2969
- const balance = normalizeNumber(amount);
2970
- if (!name || balance === void 0) {
2971
- return void 0;
2972
- }
2973
- return { name, balance };
2974
- }).filter((item) => Boolean(item));
2975
- return parsed.length ? parsed : void 0;
2976
- }
2977
- return void 0;
2978
- }
2979
- function deriveParts(record) {
2980
- const derived = Object.entries(DERIVED_PART_KEY_MAP).map(([name, keys]) => {
2981
- for (const key of keys) {
2982
- const value = normalizeNumber(record[key]);
2983
- if (value !== void 0) {
2984
- return { name, balance: value };
2985
- }
2986
- }
2987
- return void 0;
2988
- }).filter((item) => Boolean(item));
2989
- return derived.length ? derived : void 0;
2990
- }
2991
- function normalizePartKey(value) {
2992
- return value.trim().toLowerCase().replace(/[\s-]+/g, "_");
2993
- }
2994
- function mergeParts(...sources) {
2995
- const order = [];
2996
- const values2 = /* @__PURE__ */ new Map();
2997
- for (const parts of sources) {
2998
- if (!parts) {
2999
- continue;
3000
- }
3001
- for (const part of parts) {
3002
- if (!part?.name || typeof part.balance !== "number") {
3003
- continue;
3004
- }
3005
- const existing = values2.get(part.name);
3006
- if (existing === void 0) {
3007
- order.push(part.name);
3008
- values2.set(part.name, part.balance);
3009
- } else {
3010
- values2.set(part.name, existing + part.balance);
3011
- }
3012
- }
3013
- }
3014
- return order.length ? order.map((name) => ({ name, balance: values2.get(name) })) : void 0;
3015
- }
3016
- function normalizeExtraDataParts(rawExtraData) {
3017
- const items = Array.isArray(rawExtraData) ? rawExtraData : rawExtraData && typeof rawExtraData === "object" ? Object.values(rawExtraData) : [];
3018
- const parts = items.map((item) => {
3019
- if (!item || typeof item !== "object") {
3020
- return void 0;
3021
- }
3022
- const record = item;
3023
- const keyCandidate = normalizeString(record.dataKey) ?? normalizeString(record.key) ?? normalizeString(record.name);
3024
- if (!keyCandidate) {
3025
- return void 0;
3026
- }
3027
- const canonical = normalizePartKey(keyCandidate);
3028
- const partName = EXTRA_DATA_PART_KEY_MAP[canonical];
3029
- if (!partName) {
3030
- return void 0;
3031
- }
3032
- const balance = normalizeNumber(
3033
- record.balance ?? record.amount ?? record.value ?? record.displayValue ?? record.text
3034
- );
3035
- if (balance === void 0) {
3036
- return void 0;
3037
- }
3038
- return { name: partName, balance: Math.abs(balance) };
3039
- }).filter((part) => Boolean(part));
3040
- return parts.length ? parts : void 0;
3041
- }
3042
2909
  function parseToken(rawToken) {
3043
2910
  if (!rawToken || typeof rawToken !== "object") {
3044
2911
  return void 0;
3045
2912
  }
3046
2913
  const token = rawToken;
3047
- const symbol = normalizeString(token.symbol) ?? normalizeString(token.asset) ?? normalizeString(token.name);
3048
- if (!symbol) {
3049
- return void 0;
3050
- }
3051
- const normalizedSymbol = symbol.toUpperCase();
3052
- const title = normalizeString(token.title) ?? normalizeString(token.display) ?? normalizeString(token.label) ?? normalizeString(token.friendlyName) ?? normalizeString(token.name) ?? normalizedSymbol;
3053
- const price = normalizeNumber(token.fiatRate) ?? 0;
3054
- const apr = normalizeApr(token.apr) ?? normalizeApr(token.aprPercent) ?? normalizeApr(token.metrics?.apr) ?? normalizeApr(
3055
- token.metrics?.aprPercent
3056
- );
3057
- const baseParts = normalizeParts(
3058
- token.parts ?? token.balances ?? token.sections ?? token.breakdown ?? token.accountBreakdown ?? token.walletParts
3059
- ) ?? deriveParts(token);
3060
- const parts = mergeParts(
3061
- baseParts,
3062
- normalizeExtraDataParts(
3063
- token.extraData ?? token.extra_data ?? token.extra ?? token.badges
3064
- )
3065
- );
3066
- 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);
3067
- const layer = normalizeString(token.layer) ?? normalizeString(token.chain) ?? normalizeString(token.category) ?? normalizeString(token.type);
3068
- const pendingRewards = normalizeNumber(token.pendingRewards);
3069
2914
  return {
3070
- symbol: normalizedSymbol,
3071
- name: normalizedSymbol,
3072
- title,
3073
- price,
3074
- accountBalance,
3075
- apr: apr ? Number.parseFloat(apr) : void 0,
3076
- layer: layer ?? void 0,
3077
- pendingRewards: pendingRewards ?? void 0,
3078
- parts,
3079
- actions: token.actions ?? token.available_actions ?? token.availableActions ?? token.operations ?? token.supportedActions,
3080
- fiatRate: normalizeNumber(token.fiatRate) ?? void 0,
3081
- fiatCurrency: normalizeString(token.fiatCurrency) ?? void 0
2915
+ name: normalizeString(token.name) ?? "",
2916
+ symbol: normalizeString(token.symbol) ?? "",
2917
+ layer: normalizeString(token.layer) ?? "hive",
2918
+ balance: normalizeNumber(token.balance) ?? 0,
2919
+ fiatRate: normalizeNumber(token.fiatRate) ?? 0,
2920
+ currency: normalizeString(token.currency) ?? "usd",
2921
+ precision: normalizeNumber(token.precision) ?? 3,
2922
+ address: normalizeString(token.address),
2923
+ error: normalizeString(token.error),
2924
+ pendingRewards: normalizeNumber(token.pendingRewards),
2925
+ pendingRewardsFiat: normalizeNumber(token.pendingRewardsFiat),
2926
+ liquid: normalizeNumber(token.liquid),
2927
+ liquidFiat: normalizeNumber(token.liquidFiat),
2928
+ savings: normalizeNumber(token.savings),
2929
+ savingsFiat: normalizeNumber(token.savingsFiat),
2930
+ staked: normalizeNumber(token.staked),
2931
+ stakedFiat: normalizeNumber(token.stakedFiat),
2932
+ iconUrl: normalizeString(token.iconUrl),
2933
+ actions: token.actions ?? [],
2934
+ extraData: token.extraData ?? [],
2935
+ apr: normalizeNumber(token.apr)
3082
2936
  };
3083
2937
  }
3084
2938
  function extractTokens(payload) {
@@ -3142,7 +2996,7 @@ function getVisionPortfolioQueryOptions(username, currency = "usd") {
3142
2996
  if (!username) {
3143
2997
  throw new Error("[SDK][Wallets] \u2013 username is required");
3144
2998
  }
3145
- if (!CONFIG.privateApiHost) {
2999
+ if (CONFIG.privateApiHost === void 0 || CONFIG.privateApiHost === null) {
3146
3000
  throw new Error(
3147
3001
  "[SDK][Wallets] \u2013 privateApiHost isn't configured for portfolio"
3148
3002
  );
@@ -3235,7 +3089,7 @@ function getAccountWalletListQueryOptions(username, currency = "usd") {
3235
3089
  try {
3236
3090
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3237
3091
  const tokensFromPortfolio = portfolio.wallets.map(
3238
- (asset) => asset.name
3092
+ (asset) => asset.symbol
3239
3093
  );
3240
3094
  if (tokensFromPortfolio.length > 0) {
3241
3095
  const visibleTokens = tokensFromPortfolio.map((token) => token?.toUpperCase?.()).filter((token) => Boolean(token)).filter(isTokenVisible);
@@ -3709,18 +3563,17 @@ function getAccountWalletAssetInfoQueryOptions(username, asset, options2 = { ref
3709
3563
  try {
3710
3564
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3711
3565
  const assetInfo = portfolio.wallets.find(
3712
- (assetItem) => assetItem.name === asset.toUpperCase()
3566
+ (assetItem) => assetItem.symbol.toUpperCase() === asset.toUpperCase()
3713
3567
  );
3714
3568
  if (!assetInfo) return void 0;
3715
3569
  return {
3716
- name: assetInfo.name,
3717
- title: assetInfo.title,
3718
- price: assetInfo.price ?? assetInfo.fiatRate ?? 0,
3719
- accountBalance: assetInfo.accountBalance ?? 0,
3720
- apr: assetInfo.apr,
3570
+ name: assetInfo.symbol,
3571
+ title: assetInfo.name,
3572
+ price: assetInfo.fiatRate,
3573
+ accountBalance: assetInfo.balance,
3574
+ apr: assetInfo.apr?.toString(),
3721
3575
  layer: assetInfo.layer,
3722
- pendingRewards: assetInfo.pendingRewards,
3723
- parts: assetInfo.parts
3576
+ pendingRewards: assetInfo.pendingRewards
3724
3577
  };
3725
3578
  } catch (e) {
3726
3579
  return void 0;
@@ -3794,7 +3647,7 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3794
3647
  getVisionPortfolioQueryOptions(username, currency)
3795
3648
  );
3796
3649
  const assetEntry = portfolio.wallets.find(
3797
- (assetItem) => assetItem.symbol?.toUpperCase() === normalizedToken
3650
+ (assetItem) => assetItem.symbol.toUpperCase() === normalizedToken
3798
3651
  );
3799
3652
  if (!assetEntry) {
3800
3653
  return [];
@@ -3849,7 +3702,7 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3849
3702
  "swap": "swap" /* Swap */,
3850
3703
  "swap-token": "swap" /* Swap */,
3851
3704
  "swap-tokens": "swap" /* Swap */,
3852
- "convert": "swap" /* Swap */,
3705
+ "convert": "convert" /* Convert */,
3853
3706
  // Points operations
3854
3707
  "promote": "promote" /* Promote */,
3855
3708
  "promote-post": "promote" /* Promote */,
@@ -3877,9 +3730,10 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3877
3730
  (op) => op.toLowerCase() === canonical
3878
3731
  );
3879
3732
  return directMatch;
3880
- }).filter((op) => Boolean(op));
3733
+ }).filter((op) => Boolean(op)).filter((op, index, self) => self.indexOf(op) === index);
3881
3734
  const isHiveOrHbd = ["HIVE", "HBD"].includes(normalizedToken);
3882
- const hasSavings = Number(assetEntry.savings ?? 0) > 0;
3735
+ const rawToken = assetEntry;
3736
+ const hasSavings = Number(rawToken.savings ?? 0) > 0;
3883
3737
  if (isHiveOrHbd && !hasSavings) {
3884
3738
  return operations.filter(
3885
3739
  (operation) => operation !== "withdraw-saving" /* WithdrawFromSavings */