@subwallet/extension-base 1.1.33-beta.3 → 1.1.35-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 +69 -111
- package/background/KoniTypes.js +13 -19
- package/background/errors/TransactionError.js +0 -9
- package/cjs/background/KoniTypes.js +16 -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 +16 -19
- package/cjs/koni/api/staking/bonding/astar.js +10 -11
- package/cjs/koni/api/staking/bonding/index.js +1 -4
- package/cjs/koni/api/staking/bonding/paraChain.js +23 -25
- 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 +17 -10
- package/cjs/koni/api/staking/relayChain.js +2 -3
- package/cjs/koni/background/cron.js +21 -3
- package/cjs/koni/background/handlers/Extension.js +69 -368
- package/cjs/koni/background/handlers/State.js +12 -18
- package/cjs/koni/background/handlers/index.js +2 -4
- package/cjs/koni/background/subscription.js +104 -7
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +1 -3
- package/cjs/services/campaign-service/index.js +6 -9
- package/cjs/services/chain-service/constants.js +16 -1
- package/cjs/services/chain-service/index.js +2 -5
- package/cjs/services/chain-service/utils.js +1 -7
- package/cjs/services/event-service/index.js +0 -5
- 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 -6
- package/cjs/services/notification-service/NotificationService.js +1 -1
- package/cjs/services/storage-service/DatabaseService.js +0 -63
- package/cjs/services/storage-service/databases/index.js +0 -4
- 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 +75 -249
- package/cjs/services/transaction-service/utils.js +0 -1
- package/cjs/types/index.js +0 -44
- package/cjs/utils/fetchStaticData.js +1 -2
- package/cjs/utils/index.js +1 -89
- package/cjs/utils/number.js +2 -6
- 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.js +10 -13
- package/koni/api/staking/bonding/astar.js +8 -9
- package/koni/api/staking/bonding/index.d.ts +1 -1
- package/koni/api/staking/bonding/index.js +1 -5
- package/koni/api/staking/bonding/paraChain.js +10 -12
- 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 +38 -15
- package/koni/api/staking/bonding/utils.js +69 -85
- package/koni/api/staking/index.js +1 -2
- package/koni/api/staking/paraChain.js +18 -11
- package/koni/api/staking/relayChain.js +3 -4
- package/koni/background/cron.d.ts +4 -0
- package/koni/background/cron.js +22 -4
- package/koni/background/handlers/Extension.d.ts +1 -17
- package/koni/background/handlers/Extension.js +30 -327
- package/koni/background/handlers/State.d.ts +1 -6
- package/koni/background/handlers/State.js +12 -17
- package/koni/background/handlers/index.js +2 -4
- package/koni/background/subscription.d.ts +6 -1
- package/koni/background/subscription.js +104 -8
- package/package.json +7 -320
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +2 -4
- package/services/campaign-service/index.js +6 -9
- package/services/chain-service/constants.d.ts +12 -0
- package/services/chain-service/constants.js +14 -0
- package/services/chain-service/index.js +2 -5
- 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 -2
- package/services/event-service/index.js +0 -5
- package/services/event-service/types.d.ts +0 -9
- 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 -6
- package/services/notification-service/NotificationService.js +1 -1
- package/services/storage-service/DatabaseService.d.ts +1 -22
- package/services/storage-service/DatabaseService.js +0 -63
- 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/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 +13 -6
- package/services/transaction-service/index.js +73 -247
- package/services/transaction-service/types.d.ts +0 -2
- package/services/transaction-service/utils.js +0 -1
- package/types/index.d.ts +0 -5
- package/types/index.js +1 -5
- package/utils/fetchStaticData.js +1 -2
- package/utils/index.d.ts +0 -5
- package/utils/index.js +0 -52
- package/utils/number.d.ts +1 -2
- package/utils/number.js +1 -2
- 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 -30
- 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 -262
- package/cjs/services/earning-service/handlers/index.js +0 -60
- package/cjs/services/earning-service/handlers/lending/base.js +0 -81
- package/cjs/services/earning-service/handlers/lending/index.js +0 -13
- package/cjs/services/earning-service/handlers/lending/interlay.js +0 -192
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -240
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -97
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -140
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -298
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +0 -34
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -227
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -404
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +0 -434
- package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -466
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +0 -146
- package/cjs/services/earning-service/handlers/native-staking/base.js +0 -161
- package/cjs/services/earning-service/handlers/native-staking/index.js +0 -34
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -390
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +0 -567
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +0 -566
- package/cjs/services/earning-service/handlers/special.js +0 -493
- package/cjs/services/earning-service/service.js +0 -740
- 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 -71
- 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 -15
- package/services/earning-service/constants/chains.js +0 -22
- 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 -113
- package/services/earning-service/handlers/base.js +0 -256
- 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 -8
- package/services/earning-service/handlers/lending/base.js +0 -73
- 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 -184
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +0 -27
- package/services/earning-service/handlers/liquid-staking/acala.js +0 -232
- package/services/earning-service/handlers/liquid-staking/base.d.ts +0 -11
- package/services/earning-service/handlers/liquid-staking/base.js +0 -89
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +0 -46
- package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -287
- 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 -219
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +0 -34
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -394
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +0 -22
- package/services/earning-service/handlers/native-staking/amplitude.js +0 -425
- package/services/earning-service/handlers/native-staking/astar.d.ts +0 -19
- package/services/earning-service/handlers/native-staking/astar.js +0 -456
- 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 -152
- 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 -382
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +0 -21
- package/services/earning-service/handlers/native-staking/relay-chain.js +0 -558
- package/services/earning-service/handlers/nomination-pool/index.d.ts +0 -36
- package/services/earning-service/handlers/nomination-pool/index.js +0 -556
- package/services/earning-service/handlers/special.d.ts +0 -64
- package/services/earning-service/handlers/special.js +0 -485
- package/services/earning-service/service.d.ts +0 -94
- package/services/earning-service/service.js +0 -729
- 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 -11
- package/services/storage-service/db-stores/YieldPositionStore.js +0 -63
- 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 -58
- 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 -47
- 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 -252
- 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
|
@@ -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));
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.StakingAction = exports.PalletParachainStakingRequestType = void 0;
|
|
7
7
|
exports.calcInflationRewardCurve = calcInflationRewardCurve;
|
|
8
8
|
exports.calcInflationUniformEraPayout = calcInflationUniformEraPayout;
|
|
9
9
|
exports.calculateAlephZeroValidatorReturn = calculateAlephZeroValidatorReturn;
|
|
@@ -13,28 +13,25 @@ exports.calculateTernoaValidatorReturn = calculateTernoaValidatorReturn;
|
|
|
13
13
|
exports.calculateValidatorStakedReturn = calculateValidatorStakedReturn;
|
|
14
14
|
exports.getBondedValidators = getBondedValidators;
|
|
15
15
|
exports.getCommission = getCommission;
|
|
16
|
-
exports.getEarningStatusByNominations = getEarningStatusByNominations;
|
|
17
16
|
exports.getExistUnstakeErrorMessage = void 0;
|
|
18
17
|
exports.getInflationParams = getInflationParams;
|
|
19
18
|
exports.getMinStakeErrorMessage = exports.getMaxValidatorErrorMessage = void 0;
|
|
20
19
|
exports.getParaCurrentInflation = getParaCurrentInflation;
|
|
21
20
|
exports.getStakingAvailableActionsByChain = getStakingAvailableActionsByChain;
|
|
22
21
|
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;
|
|
27
25
|
exports.isActionFromValidator = isActionFromValidator;
|
|
28
26
|
exports.isShowNominationByValidator = isShowNominationByValidator;
|
|
29
27
|
exports.isUnstakeAll = isUnstakeAll;
|
|
28
|
+
exports.parseIdentity = parseIdentity;
|
|
30
29
|
exports.parsePoolStashAddress = parsePoolStashAddress;
|
|
31
30
|
exports.transformPoolName = transformPoolName;
|
|
32
31
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
33
32
|
var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
|
|
34
33
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
35
34
|
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");
|
|
38
35
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
39
36
|
var _number = require("@subwallet/extension-base/utils/number");
|
|
40
37
|
var _i18next = require("i18next");
|
|
@@ -60,6 +57,64 @@ function parsePoolStashAddress(api, index, poolId, poolsPalletId) {
|
|
|
60
57
|
function transformPoolName(input) {
|
|
61
58
|
return input.replace(/[^\x20-\x7E]/g, '');
|
|
62
59
|
}
|
|
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
|
+
}
|
|
63
118
|
function getInflationParams(networkKey) {
|
|
64
119
|
return _constants._KNOWN_CHAIN_INFLATION_PARAMS[networkKey] || _constants._SUBSTRATE_DEFAULT_INFLATION_PARAMS;
|
|
65
120
|
}
|
|
@@ -83,7 +138,7 @@ function calculateInflation(totalEraStake, totalIssuance, numAuctions, networkKe
|
|
|
83
138
|
const idealStake = stakeTarget - Math.min(auctionMax, numAuctions) * auctionAdjust;
|
|
84
139
|
const idealInterest = maxInflation / idealStake;
|
|
85
140
|
const stakedFraction = totalEraStake.mul(_util.BN_MILLION).div(totalIssuance).toNumber() / _util.BN_MILLION.toNumber();
|
|
86
|
-
if (
|
|
141
|
+
if (_constants._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
|
|
87
142
|
if (inflationParams.yearlyInflationInTokens) {
|
|
88
143
|
return 100 * calcInflationUniformEraPayout(totalIssuance, inflationParams.yearlyInflationInTokens);
|
|
89
144
|
} else {
|
|
@@ -96,7 +151,7 @@ function calculateInflation(totalEraStake, totalIssuance, numAuctions, networkKe
|
|
|
96
151
|
function calculateChainStakedReturn(inflation, totalEraStake, totalIssuance, networkKey) {
|
|
97
152
|
const stakedFraction = totalEraStake.mul(_util.BN_MILLION).div(totalIssuance).toNumber() / _util.BN_MILLION.toNumber();
|
|
98
153
|
let stakedReturn = inflation / stakedFraction;
|
|
99
|
-
if (
|
|
154
|
+
if (_constants._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
|
|
100
155
|
stakedReturn *= 0.9; // 10% goes to treasury
|
|
101
156
|
}
|
|
102
157
|
|
|
@@ -138,11 +193,11 @@ function getParaCurrentInflation(totalStaked, inflationConfig) {
|
|
|
138
193
|
}
|
|
139
194
|
// validations and check conditions
|
|
140
195
|
function isShowNominationByValidator(chain) {
|
|
141
|
-
if (
|
|
196
|
+
if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
142
197
|
return 'showByValue';
|
|
143
|
-
} else if (
|
|
198
|
+
} else if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
144
199
|
return 'mixed';
|
|
145
|
-
} else if (
|
|
200
|
+
} else if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
146
201
|
return 'showByValidator';
|
|
147
202
|
}
|
|
148
203
|
return 'showByValue';
|
|
@@ -173,79 +228,6 @@ function isUnstakeAll(selectedValidator, nominations, unstakeAmount) {
|
|
|
173
228
|
}
|
|
174
229
|
return isUnstakeAll;
|
|
175
230
|
}
|
|
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
|
-
}
|
|
249
231
|
let StakingAction;
|
|
250
232
|
exports.StakingAction = StakingAction;
|
|
251
233
|
(function (StakingAction) {
|
|
@@ -259,11 +241,11 @@ function getStakingAvailableActionsByChain(chain, type) {
|
|
|
259
241
|
if (type === _KoniTypes.StakingType.POOLED) {
|
|
260
242
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CLAIM_REWARD];
|
|
261
243
|
}
|
|
262
|
-
if (
|
|
244
|
+
if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
263
245
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CANCEL_UNSTAKE];
|
|
264
|
-
} else if (
|
|
246
|
+
} else if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
265
247
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CLAIM_REWARD];
|
|
266
|
-
} else if (
|
|
248
|
+
} else if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
267
249
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW];
|
|
268
250
|
}
|
|
269
251
|
return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CANCEL_UNSTAKE];
|
|
@@ -273,8 +255,8 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
|
|
|
273
255
|
const bnActiveStake = new _util.BN(nominatorMetadata.activeStake);
|
|
274
256
|
if (nominatorMetadata.activeStake && bnActiveStake.gt(_util.BN_ZERO)) {
|
|
275
257
|
result.push(StakingAction.UNSTAKE);
|
|
276
|
-
const isAstarNetwork =
|
|
277
|
-
const isAmplitudeNetwork =
|
|
258
|
+
const isAstarNetwork = _constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain);
|
|
259
|
+
const isAmplitudeNetwork = _constants._STAKING_CHAIN_GROUP.amplitude.includes(nominatorMetadata.chain);
|
|
278
260
|
const bnUnclaimedReward = new _util.BN(unclaimedReward || '0');
|
|
279
261
|
if ((nominatorMetadata.type === _KoniTypes.StakingType.POOLED || isAmplitudeNetwork) && bnUnclaimedReward.gt(_util.BN_ZERO) || isAstarNetwork) {
|
|
280
262
|
result.push(StakingAction.CLAIM_REWARD);
|
|
@@ -282,7 +264,7 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
|
|
|
282
264
|
}
|
|
283
265
|
if (nominatorMetadata.unstakings.length > 0) {
|
|
284
266
|
result.push(StakingAction.CANCEL_UNSTAKE);
|
|
285
|
-
const hasClaimable = nominatorMetadata.unstakings.some(unstaking => unstaking.status ===
|
|
267
|
+
const hasClaimable = nominatorMetadata.unstakings.some(unstaking => unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE);
|
|
286
268
|
if (hasClaimable) {
|
|
287
269
|
result.push(StakingAction.WITHDRAW);
|
|
288
270
|
}
|
|
@@ -290,14 +272,14 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
|
|
|
290
272
|
return result;
|
|
291
273
|
}
|
|
292
274
|
function isActionFromValidator(stakingType, chain) {
|
|
293
|
-
if (stakingType === _KoniTypes.StakingType.POOLED
|
|
275
|
+
if (stakingType === _KoniTypes.StakingType.POOLED) {
|
|
294
276
|
return false;
|
|
295
277
|
}
|
|
296
|
-
if (
|
|
278
|
+
if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
297
279
|
return true;
|
|
298
|
-
} else if (
|
|
280
|
+
} else if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
299
281
|
return true;
|
|
300
|
-
} else if (
|
|
282
|
+
} else if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
301
283
|
return true;
|
|
302
284
|
}
|
|
303
285
|
return false;
|
|
@@ -305,40 +287,40 @@ function isActionFromValidator(stakingType, chain) {
|
|
|
305
287
|
function getWithdrawalInfo(nominatorMetadata) {
|
|
306
288
|
const unstakings = nominatorMetadata.unstakings;
|
|
307
289
|
let result;
|
|
308
|
-
if (
|
|
290
|
+
if (_constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain)) {
|
|
309
291
|
return (0, _astar.getAstarWithdrawable)(nominatorMetadata);
|
|
310
292
|
}
|
|
311
293
|
for (const unstaking of unstakings) {
|
|
312
|
-
if (unstaking.status ===
|
|
294
|
+
if (unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE) {
|
|
313
295
|
result = unstaking; // only get the first withdrawal
|
|
314
296
|
break;
|
|
315
297
|
}
|
|
316
298
|
}
|
|
317
299
|
return result;
|
|
318
300
|
}
|
|
319
|
-
function
|
|
320
|
-
let stakingStatus =
|
|
301
|
+
function getStakingStatusByNominations(bnTotalActiveStake, nominationList) {
|
|
302
|
+
let stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
|
|
321
303
|
if (bnTotalActiveStake.isZero()) {
|
|
322
|
-
stakingStatus =
|
|
304
|
+
stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
|
|
323
305
|
} else {
|
|
324
306
|
let invalidDelegationCount = 0;
|
|
325
307
|
for (const nomination of nominationList) {
|
|
326
|
-
if (nomination.status ===
|
|
308
|
+
if (nomination.status === _KoniTypes.StakingStatus.NOT_EARNING) {
|
|
327
309
|
invalidDelegationCount += 1;
|
|
328
310
|
}
|
|
329
311
|
}
|
|
330
312
|
if (invalidDelegationCount > 0 && invalidDelegationCount < nominationList.length) {
|
|
331
|
-
stakingStatus =
|
|
313
|
+
stakingStatus = _KoniTypes.StakingStatus.PARTIALLY_EARNING;
|
|
332
314
|
} else if (invalidDelegationCount === nominationList.length) {
|
|
333
|
-
stakingStatus =
|
|
315
|
+
stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
|
|
334
316
|
}
|
|
335
317
|
}
|
|
336
318
|
return stakingStatus;
|
|
337
319
|
}
|
|
338
320
|
function getValidatorLabel(chain) {
|
|
339
|
-
if (
|
|
321
|
+
if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
340
322
|
return 'dApp';
|
|
341
|
-
} else if (
|
|
323
|
+
} else if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
|
|
342
324
|
return 'Validator';
|
|
343
325
|
}
|
|
344
326
|
return 'Collator';
|
|
@@ -11,7 +11,6 @@ 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");
|
|
15
14
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
16
15
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
17
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -38,20 +37,20 @@ function stakingOnChainApi(addresses, substrateApiMap, chainInfoMap, stakingCall
|
|
|
38
37
|
} = _ref2;
|
|
39
38
|
const parentApi = await apiPromise.isReady;
|
|
40
39
|
const useAddresses = (0, _utils._isChainEvmCompatible)(chainInfoMap[chain]) ? evmAddresses : substrateAddresses;
|
|
41
|
-
if (
|
|
40
|
+
if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
|
|
42
41
|
const unsub = await (0, _paraChain.getAmplitudeStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
43
42
|
unsubList.push(unsub);
|
|
44
|
-
} else if (
|
|
43
|
+
} else if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
|
|
45
44
|
const unsub = await (0, _paraChain.getAstarStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
46
45
|
unsubList.push(unsub);
|
|
47
|
-
} else if (
|
|
46
|
+
} else if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
|
|
48
47
|
const unsub = await (0, _paraChain.getParaStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
49
48
|
unsubList.push(unsub);
|
|
50
|
-
} else if (
|
|
49
|
+
} else if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
|
|
51
50
|
const unsub = await (0, _relayChain.getRelayStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
52
51
|
unsubList.push(unsub);
|
|
53
52
|
}
|
|
54
|
-
if (
|
|
53
|
+
if (_constants._STAKING_CHAIN_GROUP.nominationPool.includes(chain)) {
|
|
55
54
|
const unsub = await (0, _relayChain.getRelayPoolingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
|
|
56
55
|
unsubList.push(unsub);
|
|
57
56
|
}
|