@subwallet/extension-base 1.1.31-1 → 1.1.31-beta.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 +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 +17 -15
- package/cjs/koni/api/staking/bonding/astar.js +11 -10
- package/cjs/koni/api/staking/bonding/index.js +4 -1
- package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
- package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
- package/cjs/koni/api/staking/bonding/utils.js +104 -86
- package/cjs/koni/api/staking/index.js +6 -5
- package/cjs/koni/api/staking/paraChain.js +6 -5
- package/cjs/koni/api/staking/relayChain.js +3 -2
- package/cjs/koni/api/yield/helper/utils.js +46 -0
- package/cjs/koni/background/cron.js +11 -1
- package/cjs/koni/background/handlers/Extension.js +362 -69
- package/cjs/koni/background/handlers/State.js +51 -3
- package/cjs/koni/background/handlers/index.js +4 -2
- package/cjs/koni/background/subscription.js +95 -37
- package/cjs/services/campaign-service/index.js +9 -6
- package/cjs/services/chain-service/constants.js +2 -16
- package/cjs/services/chain-service/index.js +3 -2
- package/cjs/services/chain-service/utils.js +7 -1
- package/cjs/services/earning-service/constants/chains.js +29 -0
- package/cjs/services/earning-service/constants/index.js +27 -0
- package/cjs/services/earning-service/constants/step.js +18 -0
- package/cjs/services/earning-service/handlers/base.js +259 -0
- package/cjs/services/earning-service/handlers/index.js +60 -0
- package/cjs/services/earning-service/handlers/lending/base.js +20 -0
- package/cjs/services/earning-service/handlers/lending/index.js +13 -0
- package/cjs/services/earning-service/handlers/lending/interlay.js +191 -0
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +239 -0
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +43 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +297 -0
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +226 -0
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +395 -0
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +384 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +461 -0
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +146 -0
- package/cjs/services/earning-service/handlers/native-staking/base.js +159 -0
- package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +385 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +558 -0
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +560 -0
- package/cjs/services/earning-service/handlers/special.js +503 -0
- package/cjs/services/earning-service/service.js +387 -0
- package/cjs/services/earning-service/utils/index.js +128 -0
- package/cjs/services/event-service/index.js +4 -0
- package/cjs/services/keyring-service/index.js +14 -2
- package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
- package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
- package/cjs/services/migration-service/scripts/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 +7 -1
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
- package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
- package/cjs/services/mint-campaign-service/constants.js +11 -0
- package/cjs/services/mint-campaign-service/index.js +18 -0
- package/cjs/services/notification-service/NotificationService.js +1 -1
- package/cjs/services/storage-service/DatabaseService.js +51 -0
- package/cjs/services/storage-service/databases/index.js +4 -0
- package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
- package/cjs/services/storage-service/db-stores/YieldPositionStore.js +65 -0
- package/cjs/services/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 +231 -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/fetchStaticData.js +2 -1
- package/cjs/utils/index.js +89 -1
- package/cjs/utils/keyring.js +57 -0
- package/cjs/utils/number.js +3 -1
- 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 +11 -9
- package/koni/api/staking/bonding/astar.js +9 -8
- package/koni/api/staking/bonding/index.d.ts +1 -1
- package/koni/api/staking/bonding/index.js +5 -1
- package/koni/api/staking/bonding/paraChain.js +12 -10
- package/koni/api/staking/bonding/relayChain.d.ts +2 -2
- package/koni/api/staking/bonding/relayChain.js +33 -30
- package/koni/api/staking/bonding/utils.d.ts +15 -38
- package/koni/api/staking/bonding/utils.js +85 -69
- package/koni/api/staking/index.js +2 -1
- package/koni/api/staking/paraChain.js +7 -6
- package/koni/api/staking/relayChain.js +4 -3
- package/koni/api/yield/helper/utils.d.ts +10 -0
- package/koni/api/yield/helper/utils.js +32 -0
- package/koni/background/cron.d.ts +1 -0
- package/koni/background/cron.js +12 -2
- package/koni/background/handlers/Extension.d.ts +17 -1
- package/koni/background/handlers/Extension.js +321 -30
- package/koni/background/handlers/State.d.ts +18 -2
- package/koni/background/handlers/State.js +50 -3
- package/koni/background/handlers/index.js +4 -2
- package/koni/background/subscription.d.ts +6 -1
- package/koni/background/subscription.js +97 -38
- package/package.json +316 -3
- package/services/campaign-service/index.js +9 -6
- package/services/chain-service/constants.d.ts +0 -11
- package/services/chain-service/constants.js +1 -14
- package/services/chain-service/index.js +3 -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 +14 -0
- package/services/earning-service/constants/chains.js +21 -0
- package/services/earning-service/constants/index.d.ts +2 -0
- package/services/earning-service/constants/index.js +5 -0
- package/services/earning-service/constants/step.d.ts +3 -0
- package/services/earning-service/constants/step.js +10 -0
- package/services/earning-service/handlers/base.d.ts +112 -0
- package/services/earning-service/handlers/base.js +253 -0
- package/services/earning-service/handlers/index.d.ts +5 -0
- package/services/earning-service/handlers/index.js +8 -0
- package/services/earning-service/handlers/lending/base.d.ts +6 -0
- package/services/earning-service/handlers/lending/base.js +12 -0
- package/services/earning-service/handlers/lending/index.d.ts +1 -0
- package/services/earning-service/handlers/lending/index.js +4 -0
- package/services/earning-service/handlers/lending/interlay.d.ts +24 -0
- package/services/earning-service/handlers/lending/interlay.js +183 -0
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
- package/services/earning-service/handlers/liquid-staking/acala.js +231 -0
- package/services/earning-service/handlers/liquid-staking/base.d.ts +9 -0
- package/services/earning-service/handlers/liquid-staking/base.js +35 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +46 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.js +286 -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 +218 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +34 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +385 -0
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
- package/services/earning-service/handlers/native-staking/amplitude.js +375 -0
- package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
- package/services/earning-service/handlers/native-staking/astar.js +451 -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 +150 -0
- package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
- package/services/earning-service/handlers/native-staking/index.js +7 -0
- package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
- package/services/earning-service/handlers/native-staking/para-chain.js +377 -0
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +549 -0
- package/services/earning-service/handlers/nomination-pool/index.d.ts +36 -0
- package/services/earning-service/handlers/nomination-pool/index.js +550 -0
- package/services/earning-service/handlers/special.d.ts +65 -0
- package/services/earning-service/handlers/special.js +495 -0
- package/services/earning-service/service.d.ts +45 -0
- package/services/earning-service/service.js +379 -0
- package/services/earning-service/utils/index.d.ts +18 -0
- package/services/earning-service/utils/index.js +112 -0
- package/services/event-service/index.d.ts +1 -0
- package/services/event-service/index.js +4 -0
- package/services/event-service/types.d.ts +8 -0
- package/services/keyring-service/index.d.ts +2 -1
- package/services/keyring-service/index.js +14 -2
- package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
- package/services/migration-service/scripts/DeleteEarningData.js +13 -0
- package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
- package/services/migration-service/scripts/EnableEarningChains.js +13 -0
- package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
- package/services/migration-service/scripts/index.js +7 -1
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
- package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
- package/services/mint-campaign-service/campaigns/index.js +4 -0
- package/services/mint-campaign-service/constants.d.ts +1 -0
- package/services/mint-campaign-service/constants.js +4 -0
- package/services/mint-campaign-service/index.d.ts +7 -0
- package/services/mint-campaign-service/index.js +11 -0
- package/services/notification-service/NotificationService.js +1 -1
- package/services/storage-service/DatabaseService.d.ts +18 -1
- package/services/storage-service/DatabaseService.js +51 -0
- package/services/storage-service/databases/index.d.ts +3 -1
- package/services/storage-service/databases/index.js +4 -0
- package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
- package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
- package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
- package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
- package/services/subscan-service/index.d.ts +3 -2
- package/services/subscan-service/index.js +15 -0
- package/services/subscan-service/types.d.ts +20 -0
- package/services/transaction-service/event-parser/index.d.ts +3 -1
- package/services/transaction-service/event-parser/index.js +57 -1
- package/services/transaction-service/helpers/index.js +3 -1
- package/services/transaction-service/index.d.ts +4 -15
- package/services/transaction-service/index.js +229 -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 +57 -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 +45 -0
- package/types/yield/info/account/reward.js +1 -0
- package/types/yield/info/account/target.d.ts +43 -0
- package/types/yield/info/account/target.js +27 -0
- package/types/yield/info/account/unstake.d.ts +31 -0
- package/types/yield/info/account/unstake.js +22 -0
- package/types/yield/info/base.d.ts +45 -0
- package/types/yield/info/base.js +36 -0
- package/types/yield/info/chain/index.d.ts +2 -0
- package/types/yield/info/chain/index.js +5 -0
- package/types/yield/info/chain/info.d.ts +251 -0
- package/types/yield/info/chain/info.js +1 -0
- package/types/yield/info/chain/target.d.ts +37 -0
- package/types/yield/info/chain/target.js +1 -0
- package/types/yield/info/index.d.ts +4 -0
- package/types/yield/info/index.js +7 -0
- package/types/yield/info/pallet.d.ts +143 -0
- package/types/yield/info/pallet.js +9 -0
- package/utils/fetchStaticData.js +2 -1
- package/utils/index.d.ts +5 -0
- package/utils/index.js +53 -1
- package/utils/number.d.ts +1 -1
- package/utils/number.js +1 -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,9 @@ 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 _utils2 = require("@subwallet/extension-base/utils");
|
|
18
|
+
var _utils2 = require("@subwallet/extension-base/services/earning-service/utils");
|
|
19
|
+
var _types = require("@subwallet/extension-base/types");
|
|
20
|
+
var _utils3 = require("@subwallet/extension-base/utils");
|
|
19
21
|
var _util = require("@polkadot/util");
|
|
20
22
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
21
23
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -24,7 +26,7 @@ var _utilCrypto = require("@polkadot/util-crypto");
|
|
|
24
26
|
function subscribeAmplitudeStakingMetadata(chain, substrateApi, callback) {
|
|
25
27
|
return substrateApi.api.query.parachainStaking.round(_round => {
|
|
26
28
|
const roundObj = _round.toHuman();
|
|
27
|
-
const round = (0,
|
|
29
|
+
const round = (0, _utils3.parseRawNumber)(roundObj.current);
|
|
28
30
|
const maxDelegations = substrateApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
|
|
29
31
|
const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
|
|
30
32
|
const unstakingDelay = substrateApi.api.consts.parachainStaking.stakeDuration.toString();
|
|
@@ -48,7 +50,7 @@ function subscribeAmplitudeStakingMetadata(chain, substrateApi, callback) {
|
|
|
48
50
|
async function getAmplitudeStakingMetadata(chain, substrateApi) {
|
|
49
51
|
const chainApi = await substrateApi.isReady;
|
|
50
52
|
const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
|
|
51
|
-
const round = (0,
|
|
53
|
+
const round = (0, _utils3.parseRawNumber)(_round.current);
|
|
52
54
|
const maxDelegations = chainApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
|
|
53
55
|
const minDelegatorStake = chainApi.api.consts.parachainStaking.minDelegatorStake.toString();
|
|
54
56
|
const unstakingDelay = chainApi.api.consts.parachainStaking.stakeDuration.toString();
|
|
@@ -75,12 +77,12 @@ async function subscribeAmplitudeNominatorMetadata(chainInfo, address, substrate
|
|
|
75
77
|
let activeStake = '0';
|
|
76
78
|
if (delegatorState) {
|
|
77
79
|
// delegatorState can be null while unstaking all
|
|
78
|
-
const [identity] = await (0,
|
|
80
|
+
const [identity] = await (0, _utils2.parseIdentity)(substrateApi, delegatorState.owner);
|
|
79
81
|
activeStake = delegatorState.amount.toString();
|
|
80
82
|
const bnActiveStake = new _util.BN(activeStake);
|
|
81
|
-
let delegationStatus =
|
|
83
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
82
84
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegatorStake))) {
|
|
83
|
-
delegationStatus =
|
|
85
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
84
86
|
}
|
|
85
87
|
nominationList.push({
|
|
86
88
|
status: delegationStatus,
|
|
@@ -107,13 +109,13 @@ async function subscribeAmplitudeNominatorMetadata(chainInfo, address, substrate
|
|
|
107
109
|
const waitingTime = remainingBlock * blockDuration;
|
|
108
110
|
unstakingList.push({
|
|
109
111
|
chain: chainInfo.slug,
|
|
110
|
-
status: isClaimable ?
|
|
112
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
111
113
|
claimable: nearestUnstakingAmount.toString(),
|
|
112
114
|
waitingTime,
|
|
113
115
|
validatorAddress: (delegatorState === null || delegatorState === void 0 ? void 0 : delegatorState.owner) || undefined
|
|
114
116
|
});
|
|
115
117
|
}
|
|
116
|
-
const stakingStatus = (0, _utils.
|
|
118
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(new _util.BN(activeStake), nominationList);
|
|
117
119
|
return {
|
|
118
120
|
chain: chainInfo.slug,
|
|
119
121
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -145,7 +147,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
145
147
|
chain: chainInfo.slug,
|
|
146
148
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
147
149
|
address,
|
|
148
|
-
status:
|
|
150
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
149
151
|
activeStake: '0',
|
|
150
152
|
nominations: [],
|
|
151
153
|
unstakings: []
|
|
@@ -154,12 +156,12 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
154
156
|
let activeStake = '0';
|
|
155
157
|
if (delegatorState) {
|
|
156
158
|
// delegatorState can be null while unstaking all
|
|
157
|
-
const [identity] = await (0,
|
|
159
|
+
const [identity] = await (0, _utils2.parseIdentity)(substrateApi, delegatorState.owner);
|
|
158
160
|
activeStake = delegatorState.amount.toString();
|
|
159
161
|
const bnActiveStake = new _util.BN(activeStake);
|
|
160
|
-
let delegationStatus =
|
|
162
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
161
163
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegatorStake))) {
|
|
162
|
-
delegationStatus =
|
|
164
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
163
165
|
}
|
|
164
166
|
nominationList.push({
|
|
165
167
|
status: delegationStatus,
|
|
@@ -186,7 +188,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
186
188
|
const waitingTime = remainingBlock * blockDuration;
|
|
187
189
|
unstakingList.push({
|
|
188
190
|
chain,
|
|
189
|
-
status: isClaimable ?
|
|
191
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
190
192
|
claimable: nearestUnstakingAmount.toString(),
|
|
191
193
|
waitingTime,
|
|
192
194
|
validatorAddress: (delegatorState === null || delegatorState === void 0 ? void 0 : delegatorState.owner) || undefined
|
|
@@ -195,7 +197,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
195
197
|
if (nominationList.length === 0 && unstakingList.length === 0) {
|
|
196
198
|
return;
|
|
197
199
|
}
|
|
198
|
-
const stakingStatus = (0, _utils.
|
|
200
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(new _util.BN(activeStake), nominationList);
|
|
199
201
|
return {
|
|
200
202
|
chain,
|
|
201
203
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -245,7 +247,7 @@ async function getAmplitudeBondingExtrinsic(substrateApi, amount, selectedValida
|
|
|
245
247
|
const {
|
|
246
248
|
bondedValidators
|
|
247
249
|
} = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
|
|
248
|
-
if (!bondedValidators.includes((0,
|
|
250
|
+
if (!bondedValidators.includes((0, _utils3.reformatAddress)(selectedValidatorInfo.address, 0))) {
|
|
249
251
|
return chainApi.api.tx.parachainStaking.joinDelegators(selectedValidatorInfo.address, binaryAmount);
|
|
250
252
|
} else {
|
|
251
253
|
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;
|
|
109
111
|
const roundObj = _round.toHuman();
|
|
110
|
-
const round = (0,
|
|
112
|
+
const round = (0, _utils4.parseRawNumber)(roundObj.current);
|
|
111
113
|
const maxDelegations = (_substrateApi$api$con = substrateApi.api.consts) === null || _substrateApi$api$con === void 0 ? void 0 : (_substrateApi$api$con2 = _substrateApi$api$con.parachainStaking) === null || _substrateApi$api$con2 === void 0 ? void 0 : (_substrateApi$api$con3 = _substrateApi$api$con2.maxDelegationsPerDelegator) === null || _substrateApi$api$con3 === void 0 ? void 0 : _substrateApi$api$con3.toString();
|
|
112
114
|
const unstakingDelay = substrateApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
|
|
113
115
|
const unstakingPeriod = parseInt(unstakingDelay) * (_constants._STAKING_ERA_LENGTH_MAP[chain] || _constants._STAKING_ERA_LENGTH_MAP.default);
|
|
@@ -127,7 +129,7 @@ function subscribeParaChainStakingMetadata(chain, substrateApi, callback) {
|
|
|
127
129
|
async function getParaChainStakingMetadata(chain, substrateApi) {
|
|
128
130
|
const chainApi = await substrateApi.isReady;
|
|
129
131
|
const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
|
|
130
|
-
const round = (0,
|
|
132
|
+
const round = (0, _utils4.parseRawNumber)(_round.current);
|
|
131
133
|
const maxDelegations = chainApi.api.consts.parachainStaking.maxDelegationsPerDelegator.toString();
|
|
132
134
|
const unstakingDelay = chainApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
|
|
133
135
|
let _unvestedAllocation;
|
|
@@ -147,7 +149,7 @@ async function getParaChainStakingMetadata(chain, substrateApi) {
|
|
|
147
149
|
}
|
|
148
150
|
|
|
149
151
|
const inflationConfig = _inflation.toHuman();
|
|
150
|
-
const inflation = (0, _utils.getParaCurrentInflation)((0,
|
|
152
|
+
const inflation = (0, _utils.getParaCurrentInflation)((0, _utils4.parseRawNumber)(totalStake.toString()), inflationConfig);
|
|
151
153
|
const unstakingPeriod = parseInt(unstakingDelay) * _constants._STAKING_ERA_LENGTH_MAP[chain];
|
|
152
154
|
return {
|
|
153
155
|
chain,
|
|
@@ -170,17 +172,17 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
170
172
|
const roundInfo = _roundInfo.toPrimitive();
|
|
171
173
|
const currentRound = roundInfo.current;
|
|
172
174
|
await Promise.all(delegatorState.delegations.map(async delegation => {
|
|
173
|
-
const [_delegationScheduledRequests, [identity], _collatorInfo] = await Promise.all([substrateApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0,
|
|
175
|
+
const [_delegationScheduledRequests, [identity], _collatorInfo] = await Promise.all([substrateApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0, _utils3.parseIdentity)(substrateApi, delegation.owner), substrateApi.api.query.parachainStaking.candidateInfo(delegation.owner)]);
|
|
174
176
|
const collatorInfo = _collatorInfo.toPrimitive();
|
|
175
177
|
const minDelegation = collatorInfo === null || collatorInfo === void 0 ? void 0 : collatorInfo.lowestTopDelegationAmount.toString();
|
|
176
178
|
const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
|
|
177
179
|
let hasUnstaking = false;
|
|
178
|
-
let delegationStatus =
|
|
180
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
179
181
|
|
|
180
182
|
// parse unstaking info
|
|
181
183
|
if (delegationScheduledRequests) {
|
|
182
184
|
for (const scheduledRequest of delegationScheduledRequests) {
|
|
183
|
-
if ((0,
|
|
185
|
+
if ((0, _utils4.reformatAddress)(scheduledRequest.delegator, 0) === (0, _utils4.reformatAddress)(address, 0)) {
|
|
184
186
|
// add network prefix
|
|
185
187
|
const isClaimable = scheduledRequest.whenExecutable - currentRound < 0;
|
|
186
188
|
const remainingEra = scheduledRequest.whenExecutable - currentRound;
|
|
@@ -188,7 +190,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
188
190
|
const claimable = Object.values(scheduledRequest.action)[0];
|
|
189
191
|
unstakingMap[delegation.owner] = {
|
|
190
192
|
chain: chainInfo.slug,
|
|
191
|
-
status: isClaimable ?
|
|
193
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
192
194
|
validatorAddress: delegation.owner,
|
|
193
195
|
claimable: claimable.toString(),
|
|
194
196
|
waitingTime
|
|
@@ -203,7 +205,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
203
205
|
const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
|
|
204
206
|
const bnActiveStake = bnStake.sub(bnUnstakeBalance);
|
|
205
207
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegation))) {
|
|
206
|
-
delegationStatus =
|
|
208
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
207
209
|
}
|
|
208
210
|
bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
|
|
209
211
|
nominationList.push({
|
|
@@ -224,7 +226,7 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
|
|
|
224
226
|
// nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
|
|
225
227
|
// }));
|
|
226
228
|
|
|
227
|
-
const stakingStatus = (0, _utils.
|
|
229
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
228
230
|
return {
|
|
229
231
|
chain: chainInfo.slug,
|
|
230
232
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -254,7 +256,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
254
256
|
chain: chainInfo.slug,
|
|
255
257
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
256
258
|
address,
|
|
257
|
-
status:
|
|
259
|
+
status: _types.EarningStatus.NOT_STAKING,
|
|
258
260
|
activeStake: '0',
|
|
259
261
|
nominations: [],
|
|
260
262
|
unstakings: []
|
|
@@ -262,19 +264,19 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
262
264
|
}
|
|
263
265
|
let bnTotalActiveStake = _util.BN_ZERO;
|
|
264
266
|
await Promise.all(delegatorState.delegations.map(async delegation => {
|
|
265
|
-
const [_delegationScheduledRequests, [identity], _roundInfo, _collatorInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0,
|
|
267
|
+
const [_delegationScheduledRequests, [identity], _roundInfo, _collatorInfo] = await Promise.all([chainApi.api.query.parachainStaking.delegationScheduledRequests(delegation.owner), (0, _utils3.parseIdentity)(substrateApi, delegation.owner), chainApi.api.query.parachainStaking.round(), chainApi.api.query.parachainStaking.candidateInfo(delegation.owner)]);
|
|
266
268
|
const rawCollatorInfo = _collatorInfo.toHuman();
|
|
267
269
|
const minDelegation = (rawCollatorInfo === null || rawCollatorInfo === void 0 ? void 0 : rawCollatorInfo.lowestTopDelegationAmount).replaceAll(',', '');
|
|
268
270
|
const roundInfo = _roundInfo.toPrimitive();
|
|
269
271
|
const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
|
|
270
272
|
const currentRound = roundInfo.current;
|
|
271
273
|
let hasUnstaking = false;
|
|
272
|
-
let delegationStatus =
|
|
274
|
+
let delegationStatus = _types.EarningStatus.NOT_EARNING;
|
|
273
275
|
|
|
274
276
|
// parse unstaking info
|
|
275
277
|
if (delegationScheduledRequests) {
|
|
276
278
|
for (const scheduledRequest of delegationScheduledRequests) {
|
|
277
|
-
if ((0,
|
|
279
|
+
if ((0, _utils4.reformatAddress)(scheduledRequest.delegator, 0) === (0, _utils4.reformatAddress)(address, 0)) {
|
|
278
280
|
// add network prefix
|
|
279
281
|
const isClaimable = scheduledRequest.whenExecutable - currentRound < 0;
|
|
280
282
|
const remainingEra = scheduledRequest.whenExecutable - (currentRound + 1);
|
|
@@ -282,7 +284,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
282
284
|
const claimable = Object.values(scheduledRequest.action)[0];
|
|
283
285
|
unstakingMap[delegation.owner] = {
|
|
284
286
|
chain,
|
|
285
|
-
status: isClaimable ?
|
|
287
|
+
status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
|
|
286
288
|
validatorAddress: delegation.owner,
|
|
287
289
|
claimable: claimable.toString(),
|
|
288
290
|
waitingTime: waitingTime
|
|
@@ -297,7 +299,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
297
299
|
const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
|
|
298
300
|
const bnActiveStake = bnStake.sub(bnUnstakeBalance);
|
|
299
301
|
if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegation))) {
|
|
300
|
-
delegationStatus =
|
|
302
|
+
delegationStatus = _types.EarningStatus.EARNING_REWARD;
|
|
301
303
|
}
|
|
302
304
|
bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
|
|
303
305
|
nominationList.push({
|
|
@@ -314,7 +316,7 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
|
|
|
314
316
|
const collatorInfo = _collatorInfo.toPrimitive();
|
|
315
317
|
nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
|
|
316
318
|
}));
|
|
317
|
-
const stakingStatus = (0, _utils.
|
|
319
|
+
const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
|
|
318
320
|
return {
|
|
319
321
|
chain,
|
|
320
322
|
type: _KoniTypes.StakingType.NOMINATED,
|
|
@@ -357,7 +359,7 @@ async function getParachainCollatorsInfo(chain, substrateApi) {
|
|
|
357
359
|
}
|
|
358
360
|
const extraInfoMap = {};
|
|
359
361
|
await Promise.all(allCollators.map(async collator => {
|
|
360
|
-
const [_info, [identity, isReasonable]] = await Promise.all([apiProps.api.query.parachainStaking.candidateInfo(collator.address), (0,
|
|
362
|
+
const [_info, [identity, isReasonable]] = await Promise.all([apiProps.api.query.parachainStaking.candidateInfo(collator.address), (0, _utils3.parseIdentity)(apiProps, collator.address)]);
|
|
361
363
|
const rawInfo = _info.toHuman();
|
|
362
364
|
const active = (rawInfo === null || rawInfo === void 0 ? void 0 : rawInfo.status) === 'Active';
|
|
363
365
|
extraInfoMap[collator.address] = {
|
|
@@ -385,7 +387,7 @@ async function getParaBondingExtrinsic(chainInfo, substrateApi, amount, selected
|
|
|
385
387
|
bondedValidators,
|
|
386
388
|
nominationCount
|
|
387
389
|
} = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
|
|
388
|
-
const parsedSelectedCollatorAddress = (0,
|
|
390
|
+
const parsedSelectedCollatorAddress = (0, _utils4.reformatAddress)(selectedCollatorInfo.address, 0);
|
|
389
391
|
if (!bondedValidators.includes(parsedSelectedCollatorAddress)) {
|
|
390
392
|
return apiPromise.api.tx.parachainStaking.delegate(selectedCollatorInfo.address, binaryAmount, new _util.BN(selectedCollatorInfo.nominatorCount), nominationCount);
|
|
391
393
|
} else {
|