@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
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _constants = require("@subwallet/extension-base/constants");
|
|
8
|
+
var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
|
|
9
|
+
var _utils = require("@subwallet/extension-base/koni/api/nft/ordinal_nft/utils");
|
|
10
|
+
var _handlers = require("@subwallet/extension-base/koni/background/handlers");
|
|
11
|
+
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
12
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
13
|
+
|
|
14
|
+
const parseParamData = (param, event, chain, address) => {
|
|
15
|
+
const ordinalData = JSON.parse(param.value);
|
|
16
|
+
if ('p' in ordinalData) {
|
|
17
|
+
const properties = {};
|
|
18
|
+
for (const [key, value] of Object.entries(ordinalData)) {
|
|
19
|
+
const _name = key.charAt(0).toUpperCase() + key.slice(1);
|
|
20
|
+
properties[_name] = {
|
|
21
|
+
value: value
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
properties['Block number'] = {
|
|
25
|
+
value: event.extrinsic_index.split('-')[0]
|
|
26
|
+
};
|
|
27
|
+
properties.Timestamp = {
|
|
28
|
+
value: event.block_timestamp
|
|
29
|
+
};
|
|
30
|
+
const op = ordinalData.op.charAt(0).toUpperCase() + ordinalData.op.slice(1);
|
|
31
|
+
const nameParams = [op];
|
|
32
|
+
if (ordinalData.amt !== undefined) {
|
|
33
|
+
nameParams.push(ordinalData.amt);
|
|
34
|
+
}
|
|
35
|
+
nameParams.push(ordinalData.tick);
|
|
36
|
+
const name = nameParams.join(' ');
|
|
37
|
+
return {
|
|
38
|
+
chain: chain,
|
|
39
|
+
collectionId: _constants.ORDINAL_COLLECTION,
|
|
40
|
+
id: event.extrinsic_hash,
|
|
41
|
+
description: JSON.stringify(ordinalData),
|
|
42
|
+
name,
|
|
43
|
+
owner: address,
|
|
44
|
+
properties: properties
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return undefined;
|
|
48
|
+
};
|
|
49
|
+
class OrdinalNftApi extends _nft.BaseNftApi {
|
|
50
|
+
constructor(addresses, chain, subscanChain) {
|
|
51
|
+
super(chain, undefined, addresses);
|
|
52
|
+
this.subscanChain = subscanChain;
|
|
53
|
+
}
|
|
54
|
+
async handleNft(address, handleNftParams) {
|
|
55
|
+
const events = await _handlers.state.subscanService.addRequest(async () => {
|
|
56
|
+
return await (0, _utils.fetchRemarkEvent)(this.subscanChain, address);
|
|
57
|
+
});
|
|
58
|
+
if (events && events.length) {
|
|
59
|
+
const extrinsicIds = events.map(data => data.extrinsic_index);
|
|
60
|
+
const extrinsicParams = await _handlers.state.subscanService.addRequest(async () => {
|
|
61
|
+
return await (0, _utils.fetchExtrinsicParams)(this.subscanChain, extrinsicIds);
|
|
62
|
+
});
|
|
63
|
+
const items = [];
|
|
64
|
+
for (const data of extrinsicParams) {
|
|
65
|
+
const {
|
|
66
|
+
extrinsic_index: extrinsicIndex,
|
|
67
|
+
params
|
|
68
|
+
} = data;
|
|
69
|
+
const event = events.find(item => item.extrinsic_index === extrinsicIndex);
|
|
70
|
+
if (params.length === 1 && event) {
|
|
71
|
+
const [param] = params;
|
|
72
|
+
if (param.name === 'remark') {
|
|
73
|
+
const childParam = {
|
|
74
|
+
name: param.name,
|
|
75
|
+
type: param.type,
|
|
76
|
+
value: param.value
|
|
77
|
+
};
|
|
78
|
+
const item = parseParamData(childParam, event, this.chain, address);
|
|
79
|
+
if (item) {
|
|
80
|
+
items.push(item);
|
|
81
|
+
}
|
|
82
|
+
} else if (param.name === 'calls') {
|
|
83
|
+
const children = param.value;
|
|
84
|
+
for (const child of children) {
|
|
85
|
+
if (child.call_module === 'System' && child.call_name === 'remark_with_event') {
|
|
86
|
+
for (const childParam of child.params) {
|
|
87
|
+
const item = parseParamData(childParam, event, this.chain, address);
|
|
88
|
+
if (item) {
|
|
89
|
+
items.push(item);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (items.length) {
|
|
98
|
+
// handleNftParams.updateCollection(this.chain, {
|
|
99
|
+
// chain: this.chain,
|
|
100
|
+
// collectionId: ORDINAL_COLLECTION
|
|
101
|
+
// });
|
|
102
|
+
|
|
103
|
+
for (const item of items) {
|
|
104
|
+
handleNftParams.updateItem(this.chain, item, address);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async handleNfts(params) {
|
|
110
|
+
await Promise.all(this.addresses.map(address => this.handleNft(address, params)));
|
|
111
|
+
}
|
|
112
|
+
async fetchNfts(params) {
|
|
113
|
+
try {
|
|
114
|
+
await this.handleNfts(params);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
return 1;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.default = OrdinalNftApi;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fetchRemarkEvent = exports.fetchExtrinsicParams = void 0;
|
|
7
|
+
var _constants = require("./constants");
|
|
8
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
9
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
+
|
|
11
|
+
const fetchRemarkEvent = async (chain, address) => {
|
|
12
|
+
const params = {
|
|
13
|
+
..._constants.BASE_FETCH_ORDINAL_EVENT_DATA,
|
|
14
|
+
address
|
|
15
|
+
};
|
|
16
|
+
const response = await fetch(_constants.GET_EVENT_LIST_API.replace('{{chain}}', chain), {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
headers: {
|
|
19
|
+
'Content-Type': 'application/json'
|
|
20
|
+
},
|
|
21
|
+
body: JSON.stringify(params)
|
|
22
|
+
});
|
|
23
|
+
const data = await response.json();
|
|
24
|
+
return data.data.events;
|
|
25
|
+
};
|
|
26
|
+
exports.fetchRemarkEvent = fetchRemarkEvent;
|
|
27
|
+
const fetchExtrinsicParams = async (chain, extrinsicIndexes) => {
|
|
28
|
+
const params = {
|
|
29
|
+
extrinsic_index: extrinsicIndexes
|
|
30
|
+
};
|
|
31
|
+
const response = await fetch(_constants.GET_EXTRINSIC_PARAMS_API.replace('{{chain}}', chain), {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
headers: {
|
|
34
|
+
'Content-Type': 'application/json'
|
|
35
|
+
},
|
|
36
|
+
body: JSON.stringify(params)
|
|
37
|
+
});
|
|
38
|
+
const data = await response.json();
|
|
39
|
+
return data.data;
|
|
40
|
+
};
|
|
41
|
+
exports.fetchExtrinsicParams = fetchExtrinsicParams;
|
|
@@ -15,7 +15,10 @@ exports.subscribeAmplitudeStakingMetadata = subscribeAmplitudeStakingMetadata;
|
|
|
15
15
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
16
16
|
var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
|
|
17
17
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
18
|
-
var
|
|
18
|
+
var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
|
|
19
|
+
var _utils2 = require("@subwallet/extension-base/services/earning-service/utils");
|
|
20
|
+
var _types = require("@subwallet/extension-base/types");
|
|
21
|
+
var _utils3 = require("@subwallet/extension-base/utils");
|
|
19
22
|
var _util = require("@polkadot/util");
|
|
20
23
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
21
24
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -24,7 +27,7 @@ var _utilCrypto = require("@polkadot/util-crypto");
|
|
|
24
27
|
function subscribeAmplitudeStakingMetadata(chain, substrateApi, callback) {
|
|
25
28
|
return substrateApi.api.query.parachainStaking.round(_round => {
|
|
26
29
|
const roundObj = _round.toHuman();
|
|
27
|
-
const round = (0,
|
|
30
|
+
const round = (0, _utils3.parseRawNumber)(roundObj.current);
|
|
28
31
|
const maxDelegations = substrateApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
|
|
29
32
|
const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
|
|
30
33
|
const unstakingDelay = substrateApi.api.consts.parachainStaking.stakeDuration.toString();
|
|
@@ -48,7 +51,7 @@ function subscribeAmplitudeStakingMetadata(chain, substrateApi, callback) {
|
|
|
48
51
|
async function getAmplitudeStakingMetadata(chain, substrateApi) {
|
|
49
52
|
const chainApi = await substrateApi.isReady;
|
|
50
53
|
const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
|
|
51
|
-
const round = (0,
|
|
54
|
+
const round = (0, _utils3.parseRawNumber)(_round.current);
|
|
52
55
|
const maxDelegations = chainApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
|
|
53
56
|
const minDelegatorStake = chainApi.api.consts.parachainStaking.minDelegatorStake.toString();
|
|
54
57
|
const unstakingDelay = chainApi.api.consts.parachainStaking.stakeDuration.toString();
|
|
@@ -76,16 +79,16 @@ async function subscribeAmplitudeNominatorMetadata(chainInfo, address, substrate
|
|
|
76
79
|
let activeStake = '0';
|
|
77
80
|
if (delegatorState) {
|
|
78
81
|
// delegatorState can be null while unstaking all
|
|
79
|
-
const identityPromises = delegatorState.map(delegate => (0,
|
|
82
|
+
const identityPromises = delegatorState.map(delegate => (0, _utils2.parseIdentity)(substrateApi, delegate.owner));
|
|
80
83
|
const identities = await Promise.all(identityPromises);
|
|
81
84
|
for (let i = 0; i < delegatorState.length; i++) {
|
|
82
85
|
const delegate = delegatorState[i];
|
|
83
86
|
const [identity] = identities[i];
|
|
84
87
|
activeStake = delegate.amount.toString();
|
|
85
88
|
const bnActiveStake = new _util.BN(activeStake);
|
|
86
|
-
let delegationStatus =
|
|
89
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
87
90
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegatorStake))) {
|
|
88
|
-
delegationStatus =
|
|
91
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
89
92
|
}
|
|
90
93
|
nominationList.push({
|
|
91
94
|
status: delegationStatus,
|
|
@@ -111,7 +114,7 @@ async function subscribeAmplitudeNominatorMetadata(chainInfo, address, substrate
|
|
|
111
114
|
const waitingTime = remainingBlock * blockDuration;
|
|
112
115
|
unstakingList.push({
|
|
113
116
|
chain: chainInfo.slug,
|
|
114
|
-
status: isClaimable ?
|
|
117
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
115
118
|
claimable: unstakingAmount.toString(),
|
|
116
119
|
waitingTime,
|
|
117
120
|
validatorAddress: undefined
|
|
@@ -119,7 +122,7 @@ async function subscribeAmplitudeNominatorMetadata(chainInfo, address, substrate
|
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
|
-
const stakingStatus = (0, _utils.
|
|
125
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(new _util.BN(activeStake), nominationList);
|
|
123
126
|
return {
|
|
124
127
|
chain: chainInfo.slug,
|
|
125
128
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -151,7 +154,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
151
154
|
chain: chainInfo.slug,
|
|
152
155
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
153
156
|
address,
|
|
154
|
-
status:
|
|
157
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
155
158
|
activeStake: '0',
|
|
156
159
|
nominations: [],
|
|
157
160
|
unstakings: []
|
|
@@ -160,12 +163,12 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
160
163
|
let activeStake = '0';
|
|
161
164
|
if (delegatorState) {
|
|
162
165
|
// delegatorState can be null while unstaking all
|
|
163
|
-
const [identity] = await (0,
|
|
166
|
+
const [identity] = await (0, _utils2.parseIdentity)(substrateApi, delegatorState.owner);
|
|
164
167
|
activeStake = delegatorState.amount.toString();
|
|
165
168
|
const bnActiveStake = new _util.BN(activeStake);
|
|
166
|
-
let delegationStatus =
|
|
169
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
167
170
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegatorStake))) {
|
|
168
|
-
delegationStatus =
|
|
171
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
169
172
|
}
|
|
170
173
|
nominationList.push({
|
|
171
174
|
status: delegationStatus,
|
|
@@ -192,7 +195,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
192
195
|
const waitingTime = remainingBlock * blockDuration;
|
|
193
196
|
unstakingList.push({
|
|
194
197
|
chain,
|
|
195
|
-
status: isClaimable ?
|
|
198
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
196
199
|
claimable: nearestUnstakingAmount.toString(),
|
|
197
200
|
waitingTime,
|
|
198
201
|
validatorAddress: (delegatorState === null || delegatorState === void 0 ? void 0 : delegatorState.owner) || undefined
|
|
@@ -201,7 +204,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
201
204
|
if (nominationList.length === 0 && unstakingList.length === 0) {
|
|
202
205
|
return;
|
|
203
206
|
}
|
|
204
|
-
const stakingStatus = (0, _utils.
|
|
207
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(new _util.BN(activeStake), nominationList);
|
|
205
208
|
return {
|
|
206
209
|
chain,
|
|
207
210
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -216,7 +219,7 @@ async function getAmplitudeCollatorsInfo(chain, substrateApi) {
|
|
|
216
219
|
const chainApi = await substrateApi.isReady;
|
|
217
220
|
|
|
218
221
|
// Noted: Krest do not have reward
|
|
219
|
-
if (
|
|
222
|
+
if (_constants2._STAKING_CHAIN_GROUP.krest_network.includes(chain)) {
|
|
220
223
|
const _allCollators = await chainApi.api.query.parachainStaking.candidatePool.entries();
|
|
221
224
|
const maxDelegatorsPerCollator = chainApi.api.consts.parachainStaking.maxDelegatorsPerCollator.toString();
|
|
222
225
|
const allCollators = [];
|
|
@@ -279,7 +282,7 @@ async function getAmplitudeBondingExtrinsic(substrateApi, amount, selectedValida
|
|
|
279
282
|
const {
|
|
280
283
|
bondedValidators
|
|
281
284
|
} = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
|
|
282
|
-
if (!bondedValidators.includes((0,
|
|
285
|
+
if (!bondedValidators.includes((0, _utils3.reformatAddress)(selectedValidatorInfo.address, 0))) {
|
|
283
286
|
return chainApi.api.tx.parachainStaking.joinDelegators(selectedValidatorInfo.address, binaryAmount);
|
|
284
287
|
} else {
|
|
285
288
|
const _params = chainApi.api.tx.parachainStaking.delegatorStakeMore.toJSON();
|
|
@@ -17,6 +17,7 @@ exports.subscribeAstarStakingMetadata = subscribeAstarStakingMetadata;
|
|
|
17
17
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
18
18
|
var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
|
|
19
19
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
20
|
+
var _types = require("@subwallet/extension-base/types");
|
|
20
21
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
21
22
|
var _crossFetch = _interopRequireDefault(require("cross-fetch"));
|
|
22
23
|
var _util = require("@polkadot/util");
|
|
@@ -115,7 +116,7 @@ async function subscribeAstarNominatorMetadata(chainInfo, address, substrateApi,
|
|
|
115
116
|
const currentStake = stakeList.slice(-1)[0].staked.toString() || '0';
|
|
116
117
|
const bnCurrentStake = new _util.BN(currentStake);
|
|
117
118
|
if (bnCurrentStake.gt(_util.BN_ZERO)) {
|
|
118
|
-
const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ?
|
|
119
|
+
const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ? _types.EarningStatus.EARNING_REWARD : _types.EarningStatus.NOT_EARNING;
|
|
119
120
|
bnTotalActiveStake = bnTotalActiveStake.add(bnCurrentStake);
|
|
120
121
|
const dappInfo = dAppInfoMap[dappAddress];
|
|
121
122
|
nominationList.push({
|
|
@@ -139,7 +140,7 @@ async function subscribeAstarNominatorMetadata(chainInfo, address, substrateApi,
|
|
|
139
140
|
const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[chainInfo.slug];
|
|
140
141
|
unstakingList.push({
|
|
141
142
|
chain: chainInfo.slug,
|
|
142
|
-
status: isClaimable ?
|
|
143
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
143
144
|
claimable: unlockingChunk.amount.toString(),
|
|
144
145
|
waitingTime
|
|
145
146
|
});
|
|
@@ -150,13 +151,13 @@ async function subscribeAstarNominatorMetadata(chainInfo, address, substrateApi,
|
|
|
150
151
|
chain: chainInfo.slug,
|
|
151
152
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
152
153
|
address,
|
|
153
|
-
status:
|
|
154
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
154
155
|
activeStake: '0',
|
|
155
156
|
nominations: [],
|
|
156
157
|
unstakings: []
|
|
157
158
|
};
|
|
158
159
|
}
|
|
159
|
-
const stakingStatus = (0, _utils.
|
|
160
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
160
161
|
return {
|
|
161
162
|
chain: chainInfo.slug,
|
|
162
163
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -201,7 +202,7 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
201
202
|
const currentStake = stakeList.slice(-1)[0].staked.toString() || '0';
|
|
202
203
|
const bnCurrentStake = new _util.BN(currentStake);
|
|
203
204
|
if (bnCurrentStake.gt(_util.BN_ZERO)) {
|
|
204
|
-
const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ?
|
|
205
|
+
const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ? _types.EarningStatus.EARNING_REWARD : _types.EarningStatus.NOT_EARNING;
|
|
205
206
|
bnTotalActiveStake = bnTotalActiveStake.add(bnCurrentStake);
|
|
206
207
|
const dappInfo = dAppInfoMap[dappAddress];
|
|
207
208
|
nominationList.push({
|
|
@@ -225,7 +226,7 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
225
226
|
const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[chain];
|
|
226
227
|
unstakingList.push({
|
|
227
228
|
chain,
|
|
228
|
-
status: isClaimable ?
|
|
229
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
229
230
|
claimable: unlockingChunk.amount.toString(),
|
|
230
231
|
waitingTime
|
|
231
232
|
});
|
|
@@ -236,13 +237,13 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
236
237
|
chain: chainInfo.slug,
|
|
237
238
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
238
239
|
address,
|
|
239
|
-
status:
|
|
240
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
240
241
|
activeStake: '0',
|
|
241
242
|
nominations: [],
|
|
242
243
|
unstakings: []
|
|
243
244
|
};
|
|
244
245
|
}
|
|
245
|
-
const stakingStatus = (0, _utils.
|
|
246
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
246
247
|
return {
|
|
247
248
|
chain,
|
|
248
249
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -369,13 +370,13 @@ async function getAstarClaimRewardExtrinsic(substrateApi, address) {
|
|
|
369
370
|
function getAstarWithdrawable(nominatorMetadata) {
|
|
370
371
|
const unstakingInfo = {
|
|
371
372
|
chain: nominatorMetadata.chain,
|
|
372
|
-
status:
|
|
373
|
+
status: _types.UnstakingStatus.CLAIMABLE,
|
|
373
374
|
claimable: '0',
|
|
374
375
|
waitingTime: 0
|
|
375
376
|
};
|
|
376
377
|
let bnWithdrawable = _util.BN_ZERO;
|
|
377
378
|
for (const unstaking of nominatorMetadata.unstakings) {
|
|
378
|
-
if (unstaking.status ===
|
|
379
|
+
if (unstaking.status === _types.UnstakingStatus.CLAIMABLE) {
|
|
379
380
|
bnWithdrawable = bnWithdrawable.add(new _util.BN(unstaking.claimable));
|
|
380
381
|
}
|
|
381
382
|
}
|
|
@@ -20,13 +20,16 @@ var _amplitude = require("@subwallet/extension-base/koni/api/staking/bonding/amp
|
|
|
20
20
|
var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
|
|
21
21
|
var _paraChain = require("@subwallet/extension-base/koni/api/staking/bonding/paraChain");
|
|
22
22
|
var _relayChain = require("@subwallet/extension-base/koni/api/staking/bonding/relayChain");
|
|
23
|
-
var _constants = require("@subwallet/extension-base/services/
|
|
23
|
+
var _constants = require("@subwallet/extension-base/services/earning-service/constants");
|
|
24
24
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
25
25
|
// SPDX-License-Identifier: Apache-2.0
|
|
26
26
|
|
|
27
27
|
// all addresses must be converted to its chain format
|
|
28
28
|
|
|
29
29
|
function validateUnbondingCondition(nominatorMetadata, amount, chain, chainStakingMetadata, selectedValidator) {
|
|
30
|
+
if (nominatorMetadata.type === _KoniTypes.StakingType.LIQUID_STAKING) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
30
33
|
if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
|
|
31
34
|
return (0, _relayChain.validateRelayUnbondingCondition)(amount, chainStakingMetadata, nominatorMetadata);
|
|
32
35
|
}
|
|
@@ -21,7 +21,9 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
|
21
21
|
var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
|
|
22
22
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
23
23
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
24
|
-
var _utils3 = require("@subwallet/extension-base/utils");
|
|
24
|
+
var _utils3 = require("@subwallet/extension-base/services/earning-service/utils");
|
|
25
|
+
var _types = require("@subwallet/extension-base/types");
|
|
26
|
+
var _utils4 = require("@subwallet/extension-base/utils");
|
|
25
27
|
var _util = require("@polkadot/util");
|
|
26
28
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
27
29
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -31,7 +33,7 @@ function validateParaChainUnbondingCondition(amount, nominatorMetadata, chainSta
|
|
|
31
33
|
const errors = [];
|
|
32
34
|
let targetNomination;
|
|
33
35
|
for (const nomination of nominatorMetadata.nominations) {
|
|
34
|
-
if ((0,
|
|
36
|
+
if ((0, _utils4.isSameAddress)(nomination.validatorAddress, selectedCollator)) {
|
|
35
37
|
targetNomination = nomination;
|
|
36
38
|
break;
|
|
37
39
|
}
|
|
@@ -64,7 +66,7 @@ function validateParaChainBondingCondition(chainInfo, amount, selectedCollators,
|
|
|
64
66
|
const minStakeErrorMessage = (0, _utils.getMinStakeErrorMessage)(chainInfo, bnMinStake);
|
|
65
67
|
const maxValidatorErrorMessage = (0, _utils.getMaxValidatorErrorMessage)(chainInfo, chainStakingMetadata.maxValidatorPerNominator);
|
|
66
68
|
const existUnstakeErrorMessage = (0, _utils.getExistUnstakeErrorMessage)(chainInfo.slug, nominatorMetadata === null || nominatorMetadata === void 0 ? void 0 : nominatorMetadata.type, true);
|
|
67
|
-
if (!nominatorMetadata || nominatorMetadata.status ===
|
|
69
|
+
if (!nominatorMetadata || nominatorMetadata.status === _types.EarningStatus.NOT_STAKING) {
|
|
68
70
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
69
71
|
errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE, minStakeErrorMessage));
|
|
70
72
|
}
|
|
@@ -73,7 +75,7 @@ function validateParaChainBondingCondition(chainInfo, amount, selectedCollators,
|
|
|
73
75
|
const {
|
|
74
76
|
bondedValidators
|
|
75
77
|
} = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
|
|
76
|
-
const parsedSelectedCollatorAddress = (0,
|
|
78
|
+
const parsedSelectedCollatorAddress = (0, _utils4.reformatAddress)(selectedCollator.address, 0);
|
|
77
79
|
if (!bondedValidators.includes(parsedSelectedCollatorAddress)) {
|
|
78
80
|
// new delegation
|
|
79
81
|
if (!bnTotalStake.gte(bnMinStake)) {
|
|
@@ -87,7 +89,7 @@ function validateParaChainBondingCondition(chainInfo, amount, selectedCollators,
|
|
|
87
89
|
let currentDelegationAmount = '0';
|
|
88
90
|
let hasUnstaking = false;
|
|
89
91
|
for (const delegation of nominatorMetadata.nominations) {
|
|
90
|
-
if ((0,
|
|
92
|
+
if ((0, _utils4.reformatAddress)(delegation.validatorAddress, 0) === parsedSelectedCollatorAddress) {
|
|
91
93
|
currentDelegationAmount = delegation.activeStake;
|
|
92
94
|
hasUnstaking = !!delegation.hasUnstaking && delegation.hasUnstaking;
|
|
93
95
|
break;
|
|
@@ -107,7 +109,7 @@ function subscribeParaChainStakingMetadata(chain, substrateApi, callback) {
|
|
|
107
109
|
return substrateApi.api.query.parachainStaking.round(_round => {
|
|
108
110
|
var _substrateApi$api$con, _substrateApi$api$con2, _substrateApi$api$con3, _substrateApi$api$con4, _substrateApi$api$con5, _substrateApi$api$con6;
|
|
109
111
|
const roundObj = _round.toHuman();
|
|
110
|
-
const round = (0,
|
|
112
|
+
const round = (0, _utils4.parseRawNumber)(roundObj.current);
|
|
111
113
|
const maxDelegations = (_substrateApi$api$con = substrateApi.api.consts) === null || _substrateApi$api$con === void 0 ? void 0 : (_substrateApi$api$con2 = _substrateApi$api$con.parachainStaking) === null || _substrateApi$api$con2 === void 0 ? void 0 : (_substrateApi$api$con3 = _substrateApi$api$con2.maxDelegationsPerDelegator) === null || _substrateApi$api$con3 === void 0 ? void 0 : _substrateApi$api$con3.toString();
|
|
112
114
|
const unstakingDelay = substrateApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
|
|
113
115
|
const unstakingPeriod = parseInt(unstakingDelay) * (_constants._STAKING_ERA_LENGTH_MAP[chain] || _constants._STAKING_ERA_LENGTH_MAP.default);
|
|
@@ -129,7 +131,7 @@ async function getParaChainStakingMetadata(chain, substrateApi) {
|
|
|
129
131
|
var _chainApi$api$consts$, _chainApi$api$consts$2;
|
|
130
132
|
const chainApi = await substrateApi.isReady;
|
|
131
133
|
const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
|
|
132
|
-
const round = (0,
|
|
134
|
+
const round = (0, _utils4.parseRawNumber)(_round.current);
|
|
133
135
|
const maxDelegations = chainApi.api.consts.parachainStaking.maxDelegationsPerDelegator.toString();
|
|
134
136
|
const unstakingDelay = chainApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
|
|
135
137
|
const minDelegatorStake = (_chainApi$api$consts$ = chainApi.api.consts.parachainStaking) === null || _chainApi$api$consts$ === void 0 ? void 0 : (_chainApi$api$consts$2 = _chainApi$api$consts$.minDelegatorStk) === null || _chainApi$api$consts$2 === void 0 ? void 0 : _chainApi$api$consts$2.toString();
|
|
@@ -150,7 +152,7 @@ async function getParaChainStakingMetadata(chain, substrateApi) {
|
|
|
150
152
|
}
|
|
151
153
|
|
|
152
154
|
const inflationConfig = _inflation.toHuman();
|
|
153
|
-
const inflation = (0, _utils.getParaCurrentInflation)((0,
|
|
155
|
+
const inflation = (0, _utils.getParaCurrentInflation)((0, _utils4.parseRawNumber)(totalStake.toString()), inflationConfig);
|
|
154
156
|
const unstakingPeriod = parseInt(unstakingDelay) * _constants._STAKING_ERA_LENGTH_MAP[chain];
|
|
155
157
|
return {
|
|
156
158
|
chain,
|
|
@@ -173,17 +175,17 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
173
175
|
const roundInfo = _roundInfo.toPrimitive();
|
|
174
176
|
const currentRound = roundInfo.current;
|
|
175
177
|
await Promise.all(delegatorState.delegations.map(async delegation => {
|
|
176
|
-
const [_delegationScheduledRequests, [identity], _collatorInfo] = await Promise.all([substrateApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0,
|
|
178
|
+
const [_delegationScheduledRequests, [identity], _collatorInfo] = await Promise.all([substrateApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0, _utils3.parseIdentity)(substrateApi, delegation.owner), substrateApi.api.query.parachainStaking.candidateInfo(delegation.owner)]);
|
|
177
179
|
const collatorInfo = _collatorInfo.toPrimitive();
|
|
178
180
|
const minDelegation = collatorInfo === null || collatorInfo === void 0 ? void 0 : collatorInfo.lowestTopDelegationAmount.toString();
|
|
179
181
|
const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
|
|
180
182
|
let hasUnstaking = false;
|
|
181
|
-
let delegationStatus =
|
|
183
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
182
184
|
|
|
183
185
|
// parse unstaking info
|
|
184
186
|
if (delegationScheduledRequests) {
|
|
185
187
|
for (const scheduledRequest of delegationScheduledRequests) {
|
|
186
|
-
if ((0,
|
|
188
|
+
if ((0, _utils4.reformatAddress)(scheduledRequest.delegator, 0) === (0, _utils4.reformatAddress)(address, 0)) {
|
|
187
189
|
// add network prefix
|
|
188
190
|
const isClaimable = scheduledRequest.whenExecutable - currentRound < 0;
|
|
189
191
|
const remainingEra = scheduledRequest.whenExecutable - currentRound;
|
|
@@ -191,7 +193,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
191
193
|
const claimable = Object.values(scheduledRequest.action)[0];
|
|
192
194
|
unstakingMap[delegation.owner] = {
|
|
193
195
|
chain: chainInfo.slug,
|
|
194
|
-
status: isClaimable ?
|
|
196
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
195
197
|
validatorAddress: delegation.owner,
|
|
196
198
|
claimable: claimable.toString(),
|
|
197
199
|
waitingTime
|
|
@@ -206,7 +208,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
206
208
|
const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
|
|
207
209
|
const bnActiveStake = bnStake.sub(bnUnstakeBalance);
|
|
208
210
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegation))) {
|
|
209
|
-
delegationStatus =
|
|
211
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
210
212
|
}
|
|
211
213
|
bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
|
|
212
214
|
nominationList.push({
|
|
@@ -227,7 +229,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
227
229
|
// nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
|
|
228
230
|
// }));
|
|
229
231
|
|
|
230
|
-
const stakingStatus = (0, _utils.
|
|
232
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
231
233
|
return {
|
|
232
234
|
chain: chainInfo.slug,
|
|
233
235
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -257,7 +259,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
257
259
|
chain: chainInfo.slug,
|
|
258
260
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
259
261
|
address,
|
|
260
|
-
status:
|
|
262
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
261
263
|
activeStake: '0',
|
|
262
264
|
nominations: [],
|
|
263
265
|
unstakings: []
|
|
@@ -265,19 +267,19 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
265
267
|
}
|
|
266
268
|
let bnTotalActiveStake = _util.BN_ZERO;
|
|
267
269
|
await Promise.all(delegatorState.delegations.map(async delegation => {
|
|
268
|
-
const [_delegationScheduledRequests, [identity], _roundInfo, _collatorInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0,
|
|
270
|
+
const [_delegationScheduledRequests, [identity], _roundInfo, _collatorInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0, _utils3.parseIdentity)(substrateApi, delegation.owner), chainApi.api.query.parachainStaking.round(), chainApi.api.query.parachainStaking.candidateInfo(delegation.owner)]);
|
|
269
271
|
const rawCollatorInfo = _collatorInfo.toHuman();
|
|
270
272
|
const minDelegation = (rawCollatorInfo === null || rawCollatorInfo === void 0 ? void 0 : rawCollatorInfo.lowestTopDelegationAmount).replaceAll(',', '');
|
|
271
273
|
const roundInfo = _roundInfo.toPrimitive();
|
|
272
274
|
const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
|
|
273
275
|
const currentRound = roundInfo.current;
|
|
274
276
|
let hasUnstaking = false;
|
|
275
|
-
let delegationStatus =
|
|
277
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
276
278
|
|
|
277
279
|
// parse unstaking info
|
|
278
280
|
if (delegationScheduledRequests) {
|
|
279
281
|
for (const scheduledRequest of delegationScheduledRequests) {
|
|
280
|
-
if ((0,
|
|
282
|
+
if ((0, _utils4.reformatAddress)(scheduledRequest.delegator, 0) === (0, _utils4.reformatAddress)(address, 0)) {
|
|
281
283
|
// add network prefix
|
|
282
284
|
const isClaimable = scheduledRequest.whenExecutable - currentRound < 0;
|
|
283
285
|
const remainingEra = scheduledRequest.whenExecutable - (currentRound + 1);
|
|
@@ -285,7 +287,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
285
287
|
const claimable = Object.values(scheduledRequest.action)[0];
|
|
286
288
|
unstakingMap[delegation.owner] = {
|
|
287
289
|
chain,
|
|
288
|
-
status: isClaimable ?
|
|
290
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
289
291
|
validatorAddress: delegation.owner,
|
|
290
292
|
claimable: claimable.toString(),
|
|
291
293
|
waitingTime: waitingTime
|
|
@@ -300,7 +302,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
300
302
|
const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
|
|
301
303
|
const bnActiveStake = bnStake.sub(bnUnstakeBalance);
|
|
302
304
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegation))) {
|
|
303
|
-
delegationStatus =
|
|
305
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
304
306
|
}
|
|
305
307
|
bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
|
|
306
308
|
nominationList.push({
|
|
@@ -317,7 +319,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
317
319
|
const collatorInfo = _collatorInfo.toPrimitive();
|
|
318
320
|
nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
|
|
319
321
|
}));
|
|
320
|
-
const stakingStatus = (0, _utils.
|
|
322
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
321
323
|
return {
|
|
322
324
|
chain,
|
|
323
325
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -360,7 +362,7 @@ async function getParachainCollatorsInfo(chain, substrateApi) {
|
|
|
360
362
|
}
|
|
361
363
|
const extraInfoMap = {};
|
|
362
364
|
await Promise.all(allCollators.map(async collator => {
|
|
363
|
-
const [_info, [identity, isReasonable]] = await Promise.all([apiProps.api.query.parachainStaking.candidateInfo(collator.address), (0,
|
|
365
|
+
const [_info, [identity, isReasonable]] = await Promise.all([apiProps.api.query.parachainStaking.candidateInfo(collator.address), (0, _utils3.parseIdentity)(apiProps, collator.address)]);
|
|
364
366
|
const rawInfo = _info.toHuman();
|
|
365
367
|
const active = (rawInfo === null || rawInfo === void 0 ? void 0 : rawInfo.status) === 'Active';
|
|
366
368
|
extraInfoMap[collator.address] = {
|
|
@@ -388,7 +390,7 @@ async function getParaBondingExtrinsic(chainInfo, substrateApi, amount, selected
|
|
|
388
390
|
bondedValidators,
|
|
389
391
|
nominationCount
|
|
390
392
|
} = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
|
|
391
|
-
const parsedSelectedCollatorAddress = (0,
|
|
393
|
+
const parsedSelectedCollatorAddress = (0, _utils4.reformatAddress)(selectedCollatorInfo.address, 0);
|
|
392
394
|
if (!bondedValidators.includes(parsedSelectedCollatorAddress)) {
|
|
393
395
|
return apiPromise.api.tx.parachainStaking.delegate(selectedCollatorInfo.address, binaryAmount, new _util.BN(selectedCollatorInfo.nominatorCount), nominationCount);
|
|
394
396
|
} else {
|