@subwallet/extension-base 1.1.28-0 → 1.1.28-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 +92 -68
- package/background/KoniTypes.js +16 -13
- package/background/errors/TransactionError.js +9 -0
- package/cjs/background/KoniTypes.js +17 -16
- package/cjs/background/errors/TransactionError.js +9 -0
- package/cjs/constants/index.js +9 -3
- 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 +2 -0
- package/cjs/koni/background/handlers/Extension.js +323 -69
- package/cjs/koni/background/handlers/State.js +57 -4
- package/cjs/koni/background/handlers/index.js +4 -2
- package/cjs/koni/background/subscription.js +89 -19
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/campaign-service/index.js +9 -6
- package/cjs/services/chain-service/constants.js +2 -16
- 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 +202 -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 +168 -0
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +196 -0
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +39 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +257 -0
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +180 -0
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +373 -0
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +359 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +426 -0
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +137 -0
- package/cjs/services/earning-service/handlers/native-staking/base.js +109 -0
- package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +361 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +512 -0
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +501 -0
- package/cjs/services/earning-service/handlers/special.js +387 -0
- package/cjs/services/earning-service/service.js +327 -0
- package/cjs/services/earning-service/utils/index.js +111 -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/index.js +4 -0
- 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 +47 -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/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 +180 -74
- 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 +37 -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 +34 -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/object.js +12 -0
- package/constants/index.d.ts +2 -0
- package/constants/index.js +2 -0
- 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.js +2 -0
- package/koni/background/handlers/Extension.d.ts +14 -1
- package/koni/background/handlers/Extension.js +282 -30
- package/koni/background/handlers/State.d.ts +18 -2
- package/koni/background/handlers/State.js +56 -4
- package/koni/background/handlers/index.js +4 -2
- package/koni/background/subscription.d.ts +5 -1
- package/koni/background/subscription.js +91 -21
- package/package.json +311 -8
- package/packageInfo.js +1 -1
- 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/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 +105 -0
- package/services/earning-service/handlers/base.js +195 -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 +22 -0
- package/services/earning-service/handlers/lending/interlay.js +160 -0
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
- package/services/earning-service/handlers/liquid-staking/acala.js +188 -0
- package/services/earning-service/handlers/liquid-staking/base.d.ts +8 -0
- package/services/earning-service/handlers/liquid-staking/base.js +31 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +44 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.js +246 -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 +27 -0
- package/services/earning-service/handlers/liquid-staking/parallel.js +172 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +36 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +363 -0
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
- package/services/earning-service/handlers/native-staking/amplitude.js +350 -0
- package/services/earning-service/handlers/native-staking/astar.d.ts +18 -0
- package/services/earning-service/handlers/native-staking/astar.js +416 -0
- package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
- package/services/earning-service/handlers/native-staking/base-para.js +129 -0
- package/services/earning-service/handlers/native-staking/base.d.ts +19 -0
- package/services/earning-service/handlers/native-staking/base.js +101 -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 +353 -0
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +503 -0
- package/services/earning-service/handlers/nomination-pool/index.d.ts +33 -0
- package/services/earning-service/handlers/nomination-pool/index.js +492 -0
- package/services/earning-service/handlers/special.d.ts +56 -0
- package/services/earning-service/handlers/special.js +379 -0
- package/services/earning-service/service.d.ts +36 -0
- package/services/earning-service/service.js +320 -0
- package/services/earning-service/utils/index.d.ts +14 -0
- package/services/earning-service/utils/index.js +100 -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/index.js +4 -0
- 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 +17 -1
- package/services/storage-service/DatabaseService.js +47 -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 +2 -2
- 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 +178 -72
- 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 +75 -0
- package/types/yield/actions/join/step.js +34 -0
- package/types/yield/actions/join/submit.d.ts +53 -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 +60 -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 +112 -0
- package/types/yield/info/account/info.js +1 -0
- package/types/yield/info/account/reward.d.ts +41 -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 +28 -0
- package/types/yield/info/base.js +28 -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 +190 -0
- package/types/yield/info/chain/info.js +1 -0
- package/types/yield/info/chain/target.d.ts +33 -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/object.d.ts +1 -0
- package/utils/object.js +6 -0
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.parseLiquidStakingEvents = parseLiquidStakingEvents;
|
|
7
|
+
exports.parseLiquidStakingFastUnstakeEvents = parseLiquidStakingFastUnstakeEvents;
|
|
6
8
|
exports.parseTransferEventLogs = parseTransferEventLogs;
|
|
7
9
|
exports.parseXcmEventLogs = parseXcmEventLogs;
|
|
10
|
+
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
8
11
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
9
12
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
10
13
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -72,4 +75,59 @@ function parseTransferEventLogs(historyItem, eventLogs, chain, sendingTokenInfo,
|
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
77
|
}
|
|
78
|
+
}
|
|
79
|
+
function parseLiquidStakingEvents(historyItem, eventLogs, inputTokenInfo, chainInfo, feePaidWithInputAsset, extrinsicType) {
|
|
80
|
+
if (feePaidWithInputAsset) {
|
|
81
|
+
historyItem.fee = {
|
|
82
|
+
value: '0',
|
|
83
|
+
// TODO
|
|
84
|
+
symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
|
|
85
|
+
decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
|
|
86
|
+
};
|
|
87
|
+
} else {
|
|
88
|
+
for (let index = 0; index < eventLogs.length; index++) {
|
|
89
|
+
const record = eventLogs[index];
|
|
90
|
+
const {
|
|
91
|
+
decimals: nativeDecimals,
|
|
92
|
+
symbol: nativeSymbol
|
|
93
|
+
} = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
|
|
94
|
+
const section = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
|
|
95
|
+
const eventMethod = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
|
|
96
|
+
if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
|
|
97
|
+
var _record$event$data$9;
|
|
98
|
+
if ((_record$event$data$9 = record.event.data[2]) !== null && _record$event$data$9 !== void 0 && _record$event$data$9.toString()) {
|
|
99
|
+
var _record$event$data$10;
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
101
|
+
historyItem.fee = {
|
|
102
|
+
value: ((_record$event$data$10 = record.event.data[2]) === null || _record$event$data$10 === void 0 ? void 0 : _record$event$data$10.toString()) || '0',
|
|
103
|
+
symbol: nativeSymbol,
|
|
104
|
+
decimals: nativeDecimals
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function parseLiquidStakingFastUnstakeEvents(historyItem, eventLogs, chainInfo, extrinsicType) {
|
|
112
|
+
for (let index = 0; index < eventLogs.length; index++) {
|
|
113
|
+
const record = eventLogs[index];
|
|
114
|
+
const {
|
|
115
|
+
decimals: nativeDecimals,
|
|
116
|
+
symbol: nativeSymbol
|
|
117
|
+
} = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
|
|
118
|
+
const section = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
|
|
119
|
+
const eventMethod = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
|
|
120
|
+
if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
|
|
121
|
+
var _record$event$data$11;
|
|
122
|
+
if ((_record$event$data$11 = record.event.data[2]) !== null && _record$event$data$11 !== void 0 && _record$event$data$11.toString()) {
|
|
123
|
+
var _record$event$data$12;
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
125
|
+
historyItem.fee = {
|
|
126
|
+
value: ((_record$event$data$12 = record.event.data[2]) === null || _record$event$data$12 === void 0 ? void 0 : _record$event$data$12.toString()) || '0',
|
|
127
|
+
symbol: nativeSymbol,
|
|
128
|
+
decimals: nativeDecimals
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
75
133
|
}
|
|
@@ -40,7 +40,7 @@ const typeName = type => {
|
|
|
40
40
|
case _KoniTypes.ExtrinsicType.STAKING_BOND:
|
|
41
41
|
return 'Bond';
|
|
42
42
|
case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
|
|
43
|
-
return '
|
|
43
|
+
return 'Unstake';
|
|
44
44
|
case _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD:
|
|
45
45
|
return 'Claim reward';
|
|
46
46
|
case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
|
|
@@ -55,6 +55,8 @@ const typeName = type => {
|
|
|
55
55
|
return 'Cancel compounding';
|
|
56
56
|
case _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW:
|
|
57
57
|
return 'Withdraw pool';
|
|
58
|
+
case _KoniTypes.ExtrinsicType.JOIN_YIELD_POOL:
|
|
59
|
+
return 'Start earning';
|
|
58
60
|
case _KoniTypes.ExtrinsicType.UNKNOWN:
|
|
59
61
|
default:
|
|
60
62
|
return 'unknown';
|
|
@@ -10,14 +10,14 @@ var _TransactionError = require("@subwallet/extension-base/background/errors/Tra
|
|
|
10
10
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
11
11
|
var _TransactionWarning = require("@subwallet/extension-base/background/warnings/TransactionWarning");
|
|
12
12
|
var _constants = require("@subwallet/extension-base/constants");
|
|
13
|
-
var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
|
|
14
13
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
15
|
-
var
|
|
16
|
-
var
|
|
14
|
+
var _constants2 = require("@subwallet/extension-base/services/request-service/constants");
|
|
15
|
+
var _constants3 = require("@subwallet/extension-base/services/transaction-service/constants");
|
|
17
16
|
var _eventParser = require("@subwallet/extension-base/services/transaction-service/event-parser");
|
|
18
17
|
var _helpers = require("@subwallet/extension-base/services/transaction-service/helpers");
|
|
19
18
|
var _utils2 = require("@subwallet/extension-base/services/transaction-service/utils");
|
|
20
19
|
var _helpers2 = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
|
|
20
|
+
var _types = require("@subwallet/extension-base/types");
|
|
21
21
|
var _utils3 = require("@subwallet/extension-base/utils");
|
|
22
22
|
var _eth = require("@subwallet/extension-base/utils/eth");
|
|
23
23
|
var _mergeTransactionAndSignature = require("@subwallet/extension-base/utils/eth/mergeTransactionAndSignature");
|
|
@@ -30,6 +30,7 @@ var _eventemitter = _interopRequireDefault(require("eventemitter3"));
|
|
|
30
30
|
var _i18next = require("i18next");
|
|
31
31
|
var _rxjs = require("rxjs");
|
|
32
32
|
var _util = require("@polkadot/util");
|
|
33
|
+
var _constants4 = require("../chain-service/constants");
|
|
33
34
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
34
35
|
// SPDX-License-Identifier: Apache-2.0
|
|
35
36
|
|
|
@@ -39,14 +40,8 @@ class TransactionService {
|
|
|
39
40
|
get transactions() {
|
|
40
41
|
return this.transactionSubject.getValue();
|
|
41
42
|
}
|
|
42
|
-
constructor(
|
|
43
|
-
this.
|
|
44
|
-
this.eventService = eventService;
|
|
45
|
-
this.requestService = requestService;
|
|
46
|
-
this.balanceService = balanceService;
|
|
47
|
-
this.historyService = historyService;
|
|
48
|
-
this.notificationService = notificationService;
|
|
49
|
-
this.databaseService = databaseService;
|
|
43
|
+
constructor(state) {
|
|
44
|
+
this.state = state;
|
|
50
45
|
}
|
|
51
46
|
get allTransactions() {
|
|
52
47
|
return Object.values(this.transactions);
|
|
@@ -103,7 +98,7 @@ class TransactionService {
|
|
|
103
98
|
decimals: 0,
|
|
104
99
|
value: ''
|
|
105
100
|
};
|
|
106
|
-
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
101
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(chain);
|
|
107
102
|
if (!chainInfo) {
|
|
108
103
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('Cannot find network')));
|
|
109
104
|
} else {
|
|
@@ -118,7 +113,7 @@ class TransactionService {
|
|
|
118
113
|
if ((0, _helpers.isSubstrateTransaction)(transaction)) {
|
|
119
114
|
estimateFee.value = (await transaction.paymentInfo(address)).partialFee.toString();
|
|
120
115
|
} else {
|
|
121
|
-
const web3 = this.chainService.getEvmApi(chain);
|
|
116
|
+
const web3 = this.state.chainService.getEvmApi(chain);
|
|
122
117
|
if (!web3) {
|
|
123
118
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.CHAIN_DISCONNECTED, undefined));
|
|
124
119
|
} else {
|
|
@@ -152,32 +147,35 @@ class TransactionService {
|
|
|
152
147
|
|
|
153
148
|
// Balance
|
|
154
149
|
const transferNative = validationResponse.transferNativeAmount || '0';
|
|
155
|
-
const nativeTokenInfo = this.chainService.getNativeTokenInfo(chain);
|
|
156
|
-
const balance = await this.balanceService.getTokenFreeBalance(address, chain, nativeTokenInfo.slug);
|
|
150
|
+
const nativeTokenInfo = this.state.chainService.getNativeTokenInfo(chain);
|
|
151
|
+
const balance = await this.state.balanceService.getTokenFreeBalance(address, chain, nativeTokenInfo.slug);
|
|
157
152
|
const existentialDeposit = nativeTokenInfo.minAmount || '0';
|
|
158
153
|
const feeNum = parseInt(estimateFee.value);
|
|
159
154
|
const balanceNum = parseInt(balance.value);
|
|
160
155
|
const edNum = parseInt(existentialDeposit);
|
|
161
156
|
const transferNativeNum = parseInt(transferNative);
|
|
162
|
-
if (!
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (transferNativeNum + feeNum > balanceNum) {
|
|
166
|
-
if (!isTransferAll) {
|
|
157
|
+
if (!validationInput.skipFeeValidation) {
|
|
158
|
+
// TODO
|
|
159
|
+
if (!new _bignumber.default(balance.value).gt(0)) {
|
|
167
160
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
161
|
+
}
|
|
162
|
+
if (transferNativeNum + feeNum > balanceNum) {
|
|
163
|
+
if (!isTransferAll) {
|
|
171
164
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
165
|
+
} else {
|
|
166
|
+
if ([..._constants4._TRANSFER_CHAIN_GROUP.acala, ..._constants4._TRANSFER_CHAIN_GROUP.genshiro, ..._constants4._TRANSFER_CHAIN_GROUP.bitcountry, ..._constants4._TRANSFER_CHAIN_GROUP.statemine].includes(chain)) {
|
|
167
|
+
// Chain not have transfer all function
|
|
168
|
+
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
169
|
+
}
|
|
172
170
|
}
|
|
173
171
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
172
|
+
if (!isTransferAll) {
|
|
173
|
+
if (balanceNum - (transferNativeNum + feeNum) < edNum) {
|
|
174
|
+
if (edAsWarning) {
|
|
175
|
+
validationResponse.warnings.push(new _TransactionWarning.TransactionWarning(_KoniTypes.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
|
|
176
|
+
} else {
|
|
177
|
+
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
|
|
178
|
+
}
|
|
181
179
|
}
|
|
182
180
|
}
|
|
183
181
|
}
|
|
@@ -198,7 +196,7 @@ class TransactionService {
|
|
|
198
196
|
updatedAt: new Date().getTime(),
|
|
199
197
|
errors: transaction.errors || [],
|
|
200
198
|
warnings: transaction.warnings || [],
|
|
201
|
-
url: transaction.url ||
|
|
199
|
+
url: transaction.url || _constants2.EXTENSION_REQUEST_URL,
|
|
202
200
|
status: _KoniTypes.ExtrinsicStatus.QUEUED,
|
|
203
201
|
isInternal,
|
|
204
202
|
id: transactionId,
|
|
@@ -244,12 +242,21 @@ class TransactionService {
|
|
|
244
242
|
}
|
|
245
243
|
validatedTransaction.warnings = [];
|
|
246
244
|
const emitter = await this.addTransaction(validatedTransaction);
|
|
247
|
-
await new Promise(resolve => {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
245
|
+
await new Promise((resolve, reject) => {
|
|
246
|
+
// TODO
|
|
247
|
+
if (transaction.resolveOnDone) {
|
|
248
|
+
emitter.on('success', data => {
|
|
249
|
+
validatedTransaction.id = data.id;
|
|
250
|
+
validatedTransaction.extrinsicHash = data.extrinsicHash;
|
|
251
|
+
resolve();
|
|
252
|
+
});
|
|
253
|
+
} else {
|
|
254
|
+
emitter.on('signed', data => {
|
|
255
|
+
validatedTransaction.id = data.id;
|
|
256
|
+
validatedTransaction.extrinsicHash = data.extrinsicHash;
|
|
257
|
+
resolve();
|
|
258
|
+
});
|
|
259
|
+
}
|
|
253
260
|
emitter.on('error', data => {
|
|
254
261
|
if (data.errors.length > 0) {
|
|
255
262
|
validatedTransaction.errors.push(...data.errors);
|
|
@@ -315,7 +322,7 @@ class TransactionService {
|
|
|
315
322
|
}
|
|
316
323
|
getTransactionLink(id) {
|
|
317
324
|
const transaction = this.getTransaction(id);
|
|
318
|
-
const chainInfo = this.chainService.getChainInfoByKey(transaction.chain);
|
|
325
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
|
|
319
326
|
return (0, _utils2.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
|
|
320
327
|
}
|
|
321
328
|
transactionToHistories(id, startBlock, nonce, eventLogs) {
|
|
@@ -343,7 +350,7 @@ class TransactionService {
|
|
|
343
350
|
nonce: nonce !== null && nonce !== void 0 ? nonce : 0,
|
|
344
351
|
startBlock: startBlock || 0
|
|
345
352
|
};
|
|
346
|
-
const chainInfo = this.chainService.getChainInfoByKey(transaction.chain);
|
|
353
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
|
|
347
354
|
const nativeAsset = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
|
|
348
355
|
const baseNativeAmount = {
|
|
349
356
|
value: '0',
|
|
@@ -357,7 +364,7 @@ class TransactionService {
|
|
|
357
364
|
{
|
|
358
365
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
359
366
|
historyItem.to = inputData.to;
|
|
360
|
-
const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
367
|
+
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
361
368
|
historyItem.amount = {
|
|
362
369
|
value: inputData.value || '0',
|
|
363
370
|
decimals: sendingTokenInfo.decimals || 0,
|
|
@@ -370,7 +377,7 @@ class TransactionService {
|
|
|
370
377
|
{
|
|
371
378
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
372
379
|
historyItem.to = inputData.to;
|
|
373
|
-
const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
380
|
+
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
374
381
|
historyItem.amount = {
|
|
375
382
|
value: inputData.value || '0',
|
|
376
383
|
decimals: sendingTokenInfo.decimals || 0,
|
|
@@ -383,7 +390,7 @@ class TransactionService {
|
|
|
383
390
|
{
|
|
384
391
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
385
392
|
historyItem.to = inputData.to;
|
|
386
|
-
const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
393
|
+
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
387
394
|
historyItem.amount = {
|
|
388
395
|
value: inputData.value || '0',
|
|
389
396
|
decimals: sendingTokenInfo.decimals || 0,
|
|
@@ -432,17 +439,29 @@ class TransactionService {
|
|
|
432
439
|
case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
|
|
433
440
|
{
|
|
434
441
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
442
|
+
if (data.isLiquidStaking && data.derivativeTokenInfo && data.exchangeRate && data.inputTokenInfo) {
|
|
443
|
+
historyItem.amount = {
|
|
444
|
+
decimals: (0, _utils._getAssetDecimals)(data.derivativeTokenInfo),
|
|
445
|
+
symbol: (0, _utils._getAssetSymbol)(data.derivativeTokenInfo),
|
|
446
|
+
value: data.amount
|
|
447
|
+
};
|
|
448
|
+
historyItem.additionalInfo = {
|
|
449
|
+
inputTokenSlug: data.inputTokenInfo.slug,
|
|
450
|
+
exchangeRate: data.exchangeRate
|
|
451
|
+
};
|
|
452
|
+
} else {
|
|
453
|
+
historyItem.to = data.validatorAddress || '';
|
|
454
|
+
historyItem.amount = {
|
|
455
|
+
...baseNativeAmount,
|
|
456
|
+
value: data.amount || '0'
|
|
457
|
+
};
|
|
458
|
+
}
|
|
440
459
|
}
|
|
441
460
|
break;
|
|
442
461
|
case _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL:
|
|
443
462
|
{
|
|
444
463
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
445
|
-
historyItem.to = data.
|
|
464
|
+
historyItem.to = data.address || '';
|
|
446
465
|
historyItem.amount = {
|
|
447
466
|
...baseNativeAmount,
|
|
448
467
|
value: data.amount || '0'
|
|
@@ -461,7 +480,7 @@ class TransactionService {
|
|
|
461
480
|
case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
|
|
462
481
|
{
|
|
463
482
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
464
|
-
historyItem.to = data.validatorAddress || '';
|
|
483
|
+
historyItem.to = data.unstakingInfo.validatorAddress || '';
|
|
465
484
|
historyItem.amount = {
|
|
466
485
|
...baseNativeAmount,
|
|
467
486
|
value: data.unstakingInfo.claimable || '0'
|
|
@@ -486,6 +505,68 @@ class TransactionService {
|
|
|
486
505
|
historyItem.to = (data === null || data === void 0 ? void 0 : data.to) || '';
|
|
487
506
|
break;
|
|
488
507
|
}
|
|
508
|
+
case _KoniTypes.ExtrinsicType.MINT_STDOT:
|
|
509
|
+
case _KoniTypes.ExtrinsicType.MINT_QDOT:
|
|
510
|
+
case _KoniTypes.ExtrinsicType.MINT_LDOT:
|
|
511
|
+
case _KoniTypes.ExtrinsicType.MINT_SDOT:
|
|
512
|
+
|
|
513
|
+
// eslint-disable-next-line no-fallthrough
|
|
514
|
+
case _KoniTypes.ExtrinsicType.MINT_VDOT:
|
|
515
|
+
{
|
|
516
|
+
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
517
|
+
const params = data.data;
|
|
518
|
+
const inputTokenInfo = this.state.chainService.getAssetBySlug(params.inputTokenSlug);
|
|
519
|
+
const isFeePaidWithInputAsset = params.feeTokenSlug === params.inputTokenSlug;
|
|
520
|
+
historyItem.amount = {
|
|
521
|
+
value: params.amount,
|
|
522
|
+
symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
|
|
523
|
+
decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
|
|
524
|
+
};
|
|
525
|
+
historyItem.additionalInfo = {
|
|
526
|
+
derivativeTokenSlug: params.derivativeTokenSlug,
|
|
527
|
+
exchangeRate: params.exchangeRate
|
|
528
|
+
};
|
|
529
|
+
eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingEvents)(historyItem, eventLogs, inputTokenInfo, chainInfo, isFeePaidWithInputAsset, extrinsicType);
|
|
530
|
+
break;
|
|
531
|
+
}
|
|
532
|
+
case _KoniTypes.ExtrinsicType.REDEEM_QDOT:
|
|
533
|
+
{
|
|
534
|
+
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
535
|
+
const yieldPoolInfo = data.yieldPoolInfo;
|
|
536
|
+
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
537
|
+
const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
|
|
538
|
+
const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
|
|
539
|
+
historyItem.amount = {
|
|
540
|
+
value: data.amount,
|
|
541
|
+
symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
|
|
542
|
+
decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
|
|
543
|
+
};
|
|
544
|
+
eventLogs && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
|
|
545
|
+
}
|
|
546
|
+
break;
|
|
547
|
+
}
|
|
548
|
+
case _KoniTypes.ExtrinsicType.REDEEM_STDOT:
|
|
549
|
+
case _KoniTypes.ExtrinsicType.REDEEM_LDOT:
|
|
550
|
+
case _KoniTypes.ExtrinsicType.REDEEM_SDOT:
|
|
551
|
+
|
|
552
|
+
// eslint-disable-next-line no-fallthrough
|
|
553
|
+
case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
|
|
554
|
+
{
|
|
555
|
+
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
556
|
+
const yieldPoolInfo = data.yieldPoolInfo;
|
|
557
|
+
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
558
|
+
const derivativeTokenSlug = yieldPoolInfo.metadata.derivativeAssets[0];
|
|
559
|
+
const derivativeTokenInfo = this.state.chainService.getAssetBySlug(derivativeTokenSlug);
|
|
560
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(data.yieldPoolInfo.chain);
|
|
561
|
+
historyItem.amount = {
|
|
562
|
+
value: data.amount,
|
|
563
|
+
symbol: (0, _utils._getAssetSymbol)(derivativeTokenInfo),
|
|
564
|
+
decimals: (0, _utils._getAssetDecimals)(derivativeTokenInfo)
|
|
565
|
+
};
|
|
566
|
+
eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
|
|
567
|
+
}
|
|
568
|
+
break;
|
|
569
|
+
}
|
|
489
570
|
case _KoniTypes.ExtrinsicType.UNKNOWN:
|
|
490
571
|
break;
|
|
491
572
|
}
|
|
@@ -533,7 +614,7 @@ class TransactionService {
|
|
|
533
614
|
});
|
|
534
615
|
|
|
535
616
|
// Create Input History Transaction History
|
|
536
|
-
this.historyService.insertHistories(this.transactionToHistories(id, startBlock, nonce)).catch(console.error);
|
|
617
|
+
this.state.historyService.insertHistories(this.transactionToHistories(id, startBlock, nonce)).catch(console.error);
|
|
537
618
|
console.debug(`Transaction "${id}" is sent`);
|
|
538
619
|
}
|
|
539
620
|
onHasTransactionHash(_ref3) {
|
|
@@ -551,8 +632,12 @@ class TransactionService {
|
|
|
551
632
|
this.updateTransaction(id, updateData);
|
|
552
633
|
|
|
553
634
|
// In this case transaction id is the same as extrinsic hash and will change after below update
|
|
554
|
-
this.historyService.updateHistoryByExtrinsicHash(id, updateData).catch(console.error);
|
|
635
|
+
this.state.historyService.updateHistoryByExtrinsicHash(id, updateData).catch(console.error);
|
|
555
636
|
console.debug(`Transaction "${id}" is submitted with hash ${extrinsicHash || ''}`);
|
|
637
|
+
const transaction = this.getTransaction(id);
|
|
638
|
+
if ([_KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.JOIN_YIELD_POOL, _KoniTypes.ExtrinsicType.MINT_LDOT, _KoniTypes.ExtrinsicType.MINT_QDOT, _KoniTypes.ExtrinsicType.MINT_SDOT, _KoniTypes.ExtrinsicType.MINT_VDOT].includes(transaction.extrinsicType)) {
|
|
639
|
+
this.handlePostEarningTransaction(id);
|
|
640
|
+
}
|
|
556
641
|
}
|
|
557
642
|
handlePostProcessing(id) {
|
|
558
643
|
// must be done after success/failure to make sure the transaction is finalized
|
|
@@ -561,15 +646,15 @@ class TransactionService {
|
|
|
561
646
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
562
647
|
try {
|
|
563
648
|
const sender = _uiKeyring.default.getPair(inputData.senderAddress);
|
|
564
|
-
sender && this.
|
|
565
|
-
this.eventService.emit('transaction.transferNft', undefined);
|
|
649
|
+
sender && this.state.dbService.handleNftTransfer(transaction.chain, [sender.address, _constants.ALL_ACCOUNT_KEY], inputData.nftItem).then(() => {
|
|
650
|
+
this.state.eventService.emit('transaction.transferNft', undefined);
|
|
566
651
|
}).catch(console.error);
|
|
567
652
|
} catch (e) {
|
|
568
653
|
console.error(e);
|
|
569
654
|
}
|
|
570
655
|
try {
|
|
571
656
|
const recipient = _uiKeyring.default.getPair(inputData.recipientAddress);
|
|
572
|
-
recipient && this.
|
|
657
|
+
recipient && this.state.dbService.addNft(recipient.address, {
|
|
573
658
|
...inputData.nftItem,
|
|
574
659
|
owner: recipient.address
|
|
575
660
|
}).catch(console.error);
|
|
@@ -577,7 +662,7 @@ class TransactionService {
|
|
|
577
662
|
console.error(e);
|
|
578
663
|
}
|
|
579
664
|
} else if ([_KoniTypes.ExtrinsicType.STAKING_BOND, _KoniTypes.ExtrinsicType.STAKING_UNBOND, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD, _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL].includes(transaction.extrinsicType)) {
|
|
580
|
-
this.eventService.emit('transaction.submitStaking', transaction.chain);
|
|
665
|
+
this.state.eventService.emit('transaction.submitStaking', transaction.chain);
|
|
581
666
|
}
|
|
582
667
|
}
|
|
583
668
|
onSuccess(_ref4) {
|
|
@@ -594,14 +679,14 @@ class TransactionService {
|
|
|
594
679
|
});
|
|
595
680
|
|
|
596
681
|
// Write success transaction history
|
|
597
|
-
this.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
|
|
682
|
+
this.state.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
|
|
598
683
|
extrinsicHash,
|
|
599
684
|
status: _KoniTypes.ExtrinsicStatus.SUCCESS,
|
|
600
685
|
blockNumber: blockNumber || 0,
|
|
601
686
|
blockHash: blockHash || ''
|
|
602
687
|
}).catch(console.error);
|
|
603
|
-
const info = (0, _util.isHex)(extrinsicHash) ? extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.chainService.getChainInfoMap());
|
|
604
|
-
this.notificationService.notify({
|
|
688
|
+
const info = (0, _util.isHex)(extrinsicHash) ? extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.state.chainService.getChainInfoMap());
|
|
689
|
+
this.state.notificationService.notify({
|
|
605
690
|
type: _KoniTypes.NotificationType.SUCCESS,
|
|
606
691
|
title: (0, _i18next.t)('Transaction completed'),
|
|
607
692
|
message: (0, _i18next.t)('Transaction {{info}} completed', {
|
|
@@ -614,7 +699,7 @@ class TransactionService {
|
|
|
614
699
|
},
|
|
615
700
|
notifyViaBrowser: true
|
|
616
701
|
});
|
|
617
|
-
this.eventService.emit('transaction.done', transaction);
|
|
702
|
+
this.state.eventService.emit('transaction.done', transaction);
|
|
618
703
|
}
|
|
619
704
|
onFailed(_ref5) {
|
|
620
705
|
let {
|
|
@@ -634,14 +719,14 @@ class TransactionService {
|
|
|
634
719
|
});
|
|
635
720
|
|
|
636
721
|
// Write failed transaction history
|
|
637
|
-
this.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
|
|
722
|
+
this.state.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
|
|
638
723
|
extrinsicHash: extrinsicHash || transaction.extrinsicHash,
|
|
639
724
|
status: nextStatus,
|
|
640
725
|
blockNumber: blockNumber || 0,
|
|
641
726
|
blockHash: blockHash || ''
|
|
642
727
|
}).catch(console.error);
|
|
643
|
-
const info = (0, _util.isHex)(transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash) ? transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.chainService.getChainInfoMap());
|
|
644
|
-
this.notificationService.notify({
|
|
728
|
+
const info = (0, _util.isHex)(transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash) ? transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.state.chainService.getChainInfoMap());
|
|
729
|
+
this.state.notificationService.notify({
|
|
645
730
|
type: _KoniTypes.NotificationType.ERROR,
|
|
646
731
|
title: (0, _i18next.t)('Transaction failed'),
|
|
647
732
|
message: (0, _i18next.t)('Transaction {{info}} failed', {
|
|
@@ -655,11 +740,11 @@ class TransactionService {
|
|
|
655
740
|
notifyViaBrowser: true
|
|
656
741
|
});
|
|
657
742
|
}
|
|
658
|
-
this.eventService.emit('transaction.failed', transaction);
|
|
743
|
+
this.state.eventService.emit('transaction.failed', transaction);
|
|
659
744
|
}
|
|
660
745
|
generateHashPayload(chain, transaction) {
|
|
661
746
|
var _transaction$nonce;
|
|
662
|
-
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
747
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(chain);
|
|
663
748
|
const txObject = {
|
|
664
749
|
nonce: (_transaction$nonce = transaction.nonce) !== null && _transaction$nonce !== void 0 ? _transaction$nonce : 0,
|
|
665
750
|
gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0, _eth.anyNumberToBN)(transaction.gasPrice).toString(16)),
|
|
@@ -681,8 +766,8 @@ class TransactionService {
|
|
|
681
766
|
url
|
|
682
767
|
} = _ref6;
|
|
683
768
|
const payload = transaction;
|
|
684
|
-
const evmApi = this.chainService.getEvmApi(chain);
|
|
685
|
-
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
769
|
+
const evmApi = this.state.chainService.getEvmApi(chain);
|
|
770
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(chain);
|
|
686
771
|
const accountPair = _uiKeyring.default.getPair(address);
|
|
687
772
|
const account = {
|
|
688
773
|
address,
|
|
@@ -712,7 +797,7 @@ class TransactionService {
|
|
|
712
797
|
|
|
713
798
|
// Set unique nonce to avoid transaction errors
|
|
714
799
|
if (!payload.nonce) {
|
|
715
|
-
const evmApi = this.chainService.getEvmApi(chain);
|
|
800
|
+
const evmApi = this.state.chainService.getEvmApi(chain);
|
|
716
801
|
payload.nonce = await evmApi.api.eth.getTransactionCount(address);
|
|
717
802
|
}
|
|
718
803
|
if (!payload.chainId) {
|
|
@@ -747,7 +832,7 @@ class TransactionService {
|
|
|
747
832
|
extrinsicHash: id
|
|
748
833
|
};
|
|
749
834
|
if (isInjected) {
|
|
750
|
-
this.requestService.addConfirmation(id, url ||
|
|
835
|
+
this.state.requestService.addConfirmation(id, url || _constants2.EXTENSION_REQUEST_URL, 'evmWatchTransactionRequest', payload, {}).then(async _ref7 => {
|
|
751
836
|
let {
|
|
752
837
|
isApproved,
|
|
753
838
|
payload
|
|
@@ -756,7 +841,7 @@ class TransactionService {
|
|
|
756
841
|
if (!payload) {
|
|
757
842
|
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.UNAUTHORIZED, 'Bad signature');
|
|
758
843
|
}
|
|
759
|
-
const web3Api = this.chainService.getEvmApi(chain).api;
|
|
844
|
+
const web3Api = this.state.chainService.getEvmApi(chain).api;
|
|
760
845
|
|
|
761
846
|
// Emit signed event
|
|
762
847
|
emitter.emit('signed', eventData);
|
|
@@ -812,7 +897,7 @@ class TransactionService {
|
|
|
812
897
|
emitter.emit('error', eventData);
|
|
813
898
|
});
|
|
814
899
|
} else {
|
|
815
|
-
this.requestService.addConfirmation(id, url ||
|
|
900
|
+
this.state.requestService.addConfirmation(id, url || _constants2.EXTENSION_REQUEST_URL, 'evmSendTransactionRequest', payload, {}).then(async _ref8 => {
|
|
816
901
|
let {
|
|
817
902
|
isApproved,
|
|
818
903
|
payload
|
|
@@ -822,7 +907,7 @@ class TransactionService {
|
|
|
822
907
|
if (!payload) {
|
|
823
908
|
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.UNAUTHORIZED, (0, _i18next.t)('Failed to sign'));
|
|
824
909
|
}
|
|
825
|
-
const web3Api = this.chainService.getEvmApi(chain).api;
|
|
910
|
+
const web3Api = this.state.chainService.getEvmApi(chain).api;
|
|
826
911
|
if (!isExternal) {
|
|
827
912
|
signedTransaction = payload;
|
|
828
913
|
} else {
|
|
@@ -890,7 +975,7 @@ class TransactionService {
|
|
|
890
975
|
transaction.signAsync(address, {
|
|
891
976
|
signer: {
|
|
892
977
|
signPayload: async payload => {
|
|
893
|
-
const signing = await this.requestService.signInternalTransaction(id, address, url ||
|
|
978
|
+
const signing = await this.state.requestService.signInternalTransaction(id, address, url || _constants2.EXTENSION_REQUEST_URL, payload);
|
|
894
979
|
return {
|
|
895
980
|
id: new Date().getTime(),
|
|
896
981
|
signature: signing.signature
|
|
@@ -902,7 +987,7 @@ class TransactionService {
|
|
|
902
987
|
emitter.emit('signed', eventData);
|
|
903
988
|
|
|
904
989
|
// Send transaction
|
|
905
|
-
const api = this.chainService.getSubstrateApi(chain);
|
|
990
|
+
const api = this.state.chainService.getSubstrateApi(chain);
|
|
906
991
|
eventData.nonce = rs.nonce.toNumber();
|
|
907
992
|
eventData.startBlock = (await api.api.query.system.number()).toPrimitive();
|
|
908
993
|
this.handleTransactionTimeout(emitter, eventData);
|
|
@@ -966,7 +1051,7 @@ class TransactionService {
|
|
|
966
1051
|
emitter.emit('error', eventData);
|
|
967
1052
|
clearTimeout(timeout);
|
|
968
1053
|
}
|
|
969
|
-
},
|
|
1054
|
+
}, _constants3.TRANSACTION_TIMEOUT);
|
|
970
1055
|
emitter.once('success', () => {
|
|
971
1056
|
clearTimeout(timeout);
|
|
972
1057
|
});
|
|
@@ -974,6 +1059,27 @@ class TransactionService {
|
|
|
974
1059
|
clearTimeout(timeout);
|
|
975
1060
|
});
|
|
976
1061
|
}
|
|
1062
|
+
handlePostEarningTransaction(id) {
|
|
1063
|
+
const transaction = this.getTransaction(id);
|
|
1064
|
+
const data = transaction.data;
|
|
1065
|
+
const slug = data.data.slug;
|
|
1066
|
+
const poolHandler = this.state.earningService.getPoolHandler(slug);
|
|
1067
|
+
if (poolHandler) {
|
|
1068
|
+
const type = poolHandler.type;
|
|
1069
|
+
if (type === _types.YieldPoolType.NATIVE_STAKING) {
|
|
1070
|
+
return;
|
|
1071
|
+
}
|
|
1072
|
+
} else {
|
|
1073
|
+
return;
|
|
1074
|
+
}
|
|
1075
|
+
this.state.mintCampaignService.unlockDotCampaign.mintNft({
|
|
1076
|
+
transactionId: id,
|
|
1077
|
+
address: transaction.address,
|
|
1078
|
+
slug: slug,
|
|
1079
|
+
network: transaction.chain,
|
|
1080
|
+
extrinsicHash: transaction.extrinsicHash
|
|
1081
|
+
}).catch(console.error);
|
|
1082
|
+
}
|
|
977
1083
|
resetWallet() {
|
|
978
1084
|
this.transactionSubject.next({});
|
|
979
1085
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _unlockDot = require("./unlock-dot");
|
|
7
|
+
Object.keys(_unlockDot).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _unlockDot[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _unlockDot[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|