@subwallet/extension-base 1.1.29-0 → 1.1.29-beta.1
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/background/KoniTypes.d.ts +95 -68
- package/background/KoniTypes.js +16 -13
- package/background/errors/TransactionError.js +9 -0
- package/cjs/background/KoniTypes.js +17 -16
- package/cjs/background/errors/TransactionError.js +9 -0
- package/cjs/constants/index.js +19 -4
- package/cjs/koni/api/nft/config.js +33 -23
- package/cjs/koni/api/nft/index.js +14 -0
- package/cjs/koni/api/nft/nft.js +1 -22
- package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
- package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
- package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
- package/cjs/koni/api/staking/bonding/amplitude.js +17 -15
- package/cjs/koni/api/staking/bonding/astar.js +11 -10
- package/cjs/koni/api/staking/bonding/index.js +4 -1
- package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
- package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
- package/cjs/koni/api/staking/bonding/utils.js +104 -86
- package/cjs/koni/api/staking/index.js +6 -5
- package/cjs/koni/api/staking/paraChain.js +6 -5
- package/cjs/koni/api/staking/relayChain.js +3 -2
- package/cjs/koni/api/yield/helper/utils.js +46 -0
- package/cjs/koni/background/cron.js +11 -1
- package/cjs/koni/background/handlers/Extension.js +362 -69
- package/cjs/koni/background/handlers/State.js +51 -3
- package/cjs/koni/background/handlers/index.js +4 -2
- package/cjs/koni/background/subscription.js +95 -37
- package/cjs/services/campaign-service/index.js +9 -6
- package/cjs/services/chain-service/constants.js +2 -16
- package/cjs/services/chain-service/utils.js +7 -1
- package/cjs/services/earning-service/constants/chains.js +29 -0
- package/cjs/services/earning-service/constants/index.js +27 -0
- package/cjs/services/earning-service/constants/step.js +18 -0
- package/cjs/services/earning-service/handlers/base.js +232 -0
- package/cjs/services/earning-service/handlers/index.js +60 -0
- package/cjs/services/earning-service/handlers/lending/base.js +20 -0
- package/cjs/services/earning-service/handlers/lending/index.js +13 -0
- package/cjs/services/earning-service/handlers/lending/interlay.js +184 -0
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +217 -0
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +43 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +283 -0
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +196 -0
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +409 -0
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +382 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +459 -0
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +137 -0
- package/cjs/services/earning-service/handlers/native-staking/base.js +159 -0
- package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +383 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +542 -0
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +541 -0
- package/cjs/services/earning-service/handlers/special.js +411 -0
- package/cjs/services/earning-service/service.js +387 -0
- package/cjs/services/earning-service/utils/index.js +128 -0
- package/cjs/services/event-service/index.js +4 -0
- package/cjs/services/keyring-service/index.js +14 -2
- package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
- package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
- package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
- package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
- package/cjs/services/migration-service/scripts/index.js +7 -1
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
- package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
- package/cjs/services/mint-campaign-service/constants.js +11 -0
- package/cjs/services/mint-campaign-service/index.js +18 -0
- package/cjs/services/notification-service/NotificationService.js +1 -1
- package/cjs/services/storage-service/DatabaseService.js +51 -0
- package/cjs/services/storage-service/databases/index.js +4 -0
- package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
- package/cjs/services/storage-service/db-stores/YieldPositionStore.js +65 -0
- package/cjs/services/subscan-service/index.js +16 -0
- package/cjs/services/transaction-service/event-parser/index.js +58 -0
- package/cjs/services/transaction-service/helpers/index.js +3 -1
- package/cjs/services/transaction-service/index.js +185 -74
- package/cjs/services/transaction-service/utils.js +1 -0
- package/cjs/types/campaigns/index.js +16 -0
- package/cjs/types/campaigns/unlock-dot.js +1 -0
- package/cjs/types/index.js +44 -0
- package/cjs/types/ordinal.js +1 -0
- package/cjs/types/transaction.js +1 -0
- package/cjs/types/yield/actions/index.js +27 -0
- package/cjs/types/yield/actions/join/index.js +38 -0
- package/cjs/types/yield/actions/join/step.js +47 -0
- package/cjs/types/yield/actions/join/submit.js +1 -0
- package/cjs/types/yield/actions/join/validate.js +16 -0
- package/cjs/types/yield/actions/others.js +1 -0
- package/cjs/types/yield/index.js +27 -0
- package/cjs/types/yield/info/account/index.js +49 -0
- package/cjs/types/yield/info/account/info.js +1 -0
- package/cjs/types/yield/info/account/reward.js +1 -0
- package/cjs/types/yield/info/account/target.js +32 -0
- package/cjs/types/yield/info/account/unstake.js +27 -0
- package/cjs/types/yield/info/base.js +41 -0
- package/cjs/types/yield/info/chain/index.js +27 -0
- package/cjs/types/yield/info/chain/info.js +1 -0
- package/cjs/types/yield/info/chain/target.js +1 -0
- package/cjs/types/yield/info/index.js +49 -0
- package/cjs/types/yield/info/pallet.js +15 -0
- package/cjs/utils/fetchStaticData.js +2 -1
- package/cjs/utils/index.js +89 -1
- package/cjs/utils/object.js +12 -0
- package/cjs/utils/yield/index.js +3 -0
- package/constants/index.d.ts +6 -1
- package/constants/index.js +6 -1
- package/koni/api/nft/config.js +33 -23
- package/koni/api/nft/index.js +15 -1
- package/koni/api/nft/nft.js +2 -23
- package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
- package/koni/api/nft/ordinal_nft/constants.js +12 -0
- package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
- package/koni/api/nft/ordinal_nft/index.js +114 -0
- package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
- package/koni/api/nft/ordinal_nft/utils.js +33 -0
- package/koni/api/staking/bonding/amplitude.js +11 -9
- package/koni/api/staking/bonding/astar.js +9 -8
- package/koni/api/staking/bonding/index.d.ts +1 -1
- package/koni/api/staking/bonding/index.js +5 -1
- package/koni/api/staking/bonding/paraChain.js +12 -10
- package/koni/api/staking/bonding/relayChain.d.ts +2 -2
- package/koni/api/staking/bonding/relayChain.js +33 -30
- package/koni/api/staking/bonding/utils.d.ts +15 -38
- package/koni/api/staking/bonding/utils.js +85 -69
- package/koni/api/staking/index.js +2 -1
- package/koni/api/staking/paraChain.js +7 -6
- package/koni/api/staking/relayChain.js +4 -3
- package/koni/api/yield/helper/utils.d.ts +10 -0
- package/koni/api/yield/helper/utils.js +32 -0
- package/koni/background/cron.d.ts +1 -0
- package/koni/background/cron.js +12 -2
- package/koni/background/handlers/Extension.d.ts +17 -1
- package/koni/background/handlers/Extension.js +321 -30
- package/koni/background/handlers/State.d.ts +18 -2
- package/koni/background/handlers/State.js +50 -3
- package/koni/background/handlers/index.js +4 -2
- package/koni/background/subscription.d.ts +6 -1
- package/koni/background/subscription.js +97 -38
- package/package.json +316 -3
- package/services/campaign-service/index.js +9 -6
- package/services/chain-service/constants.d.ts +0 -11
- package/services/chain-service/constants.js +1 -14
- package/services/chain-service/utils.d.ts +1 -0
- package/services/chain-service/utils.js +5 -1
- package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
- package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
- package/services/earning-service/constants/chains.d.ts +14 -0
- package/services/earning-service/constants/chains.js +21 -0
- package/services/earning-service/constants/index.d.ts +2 -0
- package/services/earning-service/constants/index.js +5 -0
- package/services/earning-service/constants/step.d.ts +3 -0
- package/services/earning-service/constants/step.js +10 -0
- package/services/earning-service/handlers/base.d.ts +112 -0
- package/services/earning-service/handlers/base.js +226 -0
- package/services/earning-service/handlers/index.d.ts +5 -0
- package/services/earning-service/handlers/index.js +8 -0
- package/services/earning-service/handlers/lending/base.d.ts +6 -0
- package/services/earning-service/handlers/lending/base.js +12 -0
- package/services/earning-service/handlers/lending/index.d.ts +1 -0
- package/services/earning-service/handlers/lending/index.js +4 -0
- package/services/earning-service/handlers/lending/interlay.d.ts +23 -0
- package/services/earning-service/handlers/lending/interlay.js +176 -0
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +26 -0
- package/services/earning-service/handlers/liquid-staking/acala.js +209 -0
- package/services/earning-service/handlers/liquid-staking/base.d.ts +9 -0
- package/services/earning-service/handlers/liquid-staking/base.js +35 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +45 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.js +272 -0
- package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
- package/services/earning-service/handlers/liquid-staking/index.js +7 -0
- package/services/earning-service/handlers/liquid-staking/parallel.d.ts +25 -0
- package/services/earning-service/handlers/liquid-staking/parallel.js +188 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +34 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +399 -0
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
- package/services/earning-service/handlers/native-staking/amplitude.js +373 -0
- package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
- package/services/earning-service/handlers/native-staking/astar.js +449 -0
- package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
- package/services/earning-service/handlers/native-staking/base-para.js +129 -0
- package/services/earning-service/handlers/native-staking/base.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/base.js +150 -0
- package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
- package/services/earning-service/handlers/native-staking/index.js +7 -0
- package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
- package/services/earning-service/handlers/native-staking/para-chain.js +375 -0
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +533 -0
- package/services/earning-service/handlers/nomination-pool/index.d.ts +35 -0
- package/services/earning-service/handlers/nomination-pool/index.js +531 -0
- package/services/earning-service/handlers/special.d.ts +56 -0
- package/services/earning-service/handlers/special.js +403 -0
- package/services/earning-service/service.d.ts +45 -0
- package/services/earning-service/service.js +379 -0
- package/services/earning-service/utils/index.d.ts +18 -0
- package/services/earning-service/utils/index.js +112 -0
- package/services/event-service/index.d.ts +1 -0
- package/services/event-service/index.js +4 -0
- package/services/event-service/types.d.ts +8 -0
- package/services/keyring-service/index.d.ts +2 -1
- package/services/keyring-service/index.js +14 -2
- package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
- package/services/migration-service/scripts/DeleteEarningData.js +13 -0
- package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
- package/services/migration-service/scripts/EnableEarningChains.js +13 -0
- package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
- package/services/migration-service/scripts/index.js +7 -1
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
- package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
- package/services/mint-campaign-service/campaigns/index.js +4 -0
- package/services/mint-campaign-service/constants.d.ts +1 -0
- package/services/mint-campaign-service/constants.js +4 -0
- package/services/mint-campaign-service/index.d.ts +7 -0
- package/services/mint-campaign-service/index.js +11 -0
- package/services/notification-service/NotificationService.js +1 -1
- package/services/storage-service/DatabaseService.d.ts +18 -1
- package/services/storage-service/DatabaseService.js +51 -0
- package/services/storage-service/databases/index.d.ts +3 -1
- package/services/storage-service/databases/index.js +4 -0
- package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
- package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
- package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
- package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
- package/services/subscan-service/index.d.ts +3 -2
- package/services/subscan-service/index.js +15 -0
- package/services/subscan-service/types.d.ts +20 -0
- package/services/transaction-service/event-parser/index.d.ts +3 -1
- package/services/transaction-service/event-parser/index.js +57 -1
- package/services/transaction-service/helpers/index.js +3 -1
- package/services/transaction-service/index.d.ts +4 -15
- package/services/transaction-service/index.js +183 -72
- package/services/transaction-service/types.d.ts +2 -0
- package/services/transaction-service/utils.js +1 -0
- package/types/campaigns/index.d.ts +1 -0
- package/types/campaigns/index.js +4 -0
- package/types/campaigns/unlock-dot.d.ts +71 -0
- package/types/campaigns/unlock-dot.js +1 -0
- package/types/index.d.ts +5 -0
- package/types/index.js +5 -1
- package/types/ordinal.d.ts +69 -0
- package/types/ordinal.js +1 -0
- package/types/transaction.d.ts +3 -0
- package/types/transaction.js +1 -0
- package/types/yield/actions/index.d.ts +2 -0
- package/types/yield/actions/index.js +5 -0
- package/types/yield/actions/join/index.d.ts +3 -0
- package/types/yield/actions/join/index.js +6 -0
- package/types/yield/actions/join/step.d.ts +94 -0
- package/types/yield/actions/join/step.js +46 -0
- package/types/yield/actions/join/submit.d.ts +53 -0
- package/types/yield/actions/join/submit.js +1 -0
- package/types/yield/actions/join/validate.d.ts +18 -0
- package/types/yield/actions/join/validate.js +10 -0
- package/types/yield/actions/others.d.ts +63 -0
- package/types/yield/actions/others.js +1 -0
- package/types/yield/index.d.ts +2 -0
- package/types/yield/index.js +5 -0
- package/types/yield/info/account/index.d.ts +4 -0
- package/types/yield/info/account/index.js +7 -0
- package/types/yield/info/account/info.d.ts +92 -0
- package/types/yield/info/account/info.js +1 -0
- package/types/yield/info/account/reward.d.ts +45 -0
- package/types/yield/info/account/reward.js +1 -0
- package/types/yield/info/account/target.d.ts +43 -0
- package/types/yield/info/account/target.js +27 -0
- package/types/yield/info/account/unstake.d.ts +31 -0
- package/types/yield/info/account/unstake.js +22 -0
- package/types/yield/info/base.d.ts +45 -0
- package/types/yield/info/base.js +36 -0
- package/types/yield/info/chain/index.d.ts +2 -0
- package/types/yield/info/chain/index.js +5 -0
- package/types/yield/info/chain/info.d.ts +243 -0
- package/types/yield/info/chain/info.js +1 -0
- package/types/yield/info/chain/target.d.ts +37 -0
- package/types/yield/info/chain/target.js +1 -0
- package/types/yield/info/index.d.ts +4 -0
- package/types/yield/info/index.js +7 -0
- package/types/yield/info/pallet.d.ts +143 -0
- package/types/yield/info/pallet.js +9 -0
- package/utils/fetchStaticData.js +2 -1
- package/utils/index.d.ts +5 -0
- package/utils/index.js +53 -1
- package/utils/object.d.ts +1 -0
- package/utils/object.js +6 -0
|
@@ -21,7 +21,9 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
|
21
21
|
var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
|
|
22
22
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
23
23
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
24
|
-
var _utils3 = require("@subwallet/extension-base/utils");
|
|
24
|
+
var _utils3 = require("@subwallet/extension-base/services/earning-service/utils");
|
|
25
|
+
var _types = require("@subwallet/extension-base/types");
|
|
26
|
+
var _utils4 = require("@subwallet/extension-base/utils");
|
|
25
27
|
var _util = require("@polkadot/util");
|
|
26
28
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
27
29
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -31,7 +33,7 @@ function validateParaChainUnbondingCondition(amount, nominatorMetadata, chainSta
|
|
|
31
33
|
const errors = [];
|
|
32
34
|
let targetNomination;
|
|
33
35
|
for (const nomination of nominatorMetadata.nominations) {
|
|
34
|
-
if ((0,
|
|
36
|
+
if ((0, _utils4.isSameAddress)(nomination.validatorAddress, selectedCollator)) {
|
|
35
37
|
targetNomination = nomination;
|
|
36
38
|
break;
|
|
37
39
|
}
|
|
@@ -64,7 +66,7 @@ function validateParaChainBondingCondition(chainInfo, amount, selectedCollators,
|
|
|
64
66
|
const minStakeErrorMessage = (0, _utils.getMinStakeErrorMessage)(chainInfo, bnMinStake);
|
|
65
67
|
const maxValidatorErrorMessage = (0, _utils.getMaxValidatorErrorMessage)(chainInfo, chainStakingMetadata.maxValidatorPerNominator);
|
|
66
68
|
const existUnstakeErrorMessage = (0, _utils.getExistUnstakeErrorMessage)(chainInfo.slug, nominatorMetadata === null || nominatorMetadata === void 0 ? void 0 : nominatorMetadata.type, true);
|
|
67
|
-
if (!nominatorMetadata || nominatorMetadata.status ===
|
|
69
|
+
if (!nominatorMetadata || nominatorMetadata.status === _types.EarningStatus.NOT_STAKING) {
|
|
68
70
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
69
71
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE, minStakeErrorMessage));
|
|
70
72
|
}
|
|
@@ -73,7 +75,7 @@ function validateParaChainBondingCondition(chainInfo, amount, selectedCollators,
|
|
|
73
75
|
const {
|
|
74
76
|
bondedValidators
|
|
75
77
|
} = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
|
|
76
|
-
const parsedSelectedCollatorAddress = (0,
|
|
78
|
+
const parsedSelectedCollatorAddress = (0, _utils4.reformatAddress)(selectedCollator.address, 0);
|
|
77
79
|
if (!bondedValidators.includes(parsedSelectedCollatorAddress)) {
|
|
78
80
|
// new delegation
|
|
79
81
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
@@ -87,7 +89,7 @@ function validateParaChainBondingCondition(chainInfo, amount, selectedCollators,
|
|
|
87
89
|
let currentDelegationAmount = '0';
|
|
88
90
|
let hasUnstaking = false;
|
|
89
91
|
for (const delegation of nominatorMetadata.nominations) {
|
|
90
|
-
if ((0,
|
|
92
|
+
if ((0, _utils4.reformatAddress)(delegation.validatorAddress, 0) === parsedSelectedCollatorAddress) {
|
|
91
93
|
currentDelegationAmount = delegation.activeStake;
|
|
92
94
|
hasUnstaking = !!delegation.hasUnstaking && delegation.hasUnstaking;
|
|
93
95
|
break;
|
|
@@ -107,7 +109,7 @@ function subscribeParaChainStakingMetadata(chain, substrateApi, callback) {
|
|
|
107
109
|
return substrateApi.api.query.parachainStaking.round(_round => {
|
|
108
110
|
var _substrateApi$api$con, _substrateApi$api$con2, _substrateApi$api$con3;
|
|
109
111
|
const roundObj = _round.toHuman();
|
|
110
|
-
const round = (0,
|
|
112
|
+
const round = (0, _utils4.parseRawNumber)(roundObj.current);
|
|
111
113
|
const maxDelegations = (_substrateApi$api$con = substrateApi.api.consts) === null || _substrateApi$api$con === void 0 ? void 0 : (_substrateApi$api$con2 = _substrateApi$api$con.parachainStaking) === null || _substrateApi$api$con2 === void 0 ? void 0 : (_substrateApi$api$con3 = _substrateApi$api$con2.maxDelegationsPerDelegator) === null || _substrateApi$api$con3 === void 0 ? void 0 : _substrateApi$api$con3.toString();
|
|
112
114
|
const unstakingDelay = substrateApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
|
|
113
115
|
const unstakingPeriod = parseInt(unstakingDelay) * (_constants._STAKING_ERA_LENGTH_MAP[chain] || _constants._STAKING_ERA_LENGTH_MAP.default);
|
|
@@ -127,7 +129,7 @@ function subscribeParaChainStakingMetadata(chain, substrateApi, callback) {
|
|
|
127
129
|
async function getParaChainStakingMetadata(chain, substrateApi) {
|
|
128
130
|
const chainApi = await substrateApi.isReady;
|
|
129
131
|
const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
|
|
130
|
-
const round = (0,
|
|
132
|
+
const round = (0, _utils4.parseRawNumber)(_round.current);
|
|
131
133
|
const maxDelegations = chainApi.api.consts.parachainStaking.maxDelegationsPerDelegator.toString();
|
|
132
134
|
const unstakingDelay = chainApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
|
|
133
135
|
let _unvestedAllocation;
|
|
@@ -147,7 +149,7 @@ async function getParaChainStakingMetadata(chain, substrateApi) {
|
|
|
147
149
|
}
|
|
148
150
|
|
|
149
151
|
const inflationConfig = _inflation.toHuman();
|
|
150
|
-
const inflation = (0, _utils.getParaCurrentInflation)((0,
|
|
152
|
+
const inflation = (0, _utils.getParaCurrentInflation)((0, _utils4.parseRawNumber)(totalStake.toString()), inflationConfig);
|
|
151
153
|
const unstakingPeriod = parseInt(unstakingDelay) * _constants._STAKING_ERA_LENGTH_MAP[chain];
|
|
152
154
|
return {
|
|
153
155
|
chain,
|
|
@@ -170,17 +172,17 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
170
172
|
const roundInfo = _roundInfo.toPrimitive();
|
|
171
173
|
const currentRound = roundInfo.current;
|
|
172
174
|
await Promise.all(delegatorState.delegations.map(async delegation => {
|
|
173
|
-
const [_delegationScheduledRequests, [identity], _collatorInfo] = await Promise.all([substrateApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0,
|
|
175
|
+
const [_delegationScheduledRequests, [identity], _collatorInfo] = await Promise.all([substrateApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0, _utils3.parseIdentity)(substrateApi, delegation.owner), substrateApi.api.query.parachainStaking.candidateInfo(delegation.owner)]);
|
|
174
176
|
const collatorInfo = _collatorInfo.toPrimitive();
|
|
175
177
|
const minDelegation = collatorInfo === null || collatorInfo === void 0 ? void 0 : collatorInfo.lowestTopDelegationAmount.toString();
|
|
176
178
|
const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
|
|
177
179
|
let hasUnstaking = false;
|
|
178
|
-
let delegationStatus =
|
|
180
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
179
181
|
|
|
180
182
|
// parse unstaking info
|
|
181
183
|
if (delegationScheduledRequests) {
|
|
182
184
|
for (const scheduledRequest of delegationScheduledRequests) {
|
|
183
|
-
if ((0,
|
|
185
|
+
if ((0, _utils4.reformatAddress)(scheduledRequest.delegator, 0) === (0, _utils4.reformatAddress)(address, 0)) {
|
|
184
186
|
// add network prefix
|
|
185
187
|
const isClaimable = scheduledRequest.whenExecutable - currentRound < 0;
|
|
186
188
|
const remainingEra = scheduledRequest.whenExecutable - currentRound;
|
|
@@ -188,7 +190,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
188
190
|
const claimable = Object.values(scheduledRequest.action)[0];
|
|
189
191
|
unstakingMap[delegation.owner] = {
|
|
190
192
|
chain: chainInfo.slug,
|
|
191
|
-
status: isClaimable ?
|
|
193
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
192
194
|
validatorAddress: delegation.owner,
|
|
193
195
|
claimable: claimable.toString(),
|
|
194
196
|
waitingTime
|
|
@@ -203,7 +205,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
203
205
|
const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
|
|
204
206
|
const bnActiveStake = bnStake.sub(bnUnstakeBalance);
|
|
205
207
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegation))) {
|
|
206
|
-
delegationStatus =
|
|
208
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
207
209
|
}
|
|
208
210
|
bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
|
|
209
211
|
nominationList.push({
|
|
@@ -224,7 +226,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
224
226
|
// nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
|
|
225
227
|
// }));
|
|
226
228
|
|
|
227
|
-
const stakingStatus = (0, _utils.
|
|
229
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
228
230
|
return {
|
|
229
231
|
chain: chainInfo.slug,
|
|
230
232
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -254,7 +256,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
254
256
|
chain: chainInfo.slug,
|
|
255
257
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
256
258
|
address,
|
|
257
|
-
status:
|
|
259
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
258
260
|
activeStake: '0',
|
|
259
261
|
nominations: [],
|
|
260
262
|
unstakings: []
|
|
@@ -262,19 +264,19 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
262
264
|
}
|
|
263
265
|
let bnTotalActiveStake = _util.BN_ZERO;
|
|
264
266
|
await Promise.all(delegatorState.delegations.map(async delegation => {
|
|
265
|
-
const [_delegationScheduledRequests, [identity], _roundInfo, _collatorInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0,
|
|
267
|
+
const [_delegationScheduledRequests, [identity], _roundInfo, _collatorInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0, _utils3.parseIdentity)(substrateApi, delegation.owner), chainApi.api.query.parachainStaking.round(), chainApi.api.query.parachainStaking.candidateInfo(delegation.owner)]);
|
|
266
268
|
const rawCollatorInfo = _collatorInfo.toHuman();
|
|
267
269
|
const minDelegation = (rawCollatorInfo === null || rawCollatorInfo === void 0 ? void 0 : rawCollatorInfo.lowestTopDelegationAmount).replaceAll(',', '');
|
|
268
270
|
const roundInfo = _roundInfo.toPrimitive();
|
|
269
271
|
const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
|
|
270
272
|
const currentRound = roundInfo.current;
|
|
271
273
|
let hasUnstaking = false;
|
|
272
|
-
let delegationStatus =
|
|
274
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
273
275
|
|
|
274
276
|
// parse unstaking info
|
|
275
277
|
if (delegationScheduledRequests) {
|
|
276
278
|
for (const scheduledRequest of delegationScheduledRequests) {
|
|
277
|
-
if ((0,
|
|
279
|
+
if ((0, _utils4.reformatAddress)(scheduledRequest.delegator, 0) === (0, _utils4.reformatAddress)(address, 0)) {
|
|
278
280
|
// add network prefix
|
|
279
281
|
const isClaimable = scheduledRequest.whenExecutable - currentRound < 0;
|
|
280
282
|
const remainingEra = scheduledRequest.whenExecutable - (currentRound + 1);
|
|
@@ -282,7 +284,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
282
284
|
const claimable = Object.values(scheduledRequest.action)[0];
|
|
283
285
|
unstakingMap[delegation.owner] = {
|
|
284
286
|
chain,
|
|
285
|
-
status: isClaimable ?
|
|
287
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
286
288
|
validatorAddress: delegation.owner,
|
|
287
289
|
claimable: claimable.toString(),
|
|
288
290
|
waitingTime: waitingTime
|
|
@@ -297,7 +299,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
297
299
|
const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
|
|
298
300
|
const bnActiveStake = bnStake.sub(bnUnstakeBalance);
|
|
299
301
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegation))) {
|
|
300
|
-
delegationStatus =
|
|
302
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
301
303
|
}
|
|
302
304
|
bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
|
|
303
305
|
nominationList.push({
|
|
@@ -314,7 +316,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
314
316
|
const collatorInfo = _collatorInfo.toPrimitive();
|
|
315
317
|
nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
|
|
316
318
|
}));
|
|
317
|
-
const stakingStatus = (0, _utils.
|
|
319
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
318
320
|
return {
|
|
319
321
|
chain,
|
|
320
322
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -357,7 +359,7 @@ async function getParachainCollatorsInfo(chain, substrateApi) {
|
|
|
357
359
|
}
|
|
358
360
|
const extraInfoMap = {};
|
|
359
361
|
await Promise.all(allCollators.map(async collator => {
|
|
360
|
-
const [_info, [identity, isReasonable]] = await Promise.all([apiProps.api.query.parachainStaking.candidateInfo(collator.address), (0,
|
|
362
|
+
const [_info, [identity, isReasonable]] = await Promise.all([apiProps.api.query.parachainStaking.candidateInfo(collator.address), (0, _utils3.parseIdentity)(apiProps, collator.address)]);
|
|
361
363
|
const rawInfo = _info.toHuman();
|
|
362
364
|
const active = (rawInfo === null || rawInfo === void 0 ? void 0 : rawInfo.status) === 'Active';
|
|
363
365
|
extraInfoMap[collator.address] = {
|
|
@@ -385,7 +387,7 @@ async function getParaBondingExtrinsic(chainInfo, substrateApi, amount, selected
|
|
|
385
387
|
bondedValidators,
|
|
386
388
|
nominationCount
|
|
387
389
|
} = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
|
|
388
|
-
const parsedSelectedCollatorAddress = (0,
|
|
390
|
+
const parsedSelectedCollatorAddress = (0, _utils4.reformatAddress)(selectedCollatorInfo.address, 0);
|
|
389
391
|
if (!bondedValidators.includes(parsedSelectedCollatorAddress)) {
|
|
390
392
|
return apiPromise.api.tx.parachainStaking.delegate(selectedCollatorInfo.address, binaryAmount, new _util.BN(selectedCollatorInfo.nominatorCount), nominationCount);
|
|
391
393
|
} else {
|
|
@@ -29,7 +29,10 @@ var _constants = require("@subwallet/extension-base/constants");
|
|
|
29
29
|
var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
|
|
30
30
|
var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
|
|
31
31
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
32
|
-
var
|
|
32
|
+
var _constants3 = require("@subwallet/extension-base/services/earning-service/constants");
|
|
33
|
+
var _utils3 = require("@subwallet/extension-base/services/earning-service/utils");
|
|
34
|
+
var _types = require("@subwallet/extension-base/types");
|
|
35
|
+
var _utils4 = require("@subwallet/extension-base/utils");
|
|
33
36
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
34
37
|
var _i18next = require("i18next");
|
|
35
38
|
var _util = require("@polkadot/util");
|
|
@@ -83,7 +86,7 @@ function validateRelayBondingCondition(chainInfo, amount, selectedValidators, ad
|
|
|
83
86
|
const bnMinStake = new _util.BN(chainStakingMetadata.minStake);
|
|
84
87
|
const minStakeErrorMessage = (0, _utils.getMinStakeErrorMessage)(chainInfo, bnMinStake);
|
|
85
88
|
const maxValidatorErrorMessage = (0, _utils.getMaxValidatorErrorMessage)(chainInfo, chainStakingMetadata.maxValidatorPerNominator);
|
|
86
|
-
if (!nominatorMetadata || nominatorMetadata.status ===
|
|
89
|
+
if (!nominatorMetadata || nominatorMetadata.status === _types.EarningStatus.NOT_STAKING) {
|
|
87
90
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
88
91
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE, minStakeErrorMessage));
|
|
89
92
|
}
|
|
@@ -128,7 +131,7 @@ function subscribeRelayChainStakingMetadata(chainInfo, substrateApi, callback) {
|
|
|
128
131
|
callback(chainInfo.slug, {
|
|
129
132
|
chain: chainInfo.slug,
|
|
130
133
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
131
|
-
expectedReturn: !
|
|
134
|
+
expectedReturn: !_constants3._STAKING_CHAIN_GROUP.ternoa.includes(chainInfo.slug) ? expectedReturn : undefined,
|
|
132
135
|
// in %, annually
|
|
133
136
|
inflation,
|
|
134
137
|
era: parseInt(currentEra),
|
|
@@ -142,12 +145,12 @@ function subscribeRelayChainStakingMetadata(chainInfo, substrateApi, callback) {
|
|
|
142
145
|
});
|
|
143
146
|
}
|
|
144
147
|
async function getRelayChainStakingMetadata(chainInfo, substrateApi) {
|
|
145
|
-
var _chainApi$api$query$a, _chainApi$api$query, _chainApi$api$query$s, _chainApi$api$query2, _chainApi$api$query2$, _chainApi$api$query3, _chainApi$api$query3$;
|
|
148
|
+
var _chainApi$api$consts$, _chainApi$api$consts$2, _chainApi$api$query$a, _chainApi$api$query, _chainApi$api$query$s, _chainApi$api$query2, _chainApi$api$query2$, _chainApi$api$query3, _chainApi$api$query3$;
|
|
146
149
|
const chain = chainInfo.slug;
|
|
147
150
|
const chainApi = await substrateApi.isReady;
|
|
148
151
|
const _era = await chainApi.api.query.staking.currentEra();
|
|
149
152
|
const currentEra = _era.toString();
|
|
150
|
-
const maxNominations = chainApi.api.consts.staking
|
|
153
|
+
const maxNominations = ((_chainApi$api$consts$ = chainApi.api.consts.staking) === null || _chainApi$api$consts$ === void 0 ? void 0 : (_chainApi$api$consts$2 = _chainApi$api$consts$.maxNominations) === null || _chainApi$api$consts$2 === void 0 ? void 0 : _chainApi$api$consts$2.toString()) || '16'; // TODO
|
|
151
154
|
const maxUnlockingChunks = chainApi.api.consts.staking.maxUnlockingChunks.toString();
|
|
152
155
|
const unlockingEras = chainApi.api.consts.staking.bondingDuration.toString();
|
|
153
156
|
const [_totalEraStake, _totalIssuance, _auctionCounter, _minimumActiveStake, _minNominatorBond, _minPoolJoin, _eraStakers] = await Promise.all([chainApi.api.query.staking.erasTotalStake(parseInt(currentEra)), chainApi.api.query.balances.totalIssuance(), (_chainApi$api$query$a = chainApi.api.query.auctions) === null || _chainApi$api$query$a === void 0 ? void 0 : _chainApi$api$query$a.auctionCounter(), ((_chainApi$api$query = chainApi.api.query) === null || _chainApi$api$query === void 0 ? void 0 : (_chainApi$api$query$s = _chainApi$api$query.staking) === null || _chainApi$api$query$s === void 0 ? void 0 : _chainApi$api$query$s.minimumActiveStake) && ((_chainApi$api$query2 = chainApi.api.query) === null || _chainApi$api$query2 === void 0 ? void 0 : (_chainApi$api$query2$ = _chainApi$api$query2.staking) === null || _chainApi$api$query2$ === void 0 ? void 0 : _chainApi$api$query2$.minimumActiveStake()), chainApi.api.query.staking.minNominatorBond(), (_chainApi$api$query3 = chainApi.api.query) === null || _chainApi$api$query3 === void 0 ? void 0 : (_chainApi$api$query3$ = _chainApi$api$query3.nominationPools) === null || _chainApi$api$query3$ === void 0 ? void 0 : _chainApi$api$query3$.minJoinBond(), chainApi.api.query.staking.erasStakers.entries(parseInt(currentEra))]);
|
|
@@ -184,7 +187,7 @@ async function getRelayChainStakingMetadata(chainInfo, substrateApi) {
|
|
|
184
187
|
chain,
|
|
185
188
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
186
189
|
era: parseInt(currentEra),
|
|
187
|
-
expectedReturn: !
|
|
190
|
+
expectedReturn: !_constants3._STAKING_CHAIN_GROUP.ternoa.includes(chain) ? expectedReturn : undefined,
|
|
188
191
|
// in %, annually
|
|
189
192
|
inflation,
|
|
190
193
|
minStake: minStake.toString(),
|
|
@@ -218,8 +221,8 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
|
|
|
218
221
|
if (nominations) {
|
|
219
222
|
const validatorList = nominations.targets;
|
|
220
223
|
await Promise.all(validatorList.map(async validatorAddress => {
|
|
221
|
-
let nominationStatus =
|
|
222
|
-
const [[identity], _eraStaker] = await Promise.all([(0,
|
|
224
|
+
let nominationStatus = _types.EarningStatus.NOT_EARNING;
|
|
225
|
+
const [[identity], _eraStaker] = await Promise.all([(0, _utils3.parseIdentity)(chainApi, validatorAddress), chainApi.api.query.staking.erasStakers(currentEra, validatorAddress)]);
|
|
223
226
|
const eraStaker = _eraStaker.toPrimitive();
|
|
224
227
|
const sortedNominators = eraStaker.others.sort((a, b) => {
|
|
225
228
|
return new _bignumber.default(b.value).minus(a.value).toNumber();
|
|
@@ -227,12 +230,12 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
|
|
|
227
230
|
const topNominators = sortedNominators.map(nominator => {
|
|
228
231
|
return nominator.who;
|
|
229
232
|
});
|
|
230
|
-
if (!topNominators.includes((0,
|
|
233
|
+
if (!topNominators.includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
|
|
231
234
|
// if nominator has target but not in nominator list
|
|
232
|
-
nominationStatus =
|
|
233
|
-
} else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0,
|
|
235
|
+
nominationStatus = _types.EarningStatus.WAITING;
|
|
236
|
+
} else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
|
|
234
237
|
// if address in top nominators
|
|
235
|
-
nominationStatus =
|
|
238
|
+
nominationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
236
239
|
}
|
|
237
240
|
nominationList.push({
|
|
238
241
|
chain,
|
|
@@ -244,20 +247,20 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
|
|
|
244
247
|
}));
|
|
245
248
|
}
|
|
246
249
|
|
|
247
|
-
let stakingStatus =
|
|
250
|
+
let stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
248
251
|
const bnActiveStake = new _util.BN(activeStake);
|
|
249
252
|
let waitingNominationCount = 0;
|
|
250
253
|
if (bnActiveStake.gte(minStake)) {
|
|
251
254
|
for (const nomination of nominationList) {
|
|
252
|
-
if (nomination.status ===
|
|
255
|
+
if (nomination.status === _types.EarningStatus.EARNING_REWARD) {
|
|
253
256
|
// only need 1 earning nomination to count
|
|
254
|
-
stakingStatus =
|
|
255
|
-
} else if (nomination.status ===
|
|
257
|
+
stakingStatus = _types.EarningStatus.EARNING_REWARD;
|
|
258
|
+
} else if (nomination.status === _types.EarningStatus.WAITING) {
|
|
256
259
|
waitingNominationCount += 1;
|
|
257
260
|
}
|
|
258
261
|
}
|
|
259
262
|
if (waitingNominationCount === nominationList.length) {
|
|
260
|
-
stakingStatus =
|
|
263
|
+
stakingStatus = _types.EarningStatus.WAITING;
|
|
261
264
|
}
|
|
262
265
|
}
|
|
263
266
|
ledger.unlocking.forEach(unlockingChunk => {
|
|
@@ -274,7 +277,7 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
|
|
|
274
277
|
const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chain] + remainingHours;
|
|
275
278
|
unstakingList.push({
|
|
276
279
|
chain,
|
|
277
|
-
status: isClaimable ?
|
|
280
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
278
281
|
claimable: unlockingChunk.value.toString(),
|
|
279
282
|
waitingTime: waitingTime
|
|
280
283
|
});
|
|
@@ -318,7 +321,7 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
|
|
|
318
321
|
return {
|
|
319
322
|
chain,
|
|
320
323
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
321
|
-
status:
|
|
324
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
322
325
|
address: address,
|
|
323
326
|
activeStake: '0',
|
|
324
327
|
nominations: [],
|
|
@@ -331,8 +334,8 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
|
|
|
331
334
|
if (nominations) {
|
|
332
335
|
const validatorList = nominations.targets;
|
|
333
336
|
await Promise.all(validatorList.map(async validatorAddress => {
|
|
334
|
-
let nominationStatus =
|
|
335
|
-
const [[identity], _eraStaker] = await Promise.all([(0,
|
|
337
|
+
let nominationStatus = _types.EarningStatus.NOT_EARNING;
|
|
338
|
+
const [[identity], _eraStaker] = await Promise.all([(0, _utils3.parseIdentity)(chainApi, validatorAddress), chainApi.api.query.staking.erasStakers(currentEra, validatorAddress)]);
|
|
336
339
|
const eraStaker = _eraStaker.toPrimitive();
|
|
337
340
|
const sortedNominators = eraStaker.others.sort((a, b) => {
|
|
338
341
|
return new _bignumber.default(b.value).minus(a.value).toNumber();
|
|
@@ -340,12 +343,12 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
|
|
|
340
343
|
const topNominators = sortedNominators.map(nominator => {
|
|
341
344
|
return nominator.who;
|
|
342
345
|
});
|
|
343
|
-
if (!topNominators.includes((0,
|
|
346
|
+
if (!topNominators.includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
|
|
344
347
|
// if nominator has target but not in nominator list
|
|
345
|
-
nominationStatus =
|
|
346
|
-
} else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0,
|
|
348
|
+
nominationStatus = _types.EarningStatus.WAITING;
|
|
349
|
+
} else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
|
|
347
350
|
// if address in top nominators
|
|
348
|
-
nominationStatus =
|
|
351
|
+
nominationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
349
352
|
}
|
|
350
353
|
nominationList.push({
|
|
351
354
|
chain,
|
|
@@ -357,20 +360,20 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
|
|
|
357
360
|
}));
|
|
358
361
|
}
|
|
359
362
|
|
|
360
|
-
let stakingStatus =
|
|
363
|
+
let stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
361
364
|
const bnActiveStake = new _util.BN(activeStake);
|
|
362
365
|
let waitingNominationCount = 0;
|
|
363
366
|
if (bnActiveStake.gte(minStake)) {
|
|
364
367
|
for (const nomination of nominationList) {
|
|
365
|
-
if (nomination.status ===
|
|
368
|
+
if (nomination.status === _types.EarningStatus.EARNING_REWARD) {
|
|
366
369
|
// only need 1 earning nomination to count
|
|
367
|
-
stakingStatus =
|
|
368
|
-
} else if (nomination.status ===
|
|
370
|
+
stakingStatus = _types.EarningStatus.EARNING_REWARD;
|
|
371
|
+
} else if (nomination.status === _types.EarningStatus.WAITING) {
|
|
369
372
|
waitingNominationCount += 1;
|
|
370
373
|
}
|
|
371
374
|
}
|
|
372
375
|
if (waitingNominationCount === nominationList.length) {
|
|
373
|
-
stakingStatus =
|
|
376
|
+
stakingStatus = _types.EarningStatus.WAITING;
|
|
374
377
|
}
|
|
375
378
|
}
|
|
376
379
|
ledger.unlocking.forEach(unlockingChunk => {
|
|
@@ -379,7 +382,7 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
|
|
|
379
382
|
const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chain];
|
|
380
383
|
unstakingList.push({
|
|
381
384
|
chain,
|
|
382
|
-
status: isClaimable ?
|
|
385
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
383
386
|
claimable: unlockingChunk.value.toString(),
|
|
384
387
|
waitingTime: waitingTime
|
|
385
388
|
});
|
|
@@ -406,7 +409,7 @@ async function subscribeRelayChainPoolMemberMetadata(chainInfo, address, substra
|
|
|
406
409
|
const poolMetadata = _poolMetadata.toPrimitive();
|
|
407
410
|
const currentEra = _currentEra.toString();
|
|
408
411
|
const nominations = _nominations.toJSON();
|
|
409
|
-
let stakingStatus =
|
|
412
|
+
let stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
410
413
|
const getPoolName = () => {
|
|
411
414
|
if (poolMetadata.isUtf8) {
|
|
412
415
|
return poolMetadata.toUtf8();
|
|
@@ -427,9 +430,9 @@ async function subscribeRelayChainPoolMemberMetadata(chainInfo, address, substra
|
|
|
427
430
|
const topNominators = sortedNominators.map(nominator => {
|
|
428
431
|
return nominator.who;
|
|
429
432
|
}).slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator);
|
|
430
|
-
if (topNominators.includes((0,
|
|
433
|
+
if (topNominators.includes((0, _utils4.reformatAddress)(poolStashAccount, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
|
|
431
434
|
// if address in top nominators
|
|
432
|
-
stakingStatus =
|
|
435
|
+
stakingStatus = _types.EarningStatus.EARNING_REWARD;
|
|
433
436
|
}
|
|
434
437
|
}));
|
|
435
438
|
}
|
|
@@ -458,14 +461,14 @@ async function subscribeRelayChainPoolMemberMetadata(chainInfo, address, substra
|
|
|
458
461
|
const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chainInfo.slug] + remainingHours;
|
|
459
462
|
unstakings.push({
|
|
460
463
|
chain: chainInfo.slug,
|
|
461
|
-
status: isClaimable ?
|
|
464
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
462
465
|
claimable: amount.toString(),
|
|
463
466
|
waitingTime: waitingTime
|
|
464
467
|
});
|
|
465
468
|
});
|
|
466
469
|
const bnActiveStake = new _util.BN(poolMemberInfo.points.toString());
|
|
467
470
|
if (!bnActiveStake.gt(_util.BN_ZERO)) {
|
|
468
|
-
stakingStatus =
|
|
471
|
+
stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
469
472
|
}
|
|
470
473
|
return {
|
|
471
474
|
chain: chainInfo.slug,
|
|
@@ -496,14 +499,14 @@ async function getRelayChainPoolMemberMetadata(chainInfo, address, substrateApi)
|
|
|
496
499
|
chain: chainInfo.slug,
|
|
497
500
|
type: _KoniTypes.StakingType.POOLED,
|
|
498
501
|
address,
|
|
499
|
-
status:
|
|
502
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
500
503
|
activeStake: '0',
|
|
501
504
|
nominations: [],
|
|
502
505
|
// can only join 1 pool at a time
|
|
503
506
|
unstakings: []
|
|
504
507
|
};
|
|
505
508
|
}
|
|
506
|
-
let stakingStatus =
|
|
509
|
+
let stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
507
510
|
const _poolMetadata = await chainApi.api.query.nominationPools.metadata(poolMemberInfo.poolId);
|
|
508
511
|
const poolMetadata = _poolMetadata.toPrimitive();
|
|
509
512
|
const getPoolName = () => {
|
|
@@ -529,9 +532,9 @@ async function getRelayChainPoolMemberMetadata(chainInfo, address, substrateApi)
|
|
|
529
532
|
const topNominators = sortedNominators.map(nominator => {
|
|
530
533
|
return nominator.who;
|
|
531
534
|
}).slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator);
|
|
532
|
-
if (topNominators.includes((0,
|
|
535
|
+
if (topNominators.includes((0, _utils4.reformatAddress)(poolStashAccount, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
|
|
533
536
|
// if address in top nominators
|
|
534
|
-
stakingStatus =
|
|
537
|
+
stakingStatus = _types.EarningStatus.EARNING_REWARD;
|
|
535
538
|
}
|
|
536
539
|
}));
|
|
537
540
|
}
|
|
@@ -552,14 +555,14 @@ async function getRelayChainPoolMemberMetadata(chainInfo, address, substrateApi)
|
|
|
552
555
|
const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chainInfo.slug];
|
|
553
556
|
unstakings.push({
|
|
554
557
|
chain: chainInfo.slug,
|
|
555
|
-
status: isClaimable ?
|
|
558
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
556
559
|
claimable: amount.toString(),
|
|
557
560
|
waitingTime: waitingTime
|
|
558
561
|
});
|
|
559
562
|
});
|
|
560
563
|
const bnActiveStake = new _util.BN(poolMemberInfo.points.toString());
|
|
561
564
|
if (!bnActiveStake.gt(_util.BN_ZERO)) {
|
|
562
|
-
stakingStatus =
|
|
565
|
+
stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
563
566
|
}
|
|
564
567
|
return {
|
|
565
568
|
chain: chainInfo.slug,
|
|
@@ -625,7 +628,7 @@ async function getRelayValidatorsInfo(chain, substrateApi, decimals, chainStakin
|
|
|
625
628
|
const extraInfoMap = {};
|
|
626
629
|
await Promise.all(allValidators.map(async address => {
|
|
627
630
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
628
|
-
const [_commissionInfo, [identity, isVerified]] = await Promise.all([chainApi.api.query.staking.validators(address), (0,
|
|
631
|
+
const [_commissionInfo, [identity, isVerified]] = await Promise.all([chainApi.api.query.staking.validators(address), (0, _utils3.parseIdentity)(chainApi, address)]);
|
|
629
632
|
const commissionInfo = _commissionInfo.toHuman();
|
|
630
633
|
extraInfoMap[address] = {
|
|
631
634
|
commission: commissionInfo.commission,
|
|
@@ -638,9 +641,9 @@ async function getRelayValidatorsInfo(chain, substrateApi, decimals, chainStakin
|
|
|
638
641
|
for (const validator of validatorInfoList) {
|
|
639
642
|
const commission = extraInfoMap[validator.address].commission;
|
|
640
643
|
const bnValidatorStake = totalStakeMap[validator.address].div(bnDecimals);
|
|
641
|
-
if (
|
|
644
|
+
if (_constants3._STAKING_CHAIN_GROUP.aleph.includes(chain)) {
|
|
642
645
|
validator.expectedReturn = (0, _utils.calculateAlephZeroValidatorReturn)(chainStakingMetadata.expectedReturn, (0, _utils.getCommission)(commission));
|
|
643
|
-
} else if (
|
|
646
|
+
} else if (_constants3._STAKING_CHAIN_GROUP.ternoa.includes(chain)) {
|
|
644
647
|
const rewardPerValidator = new _util.BN(stakingRewards.sessionExtraRewardPayout).divn(allValidators.length).div(bnDecimals);
|
|
645
648
|
const validatorStake = totalStakeMap[validator.address].div(bnDecimals).toNumber();
|
|
646
649
|
validator.expectedReturn = (0, _utils.calculateTernoaValidatorReturn)(rewardPerValidator.toNumber(), validatorStake, (0, _utils.getCommission)(commission));
|