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