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