@subwallet/extension-base 1.1.35-0 → 1.1.35-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 +111 -69
- package/background/KoniTypes.js +19 -13
- package/background/errors/TransactionError.js +9 -0
- package/cjs/background/KoniTypes.js +20 -16
- package/cjs/background/errors/TransactionError.js +9 -0
- package/cjs/constants/index.js +19 -4
- package/cjs/koni/api/dotsama/balance.js +464 -0
- 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 +19 -16
- 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 +3 -21
- package/cjs/koni/background/handlers/Extension.js +368 -69
- package/cjs/koni/background/handlers/State.js +18 -12
- package/cjs/koni/background/handlers/index.js +4 -2
- package/cjs/koni/background/subscription.js +7 -104
- package/cjs/services/campaign-service/index.js +9 -6
- package/cjs/services/chain-service/constants.js +1 -16
- package/cjs/services/chain-service/index.js +6 -2
- package/cjs/services/chain-service/utils.js +7 -1
- package/cjs/services/earning-service/constants/chains.js +30 -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 +262 -0
- package/cjs/services/earning-service/handlers/index.js +60 -0
- package/cjs/services/earning-service/handlers/lending/base.js +81 -0
- package/cjs/services/earning-service/handlers/lending/index.js +13 -0
- package/cjs/services/earning-service/handlers/lending/interlay.js +192 -0
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +240 -0
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +97 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +140 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +298 -0
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +227 -0
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +404 -0
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +434 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +466 -0
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +146 -0
- package/cjs/services/earning-service/handlers/native-staking/base.js +161 -0
- package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +390 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +567 -0
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +566 -0
- package/cjs/services/earning-service/handlers/special.js +493 -0
- package/cjs/services/earning-service/service.js +733 -0
- package/cjs/services/earning-service/utils/index.js +128 -0
- package/cjs/services/event-service/index.js +5 -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/MigrateEthProvider.js +17 -0
- package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +17 -0
- package/cjs/services/migration-service/scripts/MigrateProvider.js +29 -0
- 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 +6 -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 +3 -2
- package/cjs/services/request-service/handler/PopupHandler.js +2 -3
- package/cjs/services/storage-service/DatabaseService.js +63 -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 +71 -0
- package/cjs/services/storage-service/index.js +241 -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 +249 -75
- 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/types.js +1 -0
- package/cjs/utils/address.js +34 -0
- package/cjs/utils/environment.js +23 -28
- package/cjs/utils/fetchStaticCache.js +22 -0
- package/cjs/utils/fetchStaticData.js +2 -1
- package/cjs/utils/index.js +94 -10
- package/cjs/utils/keyring.js +57 -0
- package/cjs/utils/mv3.js +21 -0
- package/cjs/utils/number.js +6 -2
- package/cjs/utils/object.js +12 -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 +13 -10
- 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 +0 -4
- package/koni/background/cron.js +4 -22
- package/koni/background/handlers/Extension.d.ts +17 -1
- package/koni/background/handlers/Extension.js +327 -30
- package/koni/background/handlers/State.d.ts +6 -1
- package/koni/background/handlers/State.js +17 -12
- package/koni/background/handlers/index.js +4 -2
- package/koni/background/subscription.d.ts +1 -6
- package/koni/background/subscription.js +8 -104
- package/package.json +326 -3
- package/services/campaign-service/index.js +9 -6
- package/services/chain-service/constants.d.ts +0 -12
- package/services/chain-service/constants.js +0 -14
- package/services/chain-service/index.js +6 -2
- 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 +15 -0
- package/services/earning-service/constants/chains.js +22 -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 +113 -0
- package/services/earning-service/handlers/base.js +256 -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 +8 -0
- package/services/earning-service/handlers/lending/base.js +73 -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 +24 -0
- package/services/earning-service/handlers/lending/interlay.js +184 -0
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
- package/services/earning-service/handlers/liquid-staking/acala.js +232 -0
- package/services/earning-service/handlers/liquid-staking/base.d.ts +11 -0
- package/services/earning-service/handlers/liquid-staking/base.js +89 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +46 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.js +287 -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 +26 -0
- package/services/earning-service/handlers/liquid-staking/parallel.js +219 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +34 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +394 -0
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
- package/services/earning-service/handlers/native-staking/amplitude.js +425 -0
- package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
- package/services/earning-service/handlers/native-staking/astar.js +456 -0
- package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
- package/services/earning-service/handlers/native-staking/base-para.js +138 -0
- package/services/earning-service/handlers/native-staking/base.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/base.js +152 -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 +382 -0
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +558 -0
- package/services/earning-service/handlers/nomination-pool/index.d.ts +36 -0
- package/services/earning-service/handlers/nomination-pool/index.js +556 -0
- package/services/earning-service/handlers/special.d.ts +64 -0
- package/services/earning-service/handlers/special.js +485 -0
- package/services/earning-service/service.d.ts +94 -0
- package/services/earning-service/service.js +722 -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 +2 -0
- package/services/event-service/index.js +5 -0
- package/services/event-service/types.d.ts +9 -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 +6 -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 +3 -2
- package/services/request-service/handler/PopupHandler.js +3 -4
- package/services/storage-service/DatabaseService.d.ts +22 -1
- package/services/storage-service/DatabaseService.js +63 -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 +11 -0
- package/services/storage-service/db-stores/YieldPositionStore.js +63 -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 +6 -13
- package/services/transaction-service/index.js +247 -73
- 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 +95 -0
- package/types/yield/actions/join/step.js +46 -0
- package/types/yield/actions/join/submit.d.ts +58 -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 +85 -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 +47 -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 +252 -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/environment.d.ts +9 -2
- package/utils/environment.js +14 -26
- package/utils/fetchStaticCache.d.ts +1 -0
- package/utils/fetchStaticCache.js +14 -0
- package/utils/fetchStaticData.js +2 -1
- package/utils/index.d.ts +5 -1
- package/utils/index.js +53 -3
- package/utils/mv3.d.ts +2 -0
- package/utils/mv3.js +13 -0
- package/utils/number.d.ts +2 -1
- package/utils/number.js +2 -1
- package/utils/object.d.ts +1 -0
- package/utils/object.js +6 -0
|
@@ -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));
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.StakingAction = exports.PalletParachainStakingRequestType = void 0;
|
|
6
|
+
exports.YieldAction = exports.StakingAction = exports.PalletParachainStakingRequestType = void 0;
|
|
7
7
|
exports.calcInflationRewardCurve = calcInflationRewardCurve;
|
|
8
8
|
exports.calcInflationUniformEraPayout = calcInflationUniformEraPayout;
|
|
9
9
|
exports.calculateAlephZeroValidatorReturn = calculateAlephZeroValidatorReturn;
|
|
@@ -13,25 +13,28 @@ exports.calculateTernoaValidatorReturn = calculateTernoaValidatorReturn;
|
|
|
13
13
|
exports.calculateValidatorStakedReturn = calculateValidatorStakedReturn;
|
|
14
14
|
exports.getBondedValidators = getBondedValidators;
|
|
15
15
|
exports.getCommission = getCommission;
|
|
16
|
+
exports.getEarningStatusByNominations = getEarningStatusByNominations;
|
|
16
17
|
exports.getExistUnstakeErrorMessage = void 0;
|
|
17
18
|
exports.getInflationParams = getInflationParams;
|
|
18
19
|
exports.getMinStakeErrorMessage = exports.getMaxValidatorErrorMessage = void 0;
|
|
19
20
|
exports.getParaCurrentInflation = getParaCurrentInflation;
|
|
20
21
|
exports.getStakingAvailableActionsByChain = getStakingAvailableActionsByChain;
|
|
21
22
|
exports.getStakingAvailableActionsByNominator = getStakingAvailableActionsByNominator;
|
|
22
|
-
exports.getStakingStatusByNominations = getStakingStatusByNominations;
|
|
23
23
|
exports.getValidatorLabel = getValidatorLabel;
|
|
24
24
|
exports.getWithdrawalInfo = getWithdrawalInfo;
|
|
25
|
+
exports.getYieldAvailableActionsByPosition = getYieldAvailableActionsByPosition;
|
|
26
|
+
exports.getYieldAvailableActionsByType = getYieldAvailableActionsByType;
|
|
25
27
|
exports.isActionFromValidator = isActionFromValidator;
|
|
26
28
|
exports.isShowNominationByValidator = isShowNominationByValidator;
|
|
27
29
|
exports.isUnstakeAll = isUnstakeAll;
|
|
28
|
-
exports.parseIdentity = parseIdentity;
|
|
29
30
|
exports.parsePoolStashAddress = parsePoolStashAddress;
|
|
30
31
|
exports.transformPoolName = transformPoolName;
|
|
31
32
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
32
33
|
var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
|
|
33
34
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
34
35
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
36
|
+
var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
|
|
37
|
+
var _types = require("@subwallet/extension-base/types");
|
|
35
38
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
36
39
|
var _number = require("@subwallet/extension-base/utils/number");
|
|
37
40
|
var _i18next = require("i18next");
|
|
@@ -57,64 +60,6 @@ function parsePoolStashAddress(api, index, poolId, poolsPalletId) {
|
|
|
57
60
|
function transformPoolName(input) {
|
|
58
61
|
return input.replace(/[^\x20-\x7E]/g, '');
|
|
59
62
|
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @returns
|
|
63
|
-
* <p>
|
|
64
|
-
* [0] - identity
|
|
65
|
-
* </p>
|
|
66
|
-
* <p>
|
|
67
|
-
* [1] - isReasonable (isVerified)
|
|
68
|
-
* </p>
|
|
69
|
-
* */
|
|
70
|
-
async function parseIdentity(substrateApi, address, children) {
|
|
71
|
-
const compactResult = rs => {
|
|
72
|
-
const result = [];
|
|
73
|
-
if (rs) {
|
|
74
|
-
result.push(rs);
|
|
75
|
-
}
|
|
76
|
-
if (children) {
|
|
77
|
-
result.push(children);
|
|
78
|
-
}
|
|
79
|
-
if (result.length > 0) {
|
|
80
|
-
return result.join('/');
|
|
81
|
-
} else {
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
if (substrateApi.api.query.identity) {
|
|
86
|
-
let identity;
|
|
87
|
-
const _parent = await substrateApi.api.query.identity.superOf(address);
|
|
88
|
-
const parentInfo = _parent.toHuman();
|
|
89
|
-
if (parentInfo) {
|
|
90
|
-
const [parentAddress, {
|
|
91
|
-
Raw: data
|
|
92
|
-
}] = parentInfo;
|
|
93
|
-
const child = (0, _util.isHex)(data) ? (0, _util.hexToString)(data) : data;
|
|
94
|
-
if (!(0, _utils2.isSameAddress)(address, parentAddress)) {
|
|
95
|
-
const [rs, isReasonable] = await parseIdentity(substrateApi, parentAddress, child);
|
|
96
|
-
return [compactResult(rs), isReasonable];
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
const _identity = await substrateApi.api.query.identity.identityOf(address);
|
|
100
|
-
const identityInfo = _identity.toHuman();
|
|
101
|
-
if (identityInfo) {
|
|
102
|
-
var _identityInfo$info, _identityInfo$info$di, _identityInfo$info2, _identityInfo$info2$w, _identityInfo$info3, _identityInfo$info3$r, _identityInfo$info4, _identityInfo$info4$t;
|
|
103
|
-
const displayName = (_identityInfo$info = identityInfo.info) === null || _identityInfo$info === void 0 ? void 0 : (_identityInfo$info$di = _identityInfo$info.display) === null || _identityInfo$info$di === void 0 ? void 0 : _identityInfo$info$di.Raw;
|
|
104
|
-
const web = (_identityInfo$info2 = identityInfo.info) === null || _identityInfo$info2 === void 0 ? void 0 : (_identityInfo$info2$w = _identityInfo$info2.web) === null || _identityInfo$info2$w === void 0 ? void 0 : _identityInfo$info2$w.Raw;
|
|
105
|
-
const riot = (_identityInfo$info3 = identityInfo.info) === null || _identityInfo$info3 === void 0 ? void 0 : (_identityInfo$info3$r = _identityInfo$info3.riot) === null || _identityInfo$info3$r === void 0 ? void 0 : _identityInfo$info3$r.Raw;
|
|
106
|
-
const twitter = (_identityInfo$info4 = identityInfo.info) === null || _identityInfo$info4 === void 0 ? void 0 : (_identityInfo$info4$t = _identityInfo$info4.twitter) === null || _identityInfo$info4$t === void 0 ? void 0 : _identityInfo$info4$t.Raw;
|
|
107
|
-
const isReasonable = identityInfo.judgements.length > 0;
|
|
108
|
-
if (displayName) {
|
|
109
|
-
identity = (0, _util.isHex)(displayName) ? (0, _util.hexToString)(displayName) : displayName;
|
|
110
|
-
} else {
|
|
111
|
-
identity = twitter || web || riot;
|
|
112
|
-
}
|
|
113
|
-
return [compactResult(identity), isReasonable];
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return [undefined, false];
|
|
117
|
-
}
|
|
118
63
|
function getInflationParams(networkKey) {
|
|
119
64
|
return _constants._KNOWN_CHAIN_INFLATION_PARAMS[networkKey] || _constants._SUBSTRATE_DEFAULT_INFLATION_PARAMS;
|
|
120
65
|
}
|
|
@@ -138,7 +83,7 @@ function calculateInflation(totalEraStake, totalIssuance, numAuctions, networkKe
|
|
|
138
83
|
const idealStake = stakeTarget - Math.min(auctionMax, numAuctions) * auctionAdjust;
|
|
139
84
|
const idealInterest = maxInflation / idealStake;
|
|
140
85
|
const stakedFraction = totalEraStake.mul(_util.BN_MILLION).div(totalIssuance).toNumber() / _util.BN_MILLION.toNumber();
|
|
141
|
-
if (
|
|
86
|
+
if (_constants2._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
|
|
142
87
|
if (inflationParams.yearlyInflationInTokens) {
|
|
143
88
|
return 100 * calcInflationUniformEraPayout(totalIssuance, inflationParams.yearlyInflationInTokens);
|
|
144
89
|
} else {
|
|
@@ -151,7 +96,7 @@ function calculateInflation(totalEraStake, totalIssuance, numAuctions, networkKe
|
|
|
151
96
|
function calculateChainStakedReturn(inflation, totalEraStake, totalIssuance, networkKey) {
|
|
152
97
|
const stakedFraction = totalEraStake.mul(_util.BN_MILLION).div(totalIssuance).toNumber() / _util.BN_MILLION.toNumber();
|
|
153
98
|
let stakedReturn = inflation / stakedFraction;
|
|
154
|
-
if (
|
|
99
|
+
if (_constants2._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
|
|
155
100
|
stakedReturn *= 0.9; // 10% goes to treasury
|
|
156
101
|
}
|
|
157
102
|
|
|
@@ -193,11 +138,11 @@ function getParaCurrentInflation(totalStaked, inflationConfig) {
|
|
|
193
138
|
}
|
|
194
139
|
// validations and check conditions
|
|
195
140
|
function isShowNominationByValidator(chain) {
|
|
196
|
-
if (
|
|
141
|
+
if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
197
142
|
return 'showByValue';
|
|
198
|
-
} else if (
|
|
143
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
199
144
|
return 'mixed';
|
|
200
|
-
} else if (
|
|
145
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
201
146
|
return 'showByValidator';
|
|
202
147
|
}
|
|
203
148
|
return 'showByValue';
|
|
@@ -228,6 +173,79 @@ function isUnstakeAll(selectedValidator, nominations, unstakeAmount) {
|
|
|
228
173
|
}
|
|
229
174
|
return isUnstakeAll;
|
|
230
175
|
}
|
|
176
|
+
let YieldAction;
|
|
177
|
+
exports.YieldAction = YieldAction;
|
|
178
|
+
(function (YieldAction) {
|
|
179
|
+
YieldAction["STAKE"] = "STAKE";
|
|
180
|
+
YieldAction["UNSTAKE"] = "UNSTAKE";
|
|
181
|
+
YieldAction["WITHDRAW"] = "WITHDRAW";
|
|
182
|
+
YieldAction["CLAIM_REWARD"] = "CLAIM_REWARD";
|
|
183
|
+
YieldAction["CANCEL_UNSTAKE"] = "CANCEL_UNSTAKE";
|
|
184
|
+
YieldAction["START_EARNING"] = "EARN";
|
|
185
|
+
YieldAction["WITHDRAW_EARNING"] = "WITHDRAW_EARNING";
|
|
186
|
+
YieldAction["CUSTOM_ACTION"] = "CUSTOM_ACTION";
|
|
187
|
+
})(YieldAction || (exports.YieldAction = YieldAction = {}));
|
|
188
|
+
function getYieldAvailableActionsByType(yieldPoolInfo) {
|
|
189
|
+
if ([_types.YieldPoolType.NATIVE_STAKING, _types.YieldPoolType.NOMINATION_POOL].includes(yieldPoolInfo.type)) {
|
|
190
|
+
if (yieldPoolInfo.type === _types.YieldPoolType.NOMINATION_POOL) {
|
|
191
|
+
return [YieldAction.STAKE, YieldAction.CLAIM_REWARD, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
|
|
192
|
+
}
|
|
193
|
+
const chain = yieldPoolInfo.chain;
|
|
194
|
+
if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
195
|
+
return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW, YieldAction.CANCEL_UNSTAKE];
|
|
196
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
197
|
+
return [YieldAction.STAKE, YieldAction.CLAIM_REWARD, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
|
|
198
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
199
|
+
return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (yieldPoolInfo.type === _types.YieldPoolType.LENDING) {
|
|
203
|
+
return [YieldAction.START_EARNING, YieldAction.WITHDRAW_EARNING];
|
|
204
|
+
} else if (yieldPoolInfo.type === _types.YieldPoolType.LIQUID_STAKING) {
|
|
205
|
+
return [YieldAction.START_EARNING, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
|
|
206
|
+
}
|
|
207
|
+
return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW, YieldAction.CANCEL_UNSTAKE];
|
|
208
|
+
}
|
|
209
|
+
function getYieldAvailableActionsByPosition(yieldPosition, yieldPoolInfo, unclaimedReward) {
|
|
210
|
+
const result = [];
|
|
211
|
+
if ([_types.YieldPoolType.NATIVE_STAKING, _types.YieldPoolType.NOMINATION_POOL].includes(yieldPoolInfo.type)) {
|
|
212
|
+
result.push(YieldAction.STAKE);
|
|
213
|
+
const bnActiveStake = new _util.BN(yieldPosition.activeStake);
|
|
214
|
+
if (yieldPosition.activeStake && bnActiveStake.gt(_util.BN_ZERO)) {
|
|
215
|
+
result.push(YieldAction.UNSTAKE);
|
|
216
|
+
const isAstarNetwork = _constants2._STAKING_CHAIN_GROUP.astar.includes(yieldPosition.chain);
|
|
217
|
+
const isAmplitudeNetwork = _constants2._STAKING_CHAIN_GROUP.amplitude.includes(yieldPosition.chain);
|
|
218
|
+
const bnUnclaimedReward = new _util.BN(unclaimedReward || '0');
|
|
219
|
+
if ((yieldPosition.type === _types.YieldPoolType.NOMINATION_POOL || isAmplitudeNetwork) && bnUnclaimedReward.gt(_util.BN_ZERO) || isAstarNetwork) {
|
|
220
|
+
result.push(YieldAction.CLAIM_REWARD);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (yieldPosition.unstakings.length > 0) {
|
|
224
|
+
result.push(YieldAction.CANCEL_UNSTAKE);
|
|
225
|
+
const hasClaimable = yieldPosition.unstakings.some(unstaking => unstaking.status === _types.UnstakingStatus.CLAIMABLE);
|
|
226
|
+
if (hasClaimable) {
|
|
227
|
+
result.push(YieldAction.WITHDRAW);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
} else if (yieldPoolInfo.type === _types.YieldPoolType.LIQUID_STAKING) {
|
|
231
|
+
result.push(YieldAction.START_EARNING);
|
|
232
|
+
const activeBalance = new _util.BN(yieldPosition.activeStake || '0');
|
|
233
|
+
if (activeBalance.gt(_util.BN_ZERO)) {
|
|
234
|
+
result.push(YieldAction.UNSTAKE);
|
|
235
|
+
}
|
|
236
|
+
const hasWithdrawal = yieldPosition.unstakings.some(unstakingInfo => unstakingInfo.status === _types.UnstakingStatus.CLAIMABLE);
|
|
237
|
+
if (hasWithdrawal) {
|
|
238
|
+
result.push(YieldAction.WITHDRAW);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// TODO: check has unstakings to withdraw
|
|
242
|
+
} else {
|
|
243
|
+
result.push(YieldAction.START_EARNING);
|
|
244
|
+
result.push(YieldAction.WITHDRAW_EARNING); // TODO
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
231
249
|
let StakingAction;
|
|
232
250
|
exports.StakingAction = StakingAction;
|
|
233
251
|
(function (StakingAction) {
|
|
@@ -241,11 +259,11 @@ function getStakingAvailableActionsByChain(chain, type) {
|
|
|
241
259
|
if (type === _KoniTypes.StakingType.POOLED) {
|
|
242
260
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CLAIM_REWARD];
|
|
243
261
|
}
|
|
244
|
-
if (
|
|
262
|
+
if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
245
263
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CANCEL_UNSTAKE];
|
|
246
|
-
} else if (
|
|
264
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
247
265
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CLAIM_REWARD];
|
|
248
|
-
} else if (
|
|
266
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
249
267
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW];
|
|
250
268
|
}
|
|
251
269
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CANCEL_UNSTAKE];
|
|
@@ -255,8 +273,8 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
|
|
|
255
273
|
const bnActiveStake = new _util.BN(nominatorMetadata.activeStake);
|
|
256
274
|
if (nominatorMetadata.activeStake && bnActiveStake.gt(_util.BN_ZERO)) {
|
|
257
275
|
result.push(StakingAction.UNSTAKE);
|
|
258
|
-
const isAstarNetwork =
|
|
259
|
-
const isAmplitudeNetwork =
|
|
276
|
+
const isAstarNetwork = _constants2._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain);
|
|
277
|
+
const isAmplitudeNetwork = _constants2._STAKING_CHAIN_GROUP.amplitude.includes(nominatorMetadata.chain);
|
|
260
278
|
const bnUnclaimedReward = new _util.BN(unclaimedReward || '0');
|
|
261
279
|
if ((nominatorMetadata.type === _KoniTypes.StakingType.POOLED || isAmplitudeNetwork) && bnUnclaimedReward.gt(_util.BN_ZERO) || isAstarNetwork) {
|
|
262
280
|
result.push(StakingAction.CLAIM_REWARD);
|
|
@@ -264,7 +282,7 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
|
|
|
264
282
|
}
|
|
265
283
|
if (nominatorMetadata.unstakings.length > 0) {
|
|
266
284
|
result.push(StakingAction.CANCEL_UNSTAKE);
|
|
267
|
-
const hasClaimable = nominatorMetadata.unstakings.some(unstaking => unstaking.status ===
|
|
285
|
+
const hasClaimable = nominatorMetadata.unstakings.some(unstaking => unstaking.status === _types.UnstakingStatus.CLAIMABLE);
|
|
268
286
|
if (hasClaimable) {
|
|
269
287
|
result.push(StakingAction.WITHDRAW);
|
|
270
288
|
}
|
|
@@ -272,14 +290,14 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
|
|
|
272
290
|
return result;
|
|
273
291
|
}
|
|
274
292
|
function isActionFromValidator(stakingType, chain) {
|
|
275
|
-
if (stakingType === _KoniTypes.StakingType.POOLED) {
|
|
293
|
+
if (stakingType === _KoniTypes.StakingType.POOLED || stakingType === _KoniTypes.StakingType.LIQUID_STAKING) {
|
|
276
294
|
return false;
|
|
277
295
|
}
|
|
278
|
-
if (
|
|
296
|
+
if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
279
297
|
return true;
|
|
280
|
-
} else if (
|
|
298
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
281
299
|
return true;
|
|
282
|
-
} else if (
|
|
300
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
283
301
|
return true;
|
|
284
302
|
}
|
|
285
303
|
return false;
|
|
@@ -287,40 +305,40 @@ function isActionFromValidator(stakingType, chain) {
|
|
|
287
305
|
function getWithdrawalInfo(nominatorMetadata) {
|
|
288
306
|
const unstakings = nominatorMetadata.unstakings;
|
|
289
307
|
let result;
|
|
290
|
-
if (
|
|
308
|
+
if (_constants2._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain)) {
|
|
291
309
|
return (0, _astar.getAstarWithdrawable)(nominatorMetadata);
|
|
292
310
|
}
|
|
293
311
|
for (const unstaking of unstakings) {
|
|
294
|
-
if (unstaking.status ===
|
|
312
|
+
if (unstaking.status === _types.UnstakingStatus.CLAIMABLE) {
|
|
295
313
|
result = unstaking; // only get the first withdrawal
|
|
296
314
|
break;
|
|
297
315
|
}
|
|
298
316
|
}
|
|
299
317
|
return result;
|
|
300
318
|
}
|
|
301
|
-
function
|
|
302
|
-
let stakingStatus =
|
|
319
|
+
function getEarningStatusByNominations(bnTotalActiveStake, nominationList) {
|
|
320
|
+
let stakingStatus = _types.EarningStatus.EARNING_REWARD;
|
|
303
321
|
if (bnTotalActiveStake.isZero()) {
|
|
304
|
-
stakingStatus =
|
|
322
|
+
stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
305
323
|
} else {
|
|
306
324
|
let invalidDelegationCount = 0;
|
|
307
325
|
for (const nomination of nominationList) {
|
|
308
|
-
if (nomination.status ===
|
|
326
|
+
if (nomination.status === _types.EarningStatus.NOT_EARNING) {
|
|
309
327
|
invalidDelegationCount += 1;
|
|
310
328
|
}
|
|
311
329
|
}
|
|
312
330
|
if (invalidDelegationCount > 0 && invalidDelegationCount < nominationList.length) {
|
|
313
|
-
stakingStatus =
|
|
331
|
+
stakingStatus = _types.EarningStatus.PARTIALLY_EARNING;
|
|
314
332
|
} else if (invalidDelegationCount === nominationList.length) {
|
|
315
|
-
stakingStatus =
|
|
333
|
+
stakingStatus = _types.EarningStatus.NOT_EARNING;
|
|
316
334
|
}
|
|
317
335
|
}
|
|
318
336
|
return stakingStatus;
|
|
319
337
|
}
|
|
320
338
|
function getValidatorLabel(chain) {
|
|
321
|
-
if (
|
|
339
|
+
if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
322
340
|
return 'dApp';
|
|
323
|
-
} else if (
|
|
341
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.relay.includes(chain)) {
|
|
324
342
|
return 'Validator';
|
|
325
343
|
}
|
|
326
344
|
return 'Collator';
|
|
@@ -11,6 +11,7 @@ var _relayChain = require("@subwallet/extension-base/koni/api/staking/relayChain
|
|
|
11
11
|
var _subsquidStaking = require("@subwallet/extension-base/koni/api/staking/subsquidStaking");
|
|
12
12
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
13
13
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
14
|
+
var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
|
|
14
15
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
15
16
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
16
17
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -37,20 +38,20 @@ function stakingOnChainApi(addresses, substrateApiMap, chainInfoMap, stakingCall
|
|
|
37
38
|
} = _ref2;
|
|
38
39
|
const parentApi = await apiPromise.isReady;
|
|
39
40
|
const useAddresses = (0, _utils._isChainEvmCompatible)(chainInfoMap[chain]) ? evmAddresses : substrateAddresses;
|
|
40
|
-
if (
|
|
41
|
+
if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
41
42
|
const unsub = await (0, _paraChain.getAmplitudeStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
42
43
|
unsubList.push(unsub);
|
|
43
|
-
} else if (
|
|
44
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
44
45
|
const unsub = await (0, _paraChain.getAstarStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
45
46
|
unsubList.push(unsub);
|
|
46
|
-
} else if (
|
|
47
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
47
48
|
const unsub = await (0, _paraChain.getParaStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
48
49
|
unsubList.push(unsub);
|
|
49
|
-
} else if (
|
|
50
|
+
} else if (_constants2._STAKING_CHAIN_GROUP.relay.includes(chain)) {
|
|
50
51
|
const unsub = await (0, _relayChain.getRelayStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
51
52
|
unsubList.push(unsub);
|
|
52
53
|
}
|
|
53
|
-
if (
|
|
54
|
+
if (_constants2._STAKING_CHAIN_GROUP.nominationPool.includes(chain)) {
|
|
54
55
|
const unsub = await (0, _relayChain.getRelayPoolingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
55
56
|
unsubList.push(unsub);
|
|
56
57
|
}
|