@ecency/wallets 1.5.9 → 1.5.11

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,80 +2875,6 @@ function getAllTokensListQueryOptions(username) {
2874
2875
  }
2875
2876
  });
2876
2877
  }
2877
- var ACTION_ALIAS_MAP = {
2878
- "transfer-to-savings": "transfer-saving" /* TransferToSavings */,
2879
- "transfer-savings": "transfer-saving" /* TransferToSavings */,
2880
- "savings-transfer": "transfer-saving" /* TransferToSavings */,
2881
- "withdraw-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
2882
- "withdraw-savings": "withdraw-saving" /* WithdrawFromSavings */,
2883
- "savings-withdraw": "withdraw-saving" /* WithdrawFromSavings */,
2884
- "transfer-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
2885
- "powerup": "power-up" /* PowerUp */,
2886
- "power-down": "power-down" /* PowerDown */,
2887
- "powerdown": "power-down" /* PowerDown */,
2888
- "withdraw-vesting": "power-down" /* PowerDown */,
2889
- "hp-delegate": "delegate" /* Delegate */,
2890
- "delegate-hp": "delegate" /* Delegate */,
2891
- "delegate-power": "delegate" /* Delegate */,
2892
- "delegate-vesting-shares": "delegate" /* Delegate */,
2893
- "undelegate-power": "undelegate" /* Undelegate */,
2894
- "undelegate-token": "undelegate" /* Undelegate */,
2895
- "stake-token": "stake" /* Stake */,
2896
- "stake-power": "stake" /* Stake */,
2897
- "unstake-token": "unstake" /* Unstake */,
2898
- "unstake-power": "unstake" /* Unstake */,
2899
- "transfer-to-vesting": "power-up" /* PowerUp */,
2900
- "lock-liquidity": "lock" /* LockLiquidity */,
2901
- "lock-liq": "lock" /* LockLiquidity */,
2902
- "gift-points": "gift" /* Gift */,
2903
- "points-gift": "gift" /* Gift */,
2904
- "promote-post": "promote" /* Promote */,
2905
- "promote-entry": "promote" /* Promote */,
2906
- boost: "promote" /* Promote */,
2907
- convert: "swap" /* Swap */,
2908
- "swap-token": "swap" /* Swap */,
2909
- "swap_tokens": "swap" /* Swap */,
2910
- "claim-points": "claim" /* Claim */,
2911
- "claim-rewards": "claim" /* Claim */,
2912
- "buy-points": "buy" /* Buy */,
2913
- "ecency-point-transfer": "transfer" /* Transfer */,
2914
- "spkcc-spk-send": "transfer" /* Transfer */,
2915
- "withdraw-routes": "withdraw-routes" /* WithdrawRoutes */,
2916
- "withdrawroutes": "withdraw-routes" /* WithdrawRoutes */,
2917
- "claim-interest": "claim-interest" /* ClaimInterest */
2918
- };
2919
- var KNOWN_OPERATION_VALUES = new Map(
2920
- Object.values(AssetOperation).map((value) => [value, value])
2921
- );
2922
- var DERIVED_PART_KEY_MAP = {
2923
- liquid: ["liquid", "liquidBalance", "liquid_amount", "liquidTokens"],
2924
- savings: ["savings", "savingsBalance", "savings_amount"],
2925
- staked: ["staked", "stakedBalance", "staking", "stake", "power"],
2926
- delegated: ["delegated", "delegatedBalance", "delegationsOut"],
2927
- received: ["received", "receivedBalance", "delegationsIn"],
2928
- pending: [
2929
- "pending",
2930
- "pendingRewards",
2931
- "unclaimed",
2932
- "unclaimedBalance",
2933
- "pendingReward"
2934
- ]
2935
- };
2936
- var EXTRA_DATA_PART_KEY_MAP = {
2937
- delegated: "outgoing_delegations",
2938
- outgoing: "outgoing_delegations",
2939
- delegations_out: "outgoing_delegations",
2940
- delegated_hive_power: "outgoing_delegations",
2941
- delegated_hp: "outgoing_delegations",
2942
- received: "incoming_delegations",
2943
- incoming: "incoming_delegations",
2944
- delegations_in: "incoming_delegations",
2945
- received_hive_power: "incoming_delegations",
2946
- received_hp: "incoming_delegations",
2947
- powering_down: "pending_power_down",
2948
- power_down: "pending_power_down",
2949
- powering_down_hive_power: "pending_power_down"
2950
- };
2951
2878
  function normalizeString(value) {
2952
2879
  if (typeof value === "string") {
2953
2880
  const trimmed = value.trim();
@@ -2990,128 +2917,6 @@ function normalizeApr(value) {
2990
2917
  }
2991
2918
  return numeric.toString();
2992
2919
  }
2993
- function normalizeParts(rawParts) {
2994
- if (Array.isArray(rawParts)) {
2995
- const parsed = rawParts.map((item) => {
2996
- if (!item || typeof item !== "object") {
2997
- return void 0;
2998
- }
2999
- const name = normalizeString(
3000
- item.name ?? item.label ?? item.type ?? item.part
3001
- );
3002
- const balance = normalizeNumber(
3003
- item.balance ?? item.amount ?? item.value
3004
- );
3005
- if (!name || balance === void 0) {
3006
- return void 0;
3007
- }
3008
- return { name, balance };
3009
- }).filter((item) => Boolean(item));
3010
- return parsed.length ? parsed : void 0;
3011
- }
3012
- if (rawParts && typeof rawParts === "object") {
3013
- const parsed = Object.entries(rawParts).map(([name, amount]) => {
3014
- const balance = normalizeNumber(amount);
3015
- if (!name || balance === void 0) {
3016
- return void 0;
3017
- }
3018
- return { name, balance };
3019
- }).filter((item) => Boolean(item));
3020
- return parsed.length ? parsed : void 0;
3021
- }
3022
- return void 0;
3023
- }
3024
- function deriveParts(record) {
3025
- const derived = Object.entries(DERIVED_PART_KEY_MAP).map(([name, keys]) => {
3026
- for (const key of keys) {
3027
- const value = normalizeNumber(record[key]);
3028
- if (value !== void 0) {
3029
- return { name, balance: value };
3030
- }
3031
- }
3032
- return void 0;
3033
- }).filter((item) => Boolean(item));
3034
- return derived.length ? derived : void 0;
3035
- }
3036
- function normalizePartKey(value) {
3037
- return value.trim().toLowerCase().replace(/[\s-]+/g, "_");
3038
- }
3039
- function mergeParts(...sources) {
3040
- const order = [];
3041
- const values2 = /* @__PURE__ */ new Map();
3042
- for (const parts of sources) {
3043
- if (!parts) {
3044
- continue;
3045
- }
3046
- for (const part of parts) {
3047
- if (!part?.name || typeof part.balance !== "number") {
3048
- continue;
3049
- }
3050
- const existing = values2.get(part.name);
3051
- if (existing === void 0) {
3052
- order.push(part.name);
3053
- values2.set(part.name, part.balance);
3054
- } else {
3055
- values2.set(part.name, existing + part.balance);
3056
- }
3057
- }
3058
- }
3059
- return order.length ? order.map((name) => ({ name, balance: values2.get(name) })) : void 0;
3060
- }
3061
- function normalizeExtraDataParts(rawExtraData) {
3062
- const items = Array.isArray(rawExtraData) ? rawExtraData : rawExtraData && typeof rawExtraData === "object" ? Object.values(rawExtraData) : [];
3063
- const parts = items.map((item) => {
3064
- if (!item || typeof item !== "object") {
3065
- return void 0;
3066
- }
3067
- const record = item;
3068
- const keyCandidate = normalizeString(record.dataKey) ?? normalizeString(record.key) ?? normalizeString(record.name);
3069
- if (!keyCandidate) {
3070
- return void 0;
3071
- }
3072
- const canonical = normalizePartKey(keyCandidate);
3073
- const partName = EXTRA_DATA_PART_KEY_MAP[canonical];
3074
- if (!partName) {
3075
- return void 0;
3076
- }
3077
- const balance = normalizeNumber(
3078
- record.balance ?? record.amount ?? record.value ?? record.displayValue ?? record.text
3079
- );
3080
- if (balance === void 0) {
3081
- return void 0;
3082
- }
3083
- return { name: partName, balance: Math.abs(balance) };
3084
- }).filter((part) => Boolean(part));
3085
- return parts.length ? parts : void 0;
3086
- }
3087
- function normalizeActionKey(value) {
3088
- return value.trim().toLowerCase().replace(/[\s_]+/g, "-");
3089
- }
3090
- function mapActions(rawActions) {
3091
- if (!rawActions) {
3092
- return [];
3093
- }
3094
- const rawList = Array.isArray(rawActions) ? rawActions : [rawActions];
3095
- const result = [];
3096
- for (const raw of rawList) {
3097
- let candidate;
3098
- if (typeof raw === "string") {
3099
- candidate = raw;
3100
- } else if (raw && typeof raw === "object") {
3101
- const record = raw;
3102
- candidate = normalizeString(record.code) ?? normalizeString(record.id) ?? normalizeString(record.name) ?? normalizeString(record.action);
3103
- }
3104
- if (!candidate) {
3105
- continue;
3106
- }
3107
- const canonical = normalizeActionKey(candidate);
3108
- const operation = KNOWN_OPERATION_VALUES.get(canonical) ?? ACTION_ALIAS_MAP[canonical];
3109
- if (operation && !result.includes(operation)) {
3110
- result.push(operation);
3111
- }
3112
- }
3113
- return result;
3114
- }
3115
2920
  function parseToken(rawToken) {
3116
2921
  if (!rawToken || typeof rawToken !== "object") {
3117
2922
  return void 0;
@@ -3127,33 +2932,23 @@ function parseToken(rawToken) {
3127
2932
  const apr = normalizeApr(token.apr) ?? normalizeApr(token.aprPercent) ?? normalizeApr(token.metrics?.apr) ?? normalizeApr(
3128
2933
  token.metrics?.aprPercent
3129
2934
  );
3130
- const baseParts = normalizeParts(
3131
- token.parts ?? token.balances ?? token.sections ?? token.breakdown ?? token.accountBreakdown ?? token.walletParts
3132
- ) ?? deriveParts(token);
3133
- const parts = mergeParts(
3134
- baseParts,
3135
- normalizeExtraDataParts(
3136
- token.extraData ?? token.extra_data ?? token.extra ?? token.badges
3137
- )
3138
- );
3139
- 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);
2935
+ const accountBalance = normalizeNumber(token.balance) ?? normalizeNumber(token.accountBalance) ?? normalizeNumber(token.totalBalance) ?? normalizeNumber(token.total) ?? normalizeNumber(token.amount) ?? 0;
3140
2936
  const layer = normalizeString(token.layer) ?? normalizeString(token.chain) ?? normalizeString(token.category) ?? normalizeString(token.type);
3141
2937
  const pendingRewards = normalizeNumber(token.pendingRewards);
2938
+ const savings = normalizeNumber(token.savings);
3142
2939
  return {
3143
2940
  symbol: normalizedSymbol,
3144
- info: {
3145
- name: normalizedSymbol,
3146
- title,
3147
- price,
3148
- accountBalance,
3149
- apr: apr ?? void 0,
3150
- layer: layer ?? void 0,
3151
- pendingRewards: pendingRewards ?? void 0,
3152
- parts
3153
- },
3154
- operations: mapActions(
3155
- token.actions ?? token.available_actions ?? token.availableActions ?? token.operations ?? token.supportedActions
3156
- )
2941
+ name: normalizedSymbol,
2942
+ title,
2943
+ price,
2944
+ accountBalance,
2945
+ apr: apr ? Number.parseFloat(apr) : void 0,
2946
+ layer: layer ?? void 0,
2947
+ pendingRewards: pendingRewards ?? void 0,
2948
+ savings: savings ?? void 0,
2949
+ actions: token.actions ?? token.available_actions ?? token.availableActions ?? token.operations ?? token.supportedActions,
2950
+ fiatRate: normalizeNumber(token.fiatRate) ?? void 0,
2951
+ fiatCurrency: normalizeString(token.fiatCurrency) ?? void 0
3157
2952
  };
3158
2953
  }
3159
2954
  function extractTokens(payload) {
@@ -3310,7 +3105,7 @@ function getAccountWalletListQueryOptions(username, currency = "usd") {
3310
3105
  try {
3311
3106
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3312
3107
  const tokensFromPortfolio = portfolio.wallets.map(
3313
- (asset) => asset.info.name
3108
+ (asset) => asset.name
3314
3109
  );
3315
3110
  if (tokensFromPortfolio.length > 0) {
3316
3111
  const visibleTokens = tokensFromPortfolio.map((token) => token?.toUpperCase?.()).filter((token) => Boolean(token)).filter(isTokenVisible);
@@ -3784,9 +3579,18 @@ function getAccountWalletAssetInfoQueryOptions(username, asset, options2 = { ref
3784
3579
  try {
3785
3580
  const portfolio = await queryClient.fetchQuery(portfolioQuery);
3786
3581
  const assetInfo = portfolio.wallets.find(
3787
- (assetItem) => assetItem.info.name === asset.toUpperCase()
3582
+ (assetItem) => assetItem.name === asset.toUpperCase()
3788
3583
  );
3789
- return assetInfo?.info;
3584
+ if (!assetInfo) return void 0;
3585
+ return {
3586
+ name: assetInfo.name,
3587
+ title: assetInfo.title ?? assetInfo.name,
3588
+ price: assetInfo.price ?? assetInfo.fiatRate ?? 0,
3589
+ accountBalance: assetInfo.accountBalance ?? 0,
3590
+ apr: assetInfo.apr?.toString(),
3591
+ layer: assetInfo.layer,
3592
+ pendingRewards: assetInfo.pendingRewards
3593
+ };
3790
3594
  } catch (e) {
3791
3595
  return void 0;
3792
3596
  }
@@ -3845,16 +3649,6 @@ function getAccountWalletAssetInfoQueryOptions(username, asset, options2 = { ref
3845
3649
  }
3846
3650
  });
3847
3651
  }
3848
- function normalizePartKey2(value) {
3849
- return value.trim().toLowerCase().replace(/[\s-]+/g, "_");
3850
- }
3851
- function hasNonZeroSavingsBalance(parts) {
3852
- return Boolean(
3853
- parts?.some(
3854
- (part) => normalizePartKey2(part.name) === "savings" && Number(part.balance) > 0
3855
- )
3856
- );
3857
- }
3858
3652
  function getTokenOperationsQueryOptions(token, username, isForOwner = false, currency = "usd") {
3859
3653
  return queryOptions({
3860
3654
  queryKey: ["wallets", "token-operations", token, username, isForOwner, currency],
@@ -3869,16 +3663,94 @@ function getTokenOperationsQueryOptions(token, username, isForOwner = false, cur
3869
3663
  getVisionPortfolioQueryOptions(username, currency)
3870
3664
  );
3871
3665
  const assetEntry = portfolio.wallets.find(
3872
- (assetItem) => assetItem.info.name === normalizedToken
3666
+ (assetItem) => assetItem.symbol?.toUpperCase() === normalizedToken || assetItem.name?.toUpperCase() === normalizedToken
3873
3667
  );
3874
3668
  if (!assetEntry) {
3875
3669
  return [];
3876
3670
  }
3877
- const operations = assetEntry.operations ?? [];
3878
- const isHiveOrHbd = ["HIVE", "HBD"].includes(
3879
- assetEntry.info.name.toUpperCase()
3880
- );
3881
- if (isHiveOrHbd && !hasNonZeroSavingsBalance(assetEntry.info.parts)) {
3671
+ const rawActions = assetEntry.actions ?? [];
3672
+ const operations = rawActions.map((action) => {
3673
+ if (typeof action === "string") return action;
3674
+ if (action && typeof action === "object") {
3675
+ const record = action;
3676
+ return record.id ?? record.code ?? record.name ?? record.action;
3677
+ }
3678
+ return void 0;
3679
+ }).filter((id) => Boolean(id)).map((id) => {
3680
+ const canonical = id.trim().toLowerCase().replace(/[\s_]+/g, "-");
3681
+ const aliasMap = {
3682
+ // Common operations
3683
+ "transfer": "transfer" /* Transfer */,
3684
+ "ecency-point-transfer": "transfer" /* Transfer */,
3685
+ "spkcc-spk-send": "transfer" /* Transfer */,
3686
+ // Savings operations
3687
+ "transfer-to-savings": "transfer-saving" /* TransferToSavings */,
3688
+ "transfer-savings": "transfer-saving" /* TransferToSavings */,
3689
+ "savings-transfer": "transfer-saving" /* TransferToSavings */,
3690
+ "withdraw-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
3691
+ "transfer-from-savings": "withdraw-saving" /* WithdrawFromSavings */,
3692
+ "withdraw-savings": "withdraw-saving" /* WithdrawFromSavings */,
3693
+ "savings-withdraw": "withdraw-saving" /* WithdrawFromSavings */,
3694
+ // Vesting/Power operations
3695
+ "transfer-to-vesting": "power-up" /* PowerUp */,
3696
+ "powerup": "power-up" /* PowerUp */,
3697
+ "power-up": "power-up" /* PowerUp */,
3698
+ "withdraw-vesting": "power-down" /* PowerDown */,
3699
+ "power-down": "power-down" /* PowerDown */,
3700
+ "powerdown": "power-down" /* PowerDown */,
3701
+ // Delegation
3702
+ "delegate": "delegate" /* Delegate */,
3703
+ "delegate-vesting-shares": "delegate" /* Delegate */,
3704
+ "hp-delegate": "delegate" /* Delegate */,
3705
+ "delegate-hp": "delegate" /* Delegate */,
3706
+ "delegate-power": "delegate" /* Delegate */,
3707
+ "undelegate": "undelegate" /* Undelegate */,
3708
+ "undelegate-power": "undelegate" /* Undelegate */,
3709
+ "undelegate-token": "undelegate" /* Undelegate */,
3710
+ // Staking (Layer 2)
3711
+ "stake": "stake" /* Stake */,
3712
+ "stake-token": "stake" /* Stake */,
3713
+ "stake-power": "stake" /* Stake */,
3714
+ "unstake": "unstake" /* Unstake */,
3715
+ "unstake-token": "unstake" /* Unstake */,
3716
+ "unstake-power": "unstake" /* Unstake */,
3717
+ // Swap/Convert
3718
+ "swap": "swap" /* Swap */,
3719
+ "swap-token": "swap" /* Swap */,
3720
+ "swap-tokens": "swap" /* Swap */,
3721
+ "convert": "convert" /* Convert */,
3722
+ // Points operations
3723
+ "promote": "promote" /* Promote */,
3724
+ "promote-post": "promote" /* Promote */,
3725
+ "promote-entry": "promote" /* Promote */,
3726
+ "boost": "promote" /* Promote */,
3727
+ "gift": "gift" /* Gift */,
3728
+ "gift-points": "gift" /* Gift */,
3729
+ "points-gift": "gift" /* Gift */,
3730
+ "claim": "claim" /* Claim */,
3731
+ "claim-rewards": "claim" /* Claim */,
3732
+ "claim-points": "claim" /* Claim */,
3733
+ "buy": "buy" /* Buy */,
3734
+ "buy-points": "buy" /* Buy */,
3735
+ // Other
3736
+ "claim-interest": "claim-interest" /* ClaimInterest */,
3737
+ "withdraw-routes": "withdraw-routes" /* WithdrawRoutes */,
3738
+ "withdrawroutes": "withdraw-routes" /* WithdrawRoutes */,
3739
+ "lock": "lock" /* LockLiquidity */,
3740
+ "lock-liquidity": "lock" /* LockLiquidity */,
3741
+ "lock-liq": "lock" /* LockLiquidity */
3742
+ };
3743
+ const mapped = aliasMap[canonical];
3744
+ if (mapped) return mapped;
3745
+ const directMatch = Object.values(AssetOperation).find(
3746
+ (op) => op.toLowerCase() === canonical
3747
+ );
3748
+ return directMatch;
3749
+ }).filter((op) => Boolean(op)).filter((op, index, self) => self.indexOf(op) === index);
3750
+ const isHiveOrHbd = ["HIVE", "HBD"].includes(normalizedToken);
3751
+ const rawToken = assetEntry;
3752
+ const hasSavings = Number(rawToken.savings ?? 0) > 0;
3753
+ if (isHiveOrHbd && !hasSavings) {
3882
3754
  return operations.filter(
3883
3755
  (operation) => operation !== "withdraw-saving" /* WithdrawFromSavings */
3884
3756
  );