@subwallet/extension-base 1.1.31-beta.0 → 1.1.33-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 +71 -111
- package/background/KoniTypes.js +14 -19
- package/background/errors/TransactionError.js +0 -9
- package/cjs/background/KoniTypes.js +17 -20
- package/cjs/background/errors/TransactionError.js +0 -9
- package/cjs/constants/index.js +4 -19
- package/cjs/koni/api/nft/config.js +23 -33
- package/cjs/koni/api/nft/index.js +0 -14
- package/cjs/koni/api/nft/nft.js +22 -1
- package/cjs/koni/api/staking/bonding/amplitude.js +108 -76
- package/cjs/koni/api/staking/bonding/astar.js +10 -11
- package/cjs/koni/api/staking/bonding/index.js +3 -4
- package/cjs/koni/api/staking/bonding/paraChain.js +29 -28
- package/cjs/koni/api/staking/bonding/relayChain.js +45 -48
- package/cjs/koni/api/staking/bonding/utils.js +86 -104
- package/cjs/koni/api/staking/index.js +5 -6
- package/cjs/koni/api/staking/paraChain.js +36 -11
- package/cjs/koni/api/staking/relayChain.js +2 -3
- package/cjs/koni/api/xcm/xTokens.js +1 -1
- package/cjs/koni/background/cron.js +1 -11
- package/cjs/koni/background/handlers/Extension.js +69 -362
- package/cjs/koni/background/handlers/State.js +3 -51
- package/cjs/koni/background/handlers/Tabs.js +19 -2
- package/cjs/koni/background/handlers/index.js +2 -4
- package/cjs/koni/background/subscription.js +37 -95
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/campaign-service/index.js +25 -9
- package/cjs/services/chain-service/constants.js +21 -4
- package/cjs/services/chain-service/index.js +2 -3
- package/cjs/services/chain-service/utils.js +1 -7
- package/cjs/services/event-service/index.js +0 -4
- package/cjs/services/history-service/index.js +12 -8
- package/cjs/services/keyring-service/index.js +2 -14
- package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/cjs/services/migration-service/scripts/index.js +1 -7
- package/cjs/services/notification-service/NotificationService.js +1 -1
- package/cjs/services/storage-service/DatabaseService.js +3 -51
- package/cjs/services/storage-service/databases/index.js +0 -4
- package/cjs/services/storage-service/db-stores/Campaign.js +9 -3
- package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/cjs/services/subscan-service/index.js +0 -16
- package/cjs/services/transaction-service/event-parser/index.js +0 -58
- package/cjs/services/transaction-service/helpers/index.js +1 -3
- package/cjs/services/transaction-service/index.js +131 -242
- package/cjs/services/transaction-service/utils.js +0 -1
- package/cjs/types/index.js +0 -44
- package/cjs/utils/fetchEvmChainInfo.js +20 -0
- package/cjs/utils/fetchStaticData.js +1 -2
- package/cjs/utils/index.js +17 -81
- package/cjs/utils/number.js +1 -3
- package/constants/index.d.ts +1 -6
- package/constants/index.js +1 -6
- package/koni/api/nft/config.js +23 -33
- package/koni/api/nft/index.js +1 -15
- package/koni/api/nft/nft.js +23 -2
- package/koni/api/staking/bonding/amplitude.d.ts +1 -1
- package/koni/api/staking/bonding/amplitude.js +105 -73
- package/koni/api/staking/bonding/astar.js +8 -9
- package/koni/api/staking/bonding/index.d.ts +2 -1
- package/koni/api/staking/bonding/index.js +3 -5
- package/koni/api/staking/bonding/paraChain.js +16 -15
- package/koni/api/staking/bonding/relayChain.d.ts +2 -2
- package/koni/api/staking/bonding/relayChain.js +30 -33
- package/koni/api/staking/bonding/utils.d.ts +42 -15
- package/koni/api/staking/bonding/utils.js +69 -85
- package/koni/api/staking/index.js +1 -2
- package/koni/api/staking/paraChain.js +37 -12
- package/koni/api/staking/relayChain.js +3 -4
- package/koni/api/xcm/xTokens.js +1 -1
- package/koni/background/cron.d.ts +0 -1
- package/koni/background/cron.js +2 -12
- package/koni/background/handlers/Extension.d.ts +1 -17
- package/koni/background/handlers/Extension.js +30 -321
- package/koni/background/handlers/State.d.ts +2 -18
- package/koni/background/handlers/State.js +3 -50
- package/koni/background/handlers/Tabs.js +20 -3
- package/koni/background/handlers/index.js +2 -4
- package/koni/background/subscription.d.ts +1 -6
- package/koni/background/subscription.js +38 -97
- package/package.json +13 -321
- package/packageInfo.js +1 -1
- package/services/campaign-service/index.js +25 -9
- package/services/chain-service/constants.d.ts +12 -0
- package/services/chain-service/constants.js +19 -3
- package/services/chain-service/index.js +2 -3
- package/services/chain-service/utils.d.ts +0 -1
- package/services/chain-service/utils.js +1 -5
- package/services/event-service/index.d.ts +0 -1
- package/services/event-service/index.js +0 -4
- package/services/event-service/types.d.ts +1 -8
- package/services/history-service/index.js +12 -8
- package/services/keyring-service/index.d.ts +1 -2
- package/services/keyring-service/index.js +2 -14
- package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/services/migration-service/scripts/index.js +1 -7
- package/services/notification-service/NotificationService.js +1 -1
- package/services/storage-service/DatabaseService.d.ts +2 -18
- package/services/storage-service/DatabaseService.js +3 -51
- package/services/storage-service/databases/index.d.ts +1 -3
- package/services/storage-service/databases/index.js +0 -4
- package/services/storage-service/db-stores/Campaign.js +9 -3
- package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/services/subscan-service/index.d.ts +2 -3
- package/services/subscan-service/index.js +0 -15
- package/services/subscan-service/types.d.ts +0 -20
- package/services/transaction-service/event-parser/index.d.ts +1 -3
- package/services/transaction-service/event-parser/index.js +1 -57
- package/services/transaction-service/helpers/index.js +1 -3
- package/services/transaction-service/index.d.ts +16 -4
- package/services/transaction-service/index.js +118 -230
- package/services/transaction-service/types.d.ts +1 -2
- package/services/transaction-service/utils.js +0 -1
- package/types/index.d.ts +0 -5
- package/types/index.js +1 -5
- package/utils/fetchEvmChainInfo.d.ts +17 -0
- package/utils/fetchEvmChainInfo.js +14 -0
- package/utils/fetchStaticData.js +1 -2
- package/utils/index.d.ts +2 -5
- package/utils/index.js +2 -52
- package/utils/number.d.ts +1 -1
- package/utils/number.js +1 -1
- package/cjs/koni/api/dotsama/balance.js +0 -464
- package/cjs/koni/api/nft/ordinal_nft/constants.js +0 -21
- package/cjs/koni/api/nft/ordinal_nft/index.js +0 -121
- package/cjs/koni/api/nft/ordinal_nft/utils.js +0 -41
- package/cjs/koni/api/yield/helper/utils.js +0 -46
- package/cjs/services/earning-service/constants/chains.js +0 -29
- package/cjs/services/earning-service/constants/index.js +0 -27
- package/cjs/services/earning-service/constants/step.js +0 -18
- package/cjs/services/earning-service/handlers/base.js +0 -259
- package/cjs/services/earning-service/handlers/index.js +0 -60
- package/cjs/services/earning-service/handlers/lending/base.js +0 -20
- package/cjs/services/earning-service/handlers/lending/index.js +0 -13
- package/cjs/services/earning-service/handlers/lending/interlay.js +0 -191
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -239
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -43
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -297
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +0 -34
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -226
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -395
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +0 -384
- package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -461
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +0 -146
- package/cjs/services/earning-service/handlers/native-staking/base.js +0 -159
- package/cjs/services/earning-service/handlers/native-staking/index.js +0 -34
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -385
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +0 -558
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +0 -560
- package/cjs/services/earning-service/handlers/special.js +0 -503
- package/cjs/services/earning-service/service.js +0 -387
- package/cjs/services/earning-service/utils/index.js +0 -128
- package/cjs/services/migration-service/scripts/DeleteEarningData.js +0 -21
- package/cjs/services/migration-service/scripts/EnableEarningChains.js +0 -21
- package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
- package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -21
- package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -21
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -149
- package/cjs/services/mint-campaign-service/campaigns/index.js +0 -13
- package/cjs/services/mint-campaign-service/constants.js +0 -11
- package/cjs/services/mint-campaign-service/index.js +0 -18
- package/cjs/services/storage-service/db-stores/YieldPoolStore.js +0 -36
- package/cjs/services/storage-service/db-stores/YieldPositionStore.js +0 -65
- package/cjs/services/storage-service/index.js +0 -241
- package/cjs/types/campaigns/index.js +0 -16
- package/cjs/types/campaigns/unlock-dot.js +0 -1
- package/cjs/types/ordinal.js +0 -1
- package/cjs/types/transaction.js +0 -1
- package/cjs/types/yield/actions/index.js +0 -27
- package/cjs/types/yield/actions/join/index.js +0 -38
- package/cjs/types/yield/actions/join/step.js +0 -47
- package/cjs/types/yield/actions/join/submit.js +0 -1
- package/cjs/types/yield/actions/join/validate.js +0 -16
- package/cjs/types/yield/actions/others.js +0 -1
- package/cjs/types/yield/index.js +0 -27
- package/cjs/types/yield/info/account/index.js +0 -49
- package/cjs/types/yield/info/account/info.js +0 -1
- package/cjs/types/yield/info/account/reward.js +0 -1
- package/cjs/types/yield/info/account/target.js +0 -32
- package/cjs/types/yield/info/account/unstake.js +0 -27
- package/cjs/types/yield/info/base.js +0 -41
- package/cjs/types/yield/info/chain/index.js +0 -27
- package/cjs/types/yield/info/chain/info.js +0 -1
- package/cjs/types/yield/info/chain/target.js +0 -1
- package/cjs/types/yield/info/index.js +0 -49
- package/cjs/types/yield/info/pallet.js +0 -15
- package/cjs/types.js +0 -1
- package/cjs/utils/address.js +0 -34
- package/cjs/utils/keyring.js +0 -57
- package/cjs/utils/object.js +0 -12
- package/koni/api/nft/ordinal_nft/constants.d.ts +0 -9
- package/koni/api/nft/ordinal_nft/constants.js +0 -12
- package/koni/api/nft/ordinal_nft/index.d.ts +0 -8
- package/koni/api/nft/ordinal_nft/index.js +0 -114
- package/koni/api/nft/ordinal_nft/utils.d.ts +0 -2
- package/koni/api/nft/ordinal_nft/utils.js +0 -33
- package/koni/api/yield/helper/utils.d.ts +0 -10
- package/koni/api/yield/helper/utils.js +0 -32
- package/services/earning-service/constants/abis/compound_finance_v2_abi.json +0 -1235
- package/services/earning-service/constants/abis/st_liquid_token_abi.json +0 -1355
- package/services/earning-service/constants/chains.d.ts +0 -14
- package/services/earning-service/constants/chains.js +0 -21
- package/services/earning-service/constants/index.d.ts +0 -2
- package/services/earning-service/constants/index.js +0 -5
- package/services/earning-service/constants/step.d.ts +0 -3
- package/services/earning-service/constants/step.js +0 -10
- package/services/earning-service/handlers/base.d.ts +0 -112
- package/services/earning-service/handlers/base.js +0 -253
- package/services/earning-service/handlers/index.d.ts +0 -5
- package/services/earning-service/handlers/index.js +0 -8
- package/services/earning-service/handlers/lending/base.d.ts +0 -6
- package/services/earning-service/handlers/lending/base.js +0 -12
- package/services/earning-service/handlers/lending/index.d.ts +0 -1
- package/services/earning-service/handlers/lending/index.js +0 -4
- package/services/earning-service/handlers/lending/interlay.d.ts +0 -24
- package/services/earning-service/handlers/lending/interlay.js +0 -183
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +0 -27
- package/services/earning-service/handlers/liquid-staking/acala.js +0 -231
- package/services/earning-service/handlers/liquid-staking/base.d.ts +0 -9
- package/services/earning-service/handlers/liquid-staking/base.js +0 -35
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +0 -46
- package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -286
- package/services/earning-service/handlers/liquid-staking/index.d.ts +0 -4
- package/services/earning-service/handlers/liquid-staking/index.js +0 -7
- package/services/earning-service/handlers/liquid-staking/parallel.d.ts +0 -26
- package/services/earning-service/handlers/liquid-staking/parallel.js +0 -218
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +0 -34
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -385
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +0 -22
- package/services/earning-service/handlers/native-staking/amplitude.js +0 -375
- package/services/earning-service/handlers/native-staking/astar.d.ts +0 -19
- package/services/earning-service/handlers/native-staking/astar.js +0 -451
- package/services/earning-service/handlers/native-staking/base-para.d.ts +0 -11
- package/services/earning-service/handlers/native-staking/base-para.js +0 -138
- package/services/earning-service/handlers/native-staking/base.d.ts +0 -21
- package/services/earning-service/handlers/native-staking/base.js +0 -150
- package/services/earning-service/handlers/native-staking/index.d.ts +0 -4
- package/services/earning-service/handlers/native-staking/index.js +0 -7
- package/services/earning-service/handlers/native-staking/para-chain.d.ts +0 -15
- package/services/earning-service/handlers/native-staking/para-chain.js +0 -377
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +0 -21
- package/services/earning-service/handlers/native-staking/relay-chain.js +0 -549
- package/services/earning-service/handlers/nomination-pool/index.d.ts +0 -36
- package/services/earning-service/handlers/nomination-pool/index.js +0 -550
- package/services/earning-service/handlers/special.d.ts +0 -65
- package/services/earning-service/handlers/special.js +0 -495
- package/services/earning-service/service.d.ts +0 -45
- package/services/earning-service/service.js +0 -379
- package/services/earning-service/utils/index.d.ts +0 -18
- package/services/earning-service/utils/index.js +0 -112
- package/services/migration-service/scripts/DeleteEarningData.d.ts +0 -4
- package/services/migration-service/scripts/DeleteEarningData.js +0 -13
- package/services/migration-service/scripts/EnableEarningChains.d.ts +0 -4
- package/services/migration-service/scripts/EnableEarningChains.js +0 -13
- package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +0 -4
- package/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -13
- package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +0 -4
- package/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -13
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +0 -13
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -139
- package/services/mint-campaign-service/campaigns/index.d.ts +0 -1
- package/services/mint-campaign-service/campaigns/index.js +0 -4
- package/services/mint-campaign-service/constants.d.ts +0 -1
- package/services/mint-campaign-service/constants.js +0 -4
- package/services/mint-campaign-service/index.d.ts +0 -7
- package/services/mint-campaign-service/index.js +0 -11
- package/services/storage-service/db-stores/YieldPoolStore.d.ts +0 -10
- package/services/storage-service/db-stores/YieldPoolStore.js +0 -28
- package/services/storage-service/db-stores/YieldPositionStore.d.ts +0 -9
- package/services/storage-service/db-stores/YieldPositionStore.js +0 -57
- package/types/campaigns/index.d.ts +0 -1
- package/types/campaigns/index.js +0 -4
- package/types/campaigns/unlock-dot.d.ts +0 -71
- package/types/campaigns/unlock-dot.js +0 -1
- package/types/ordinal.d.ts +0 -69
- package/types/ordinal.js +0 -1
- package/types/transaction.d.ts +0 -3
- package/types/transaction.js +0 -1
- package/types/yield/actions/index.d.ts +0 -2
- package/types/yield/actions/index.js +0 -5
- package/types/yield/actions/join/index.d.ts +0 -3
- package/types/yield/actions/join/index.js +0 -6
- package/types/yield/actions/join/step.d.ts +0 -95
- package/types/yield/actions/join/step.js +0 -46
- package/types/yield/actions/join/submit.d.ts +0 -57
- package/types/yield/actions/join/submit.js +0 -1
- package/types/yield/actions/join/validate.d.ts +0 -18
- package/types/yield/actions/join/validate.js +0 -10
- package/types/yield/actions/others.d.ts +0 -85
- package/types/yield/actions/others.js +0 -1
- package/types/yield/index.d.ts +0 -2
- package/types/yield/index.js +0 -5
- package/types/yield/info/account/index.d.ts +0 -4
- package/types/yield/info/account/index.js +0 -7
- package/types/yield/info/account/info.d.ts +0 -92
- package/types/yield/info/account/info.js +0 -1
- package/types/yield/info/account/reward.d.ts +0 -45
- package/types/yield/info/account/reward.js +0 -1
- package/types/yield/info/account/target.d.ts +0 -43
- package/types/yield/info/account/target.js +0 -27
- package/types/yield/info/account/unstake.d.ts +0 -31
- package/types/yield/info/account/unstake.js +0 -22
- package/types/yield/info/base.d.ts +0 -45
- package/types/yield/info/base.js +0 -36
- package/types/yield/info/chain/index.d.ts +0 -2
- package/types/yield/info/chain/index.js +0 -5
- package/types/yield/info/chain/info.d.ts +0 -251
- package/types/yield/info/chain/info.js +0 -1
- package/types/yield/info/chain/target.d.ts +0 -37
- package/types/yield/info/chain/target.js +0 -1
- package/types/yield/info/index.d.ts +0 -4
- package/types/yield/info/index.js +0 -7
- package/types/yield/info/pallet.d.ts +0 -143
- package/types/yield/info/pallet.js +0 -9
- package/utils/object.d.ts +0 -1
- package/utils/object.js +0 -6
|
@@ -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");
|
|
13
14
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
14
|
-
var
|
|
15
|
-
var
|
|
15
|
+
var _constants3 = require("@subwallet/extension-base/services/request-service/constants");
|
|
16
|
+
var _constants4 = require("@subwallet/extension-base/services/transaction-service/constants");
|
|
16
17
|
var _eventParser = require("@subwallet/extension-base/services/transaction-service/event-parser");
|
|
17
18
|
var _helpers = require("@subwallet/extension-base/services/transaction-service/helpers");
|
|
18
19
|
var _utils2 = require("@subwallet/extension-base/services/transaction-service/utils");
|
|
19
20
|
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,7 +30,6 @@ 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");
|
|
34
33
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
35
34
|
// SPDX-License-Identifier: Apache-2.0
|
|
36
35
|
|
|
@@ -40,8 +39,14 @@ class TransactionService {
|
|
|
40
39
|
get transactions() {
|
|
41
40
|
return this.transactionSubject.getValue();
|
|
42
41
|
}
|
|
43
|
-
constructor(
|
|
44
|
-
this.
|
|
42
|
+
constructor(chainService, eventService, requestService, balanceService, historyService, notificationService, databaseService) {
|
|
43
|
+
this.chainService = chainService;
|
|
44
|
+
this.eventService = eventService;
|
|
45
|
+
this.requestService = requestService;
|
|
46
|
+
this.balanceService = balanceService;
|
|
47
|
+
this.historyService = historyService;
|
|
48
|
+
this.notificationService = notificationService;
|
|
49
|
+
this.databaseService = databaseService;
|
|
45
50
|
}
|
|
46
51
|
get allTransactions() {
|
|
47
52
|
return Object.values(this.transactions);
|
|
@@ -98,7 +103,7 @@ class TransactionService {
|
|
|
98
103
|
decimals: 0,
|
|
99
104
|
value: ''
|
|
100
105
|
};
|
|
101
|
-
const chainInfo = this.
|
|
106
|
+
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
102
107
|
if (!chainInfo) {
|
|
103
108
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('Cannot find network')));
|
|
104
109
|
} else {
|
|
@@ -113,7 +118,7 @@ class TransactionService {
|
|
|
113
118
|
if ((0, _helpers.isSubstrateTransaction)(transaction)) {
|
|
114
119
|
estimateFee.value = (await transaction.paymentInfo(address)).partialFee.toString();
|
|
115
120
|
} else {
|
|
116
|
-
const web3 = this.
|
|
121
|
+
const web3 = this.chainService.getEvmApi(chain);
|
|
117
122
|
if (!web3) {
|
|
118
123
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.CHAIN_DISCONNECTED, undefined));
|
|
119
124
|
} else {
|
|
@@ -147,35 +152,32 @@ class TransactionService {
|
|
|
147
152
|
|
|
148
153
|
// Balance
|
|
149
154
|
const transferNative = validationResponse.transferNativeAmount || '0';
|
|
150
|
-
const nativeTokenInfo = this.
|
|
151
|
-
const balance = await this.
|
|
155
|
+
const nativeTokenInfo = this.chainService.getNativeTokenInfo(chain);
|
|
156
|
+
const balance = await this.balanceService.getTokenFreeBalance(address, chain, nativeTokenInfo.slug);
|
|
152
157
|
const existentialDeposit = nativeTokenInfo.minAmount || '0';
|
|
153
158
|
const feeNum = parseInt(estimateFee.value);
|
|
154
159
|
const balanceNum = parseInt(balance.value);
|
|
155
160
|
const edNum = parseInt(existentialDeposit);
|
|
156
161
|
const transferNativeNum = parseInt(transferNative);
|
|
157
|
-
if (!
|
|
158
|
-
|
|
159
|
-
|
|
162
|
+
if (!new _bignumber.default(balance.value).gt(0)) {
|
|
163
|
+
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
164
|
+
}
|
|
165
|
+
if (transferNativeNum + feeNum > balanceNum) {
|
|
166
|
+
if (!isTransferAll) {
|
|
160
167
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
168
|
+
} else {
|
|
169
|
+
if ([..._constants2._TRANSFER_CHAIN_GROUP.acala, ..._constants2._TRANSFER_CHAIN_GROUP.genshiro, ..._constants2._TRANSFER_CHAIN_GROUP.bitcountry, ..._constants2._TRANSFER_CHAIN_GROUP.statemine].includes(chain)) {
|
|
170
|
+
// Chain not have transfer all function
|
|
164
171
|
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
|
-
}
|
|
170
172
|
}
|
|
171
173
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
}
|
|
175
|
+
if (!isTransferAll) {
|
|
176
|
+
if (balanceNum - (transferNativeNum + feeNum) < edNum) {
|
|
177
|
+
if (edAsWarning) {
|
|
178
|
+
validationResponse.warnings.push(new _TransactionWarning.TransactionWarning(_KoniTypes.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
|
|
179
|
+
} else {
|
|
180
|
+
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
|
|
179
181
|
}
|
|
180
182
|
}
|
|
181
183
|
}
|
|
@@ -196,7 +198,7 @@ class TransactionService {
|
|
|
196
198
|
updatedAt: new Date().getTime(),
|
|
197
199
|
errors: transaction.errors || [],
|
|
198
200
|
warnings: transaction.warnings || [],
|
|
199
|
-
url: transaction.url ||
|
|
201
|
+
url: transaction.url || _constants3.EXTENSION_REQUEST_URL,
|
|
200
202
|
status: _KoniTypes.ExtrinsicStatus.QUEUED,
|
|
201
203
|
isInternal,
|
|
202
204
|
id: transactionId,
|
|
@@ -242,21 +244,12 @@ class TransactionService {
|
|
|
242
244
|
}
|
|
243
245
|
validatedTransaction.warnings = [];
|
|
244
246
|
const emitter = await this.addTransaction(validatedTransaction);
|
|
245
|
-
await new Promise(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
resolve();
|
|
252
|
-
});
|
|
253
|
-
} else {
|
|
254
|
-
emitter.on('signed', data => {
|
|
255
|
-
validatedTransaction.id = data.id;
|
|
256
|
-
validatedTransaction.extrinsicHash = data.extrinsicHash;
|
|
257
|
-
resolve();
|
|
258
|
-
});
|
|
259
|
-
}
|
|
247
|
+
await new Promise(resolve => {
|
|
248
|
+
emitter.on('signed', data => {
|
|
249
|
+
validatedTransaction.id = data.id;
|
|
250
|
+
validatedTransaction.extrinsicHash = data.extrinsicHash;
|
|
251
|
+
resolve();
|
|
252
|
+
});
|
|
260
253
|
emitter.on('error', data => {
|
|
261
254
|
if (data.errors.length > 0) {
|
|
262
255
|
validatedTransaction.errors.push(...data.errors);
|
|
@@ -297,6 +290,12 @@ class TransactionService {
|
|
|
297
290
|
errors: [...data.errors, new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)]
|
|
298
291
|
});
|
|
299
292
|
});
|
|
293
|
+
emitter.on('timeout', data => {
|
|
294
|
+
this.onTimeOut({
|
|
295
|
+
...data,
|
|
296
|
+
errors: [...data.errors, new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.TIMEOUT)]
|
|
297
|
+
});
|
|
298
|
+
});
|
|
300
299
|
|
|
301
300
|
// Todo: handle any event with transaction.eventsHandler
|
|
302
301
|
|
|
@@ -322,7 +321,7 @@ class TransactionService {
|
|
|
322
321
|
}
|
|
323
322
|
getTransactionLink(id) {
|
|
324
323
|
const transaction = this.getTransaction(id);
|
|
325
|
-
const chainInfo = this.
|
|
324
|
+
const chainInfo = this.chainService.getChainInfoByKey(transaction.chain);
|
|
326
325
|
return (0, _utils2.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
|
|
327
326
|
}
|
|
328
327
|
transactionToHistories(id, startBlock, nonce, eventLogs) {
|
|
@@ -350,7 +349,7 @@ class TransactionService {
|
|
|
350
349
|
nonce: nonce !== null && nonce !== void 0 ? nonce : 0,
|
|
351
350
|
startBlock: startBlock || 0
|
|
352
351
|
};
|
|
353
|
-
const chainInfo = this.
|
|
352
|
+
const chainInfo = this.chainService.getChainInfoByKey(transaction.chain);
|
|
354
353
|
const nativeAsset = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
|
|
355
354
|
const baseNativeAmount = {
|
|
356
355
|
value: '0',
|
|
@@ -364,7 +363,7 @@ class TransactionService {
|
|
|
364
363
|
{
|
|
365
364
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
366
365
|
historyItem.to = inputData.to;
|
|
367
|
-
const sendingTokenInfo = this.
|
|
366
|
+
const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
368
367
|
historyItem.amount = {
|
|
369
368
|
value: inputData.value || '0',
|
|
370
369
|
decimals: sendingTokenInfo.decimals || 0,
|
|
@@ -377,7 +376,7 @@ class TransactionService {
|
|
|
377
376
|
{
|
|
378
377
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
379
378
|
historyItem.to = inputData.to;
|
|
380
|
-
const sendingTokenInfo = this.
|
|
379
|
+
const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
381
380
|
historyItem.amount = {
|
|
382
381
|
value: inputData.value || '0',
|
|
383
382
|
decimals: sendingTokenInfo.decimals || 0,
|
|
@@ -390,7 +389,7 @@ class TransactionService {
|
|
|
390
389
|
{
|
|
391
390
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
392
391
|
historyItem.to = inputData.to;
|
|
393
|
-
const sendingTokenInfo = this.
|
|
392
|
+
const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
394
393
|
historyItem.amount = {
|
|
395
394
|
value: inputData.value || '0',
|
|
396
395
|
decimals: sendingTokenInfo.decimals || 0,
|
|
@@ -439,29 +438,17 @@ class TransactionService {
|
|
|
439
438
|
case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
|
|
440
439
|
{
|
|
441
440
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
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
|
-
}
|
|
441
|
+
historyItem.to = data.validatorAddress || '';
|
|
442
|
+
historyItem.amount = {
|
|
443
|
+
...baseNativeAmount,
|
|
444
|
+
value: data.amount || '0'
|
|
445
|
+
};
|
|
459
446
|
}
|
|
460
447
|
break;
|
|
461
448
|
case _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL:
|
|
462
449
|
{
|
|
463
450
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
464
|
-
historyItem.to = data.address || '';
|
|
451
|
+
historyItem.to = data.nominatorMetadata.address || '';
|
|
465
452
|
historyItem.amount = {
|
|
466
453
|
...baseNativeAmount,
|
|
467
454
|
value: data.amount || '0'
|
|
@@ -480,21 +467,11 @@ class TransactionService {
|
|
|
480
467
|
case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
|
|
481
468
|
{
|
|
482
469
|
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
const amount = {
|
|
470
|
+
historyItem.to = data.validatorAddress || '';
|
|
471
|
+
historyItem.amount = {
|
|
486
472
|
...baseNativeAmount,
|
|
487
473
|
value: data.unstakingInfo.claimable || '0'
|
|
488
474
|
};
|
|
489
|
-
if (poolHandler) {
|
|
490
|
-
const asset = this.state.getAssetBySlug(poolHandler.metadataInfo.inputAsset);
|
|
491
|
-
if (asset) {
|
|
492
|
-
amount.decimals = asset.decimals || 0;
|
|
493
|
-
amount.symbol = asset.symbol;
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
historyItem.to = data.unstakingInfo.validatorAddress || '';
|
|
497
|
-
historyItem.amount = amount;
|
|
498
475
|
break;
|
|
499
476
|
}
|
|
500
477
|
case _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE:
|
|
@@ -515,102 +492,6 @@ class TransactionService {
|
|
|
515
492
|
historyItem.to = (data === null || data === void 0 ? void 0 : data.to) || '';
|
|
516
493
|
break;
|
|
517
494
|
}
|
|
518
|
-
case _KoniTypes.ExtrinsicType.MINT_STDOT:
|
|
519
|
-
case _KoniTypes.ExtrinsicType.MINT_QDOT:
|
|
520
|
-
case _KoniTypes.ExtrinsicType.MINT_LDOT:
|
|
521
|
-
case _KoniTypes.ExtrinsicType.MINT_SDOT:
|
|
522
|
-
|
|
523
|
-
// eslint-disable-next-line no-fallthrough
|
|
524
|
-
case _KoniTypes.ExtrinsicType.MINT_VDOT:
|
|
525
|
-
{
|
|
526
|
-
const params = (0, _utils2.parseTransactionData)(transaction.data);
|
|
527
|
-
const inputTokenInfo = this.state.chainService.getAssetBySlug(params.inputTokenSlug);
|
|
528
|
-
const isFeePaidWithInputAsset = params.feeTokenSlug === params.inputTokenSlug;
|
|
529
|
-
historyItem.amount = {
|
|
530
|
-
value: params.amount,
|
|
531
|
-
symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
|
|
532
|
-
decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
|
|
533
|
-
};
|
|
534
|
-
const additionalInfo = {
|
|
535
|
-
slug: params.slug,
|
|
536
|
-
derivativeTokenSlug: params.derivativeTokenSlug,
|
|
537
|
-
exchangeRate: params.exchangeRate
|
|
538
|
-
};
|
|
539
|
-
historyItem.additionalInfo = additionalInfo;
|
|
540
|
-
eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingEvents)(historyItem, eventLogs, inputTokenInfo, chainInfo, isFeePaidWithInputAsset, extrinsicType);
|
|
541
|
-
break;
|
|
542
|
-
}
|
|
543
|
-
case _KoniTypes.ExtrinsicType.REDEEM_QDOT:
|
|
544
|
-
{
|
|
545
|
-
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
546
|
-
const yieldPoolInfo = data.poolInfo;
|
|
547
|
-
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
548
|
-
const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
|
|
549
|
-
const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
|
|
550
|
-
historyItem.amount = {
|
|
551
|
-
value: data.amount,
|
|
552
|
-
symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
|
|
553
|
-
decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
|
|
554
|
-
};
|
|
555
|
-
eventLogs && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
|
|
556
|
-
}
|
|
557
|
-
break;
|
|
558
|
-
}
|
|
559
|
-
case _KoniTypes.ExtrinsicType.UNSTAKE_QDOT:
|
|
560
|
-
case _KoniTypes.ExtrinsicType.UNSTAKE_VDOT:
|
|
561
|
-
case _KoniTypes.ExtrinsicType.UNSTAKE_LDOT:
|
|
562
|
-
case _KoniTypes.ExtrinsicType.UNSTAKE_SDOT:
|
|
563
|
-
case _KoniTypes.ExtrinsicType.UNSTAKE_STDOT:
|
|
564
|
-
case _KoniTypes.ExtrinsicType.REDEEM_STDOT:
|
|
565
|
-
case _KoniTypes.ExtrinsicType.REDEEM_LDOT:
|
|
566
|
-
case _KoniTypes.ExtrinsicType.REDEEM_SDOT:
|
|
567
|
-
|
|
568
|
-
// eslint-disable-next-line no-fallthrough
|
|
569
|
-
case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
|
|
570
|
-
{
|
|
571
|
-
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
572
|
-
const yieldPoolInfo = data.poolInfo;
|
|
573
|
-
const minAmountPercents = this.state.earningService.getMinAmountPercent();
|
|
574
|
-
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
575
|
-
var _yieldPoolInfo$statis;
|
|
576
|
-
const derivativeTokenSlug = yieldPoolInfo.metadata.derivativeAssets[0];
|
|
577
|
-
const derivativeTokenInfo = this.state.chainService.getAssetBySlug(derivativeTokenSlug);
|
|
578
|
-
const chainInfo = this.state.chainService.getChainInfoByKey(data.poolInfo.chain);
|
|
579
|
-
historyItem.amount = {
|
|
580
|
-
value: data.amount,
|
|
581
|
-
symbol: (0, _utils._getAssetSymbol)(derivativeTokenInfo),
|
|
582
|
-
decimals: (0, _utils._getAssetDecimals)(derivativeTokenInfo)
|
|
583
|
-
};
|
|
584
|
-
eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
|
|
585
|
-
const minAmountPercent = minAmountPercents[yieldPoolInfo.slug] || 1;
|
|
586
|
-
const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
|
|
587
|
-
const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
|
|
588
|
-
const additionalInfo = {
|
|
589
|
-
minAmountPercent,
|
|
590
|
-
symbol: inputTokenInfo.symbol,
|
|
591
|
-
decimals: inputTokenInfo.decimals || 0,
|
|
592
|
-
exchangeRate: ((_yieldPoolInfo$statis = yieldPoolInfo.statistic) === null || _yieldPoolInfo$statis === void 0 ? void 0 : _yieldPoolInfo$statis.assetEarning[0].exchangeRate) || 1,
|
|
593
|
-
slug: yieldPoolInfo.slug,
|
|
594
|
-
type: yieldPoolInfo.type,
|
|
595
|
-
chain: yieldPoolInfo.chain,
|
|
596
|
-
group: yieldPoolInfo.group,
|
|
597
|
-
isFast: data.fastLeave
|
|
598
|
-
};
|
|
599
|
-
historyItem.additionalInfo = additionalInfo;
|
|
600
|
-
}
|
|
601
|
-
break;
|
|
602
|
-
}
|
|
603
|
-
case _KoniTypes.ExtrinsicType.TOKEN_APPROVE:
|
|
604
|
-
{
|
|
605
|
-
const data = (0, _utils2.parseTransactionData)(transaction.data);
|
|
606
|
-
const inputAsset = this.state.chainService.getAssetBySlug(data.inputTokenSlug);
|
|
607
|
-
historyItem.amount = {
|
|
608
|
-
value: '0',
|
|
609
|
-
symbol: (0, _utils._getAssetSymbol)(inputAsset),
|
|
610
|
-
decimals: (0, _utils._getAssetDecimals)(inputAsset)
|
|
611
|
-
};
|
|
612
|
-
break;
|
|
613
|
-
}
|
|
614
495
|
case _KoniTypes.ExtrinsicType.UNKNOWN:
|
|
615
496
|
break;
|
|
616
497
|
}
|
|
@@ -658,7 +539,7 @@ class TransactionService {
|
|
|
658
539
|
});
|
|
659
540
|
|
|
660
541
|
// Create Input History Transaction History
|
|
661
|
-
this.
|
|
542
|
+
this.historyService.insertHistories(this.transactionToHistories(id, startBlock, nonce)).catch(console.error);
|
|
662
543
|
console.debug(`Transaction "${id}" is sent`);
|
|
663
544
|
}
|
|
664
545
|
onHasTransactionHash(_ref3) {
|
|
@@ -676,12 +557,8 @@ class TransactionService {
|
|
|
676
557
|
this.updateTransaction(id, updateData);
|
|
677
558
|
|
|
678
559
|
// In this case transaction id is the same as extrinsic hash and will change after below update
|
|
679
|
-
this.
|
|
560
|
+
this.historyService.updateHistoryByExtrinsicHash(id, updateData).catch(console.error);
|
|
680
561
|
console.debug(`Transaction "${id}" is submitted with hash ${extrinsicHash || ''}`);
|
|
681
|
-
const transaction = this.getTransaction(id);
|
|
682
|
-
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)) {
|
|
683
|
-
this.handlePostEarningTransaction(id);
|
|
684
|
-
}
|
|
685
562
|
}
|
|
686
563
|
handlePostProcessing(id) {
|
|
687
564
|
// must be done after success/failure to make sure the transaction is finalized
|
|
@@ -690,15 +567,15 @@ class TransactionService {
|
|
|
690
567
|
const inputData = (0, _utils2.parseTransactionData)(transaction.data);
|
|
691
568
|
try {
|
|
692
569
|
const sender = _uiKeyring.default.getPair(inputData.senderAddress);
|
|
693
|
-
sender && this.
|
|
694
|
-
this.
|
|
570
|
+
sender && this.databaseService.handleNftTransfer(transaction.chain, [sender.address, _constants.ALL_ACCOUNT_KEY], inputData.nftItem).then(() => {
|
|
571
|
+
this.eventService.emit('transaction.transferNft', undefined);
|
|
695
572
|
}).catch(console.error);
|
|
696
573
|
} catch (e) {
|
|
697
574
|
console.error(e);
|
|
698
575
|
}
|
|
699
576
|
try {
|
|
700
577
|
const recipient = _uiKeyring.default.getPair(inputData.recipientAddress);
|
|
701
|
-
recipient && this.
|
|
578
|
+
recipient && this.databaseService.addNft(recipient.address, {
|
|
702
579
|
...inputData.nftItem,
|
|
703
580
|
owner: recipient.address
|
|
704
581
|
}).catch(console.error);
|
|
@@ -706,7 +583,7 @@ class TransactionService {
|
|
|
706
583
|
console.error(e);
|
|
707
584
|
}
|
|
708
585
|
} 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)) {
|
|
709
|
-
this.
|
|
586
|
+
this.eventService.emit('transaction.submitStaking', transaction.chain);
|
|
710
587
|
}
|
|
711
588
|
}
|
|
712
589
|
onSuccess(_ref4) {
|
|
@@ -723,14 +600,14 @@ class TransactionService {
|
|
|
723
600
|
});
|
|
724
601
|
|
|
725
602
|
// Write success transaction history
|
|
726
|
-
this.
|
|
603
|
+
this.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
|
|
727
604
|
extrinsicHash,
|
|
728
605
|
status: _KoniTypes.ExtrinsicStatus.SUCCESS,
|
|
729
606
|
blockNumber: blockNumber || 0,
|
|
730
607
|
blockHash: blockHash || ''
|
|
731
608
|
}).catch(console.error);
|
|
732
|
-
const info = (0, _util.isHex)(extrinsicHash) ? extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.
|
|
733
|
-
this.
|
|
609
|
+
const info = (0, _util.isHex)(extrinsicHash) ? extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.chainService.getChainInfoMap());
|
|
610
|
+
this.notificationService.notify({
|
|
734
611
|
type: _KoniTypes.NotificationType.SUCCESS,
|
|
735
612
|
title: (0, _i18next.t)('Transaction completed'),
|
|
736
613
|
message: (0, _i18next.t)('Transaction {{info}} completed', {
|
|
@@ -743,7 +620,7 @@ class TransactionService {
|
|
|
743
620
|
},
|
|
744
621
|
notifyViaBrowser: true
|
|
745
622
|
});
|
|
746
|
-
this.
|
|
623
|
+
this.eventService.emit('transaction.done', transaction);
|
|
747
624
|
}
|
|
748
625
|
onFailed(_ref5) {
|
|
749
626
|
let {
|
|
@@ -763,14 +640,14 @@ class TransactionService {
|
|
|
763
640
|
});
|
|
764
641
|
|
|
765
642
|
// Write failed transaction history
|
|
766
|
-
this.
|
|
643
|
+
this.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
|
|
767
644
|
extrinsicHash: extrinsicHash || transaction.extrinsicHash,
|
|
768
645
|
status: nextStatus,
|
|
769
646
|
blockNumber: blockNumber || 0,
|
|
770
647
|
blockHash: blockHash || ''
|
|
771
648
|
}).catch(console.error);
|
|
772
|
-
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.
|
|
773
|
-
this.
|
|
649
|
+
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());
|
|
650
|
+
this.notificationService.notify({
|
|
774
651
|
type: _KoniTypes.NotificationType.ERROR,
|
|
775
652
|
title: (0, _i18next.t)('Transaction failed'),
|
|
776
653
|
message: (0, _i18next.t)('Transaction {{info}} failed', {
|
|
@@ -784,11 +661,50 @@ class TransactionService {
|
|
|
784
661
|
notifyViaBrowser: true
|
|
785
662
|
});
|
|
786
663
|
}
|
|
787
|
-
this.
|
|
664
|
+
this.eventService.emit('transaction.failed', transaction);
|
|
665
|
+
}
|
|
666
|
+
onTimeOut(_ref6) {
|
|
667
|
+
let {
|
|
668
|
+
blockHash,
|
|
669
|
+
blockNumber,
|
|
670
|
+
errors,
|
|
671
|
+
extrinsicHash,
|
|
672
|
+
id
|
|
673
|
+
} = _ref6;
|
|
674
|
+
const transaction = this.getTransaction(id);
|
|
675
|
+
const nextStatus = _KoniTypes.ExtrinsicStatus.TIMEOUT;
|
|
676
|
+
if (transaction) {
|
|
677
|
+
this.updateTransaction(id, {
|
|
678
|
+
status: nextStatus,
|
|
679
|
+
errors,
|
|
680
|
+
extrinsicHash
|
|
681
|
+
});
|
|
682
|
+
this.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
|
|
683
|
+
extrinsicHash: extrinsicHash || transaction.extrinsicHash,
|
|
684
|
+
status: nextStatus,
|
|
685
|
+
blockNumber: blockNumber || 0,
|
|
686
|
+
blockHash: blockHash || ''
|
|
687
|
+
}).catch(console.error);
|
|
688
|
+
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());
|
|
689
|
+
this.notificationService.notify({
|
|
690
|
+
type: _KoniTypes.NotificationType.ERROR,
|
|
691
|
+
title: (0, _i18next.t)('Transaction timed out'),
|
|
692
|
+
message: (0, _i18next.t)('Transaction {{info}} timed out', {
|
|
693
|
+
replace: {
|
|
694
|
+
info
|
|
695
|
+
}
|
|
696
|
+
}),
|
|
697
|
+
action: {
|
|
698
|
+
url: this.getTransactionLink(id)
|
|
699
|
+
},
|
|
700
|
+
notifyViaBrowser: true
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
this.eventService.emit('transaction.timeout', transaction);
|
|
788
704
|
}
|
|
789
705
|
generateHashPayload(chain, transaction) {
|
|
790
706
|
var _transaction$nonce;
|
|
791
|
-
const chainInfo = this.
|
|
707
|
+
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
792
708
|
const txObject = {
|
|
793
709
|
nonce: (_transaction$nonce = transaction.nonce) !== null && _transaction$nonce !== void 0 ? _transaction$nonce : 0,
|
|
794
710
|
gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0, _eth.anyNumberToBN)(transaction.gasPrice).toString(16)),
|
|
@@ -800,7 +716,7 @@ class TransactionService {
|
|
|
800
716
|
};
|
|
801
717
|
return _ethers.ethers.Transaction.from(txObject).unsignedSerialized;
|
|
802
718
|
}
|
|
803
|
-
async signAndSendEvmTransaction(
|
|
719
|
+
async signAndSendEvmTransaction(_ref7) {
|
|
804
720
|
var _payload$nonce;
|
|
805
721
|
let {
|
|
806
722
|
address,
|
|
@@ -808,10 +724,10 @@ class TransactionService {
|
|
|
808
724
|
id,
|
|
809
725
|
transaction,
|
|
810
726
|
url
|
|
811
|
-
} =
|
|
727
|
+
} = _ref7;
|
|
812
728
|
const payload = transaction;
|
|
813
|
-
const evmApi = this.
|
|
814
|
-
const chainInfo = this.
|
|
729
|
+
const evmApi = this.chainService.getEvmApi(chain);
|
|
730
|
+
const chainInfo = this.chainService.getChainInfoByKey(chain);
|
|
815
731
|
const accountPair = _uiKeyring.default.getPair(address);
|
|
816
732
|
const account = {
|
|
817
733
|
address,
|
|
@@ -841,7 +757,7 @@ class TransactionService {
|
|
|
841
757
|
|
|
842
758
|
// Set unique nonce to avoid transaction errors
|
|
843
759
|
if (!payload.nonce) {
|
|
844
|
-
const evmApi = this.
|
|
760
|
+
const evmApi = this.chainService.getEvmApi(chain);
|
|
845
761
|
payload.nonce = await evmApi.api.eth.getTransactionCount(address);
|
|
846
762
|
}
|
|
847
763
|
if (!payload.chainId) {
|
|
@@ -876,16 +792,16 @@ class TransactionService {
|
|
|
876
792
|
extrinsicHash: id
|
|
877
793
|
};
|
|
878
794
|
if (isInjected) {
|
|
879
|
-
this.
|
|
795
|
+
this.requestService.addConfirmation(id, url || _constants3.EXTENSION_REQUEST_URL, 'evmWatchTransactionRequest', payload, {}).then(async _ref8 => {
|
|
880
796
|
let {
|
|
881
797
|
isApproved,
|
|
882
798
|
payload
|
|
883
|
-
} =
|
|
799
|
+
} = _ref8;
|
|
884
800
|
if (isApproved) {
|
|
885
801
|
if (!payload) {
|
|
886
802
|
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.UNAUTHORIZED, 'Bad signature');
|
|
887
803
|
}
|
|
888
|
-
const web3Api = this.
|
|
804
|
+
const web3Api = this.chainService.getEvmApi(chain).api;
|
|
889
805
|
|
|
890
806
|
// Emit signed event
|
|
891
807
|
emitter.emit('signed', eventData);
|
|
@@ -941,17 +857,17 @@ class TransactionService {
|
|
|
941
857
|
emitter.emit('error', eventData);
|
|
942
858
|
});
|
|
943
859
|
} else {
|
|
944
|
-
this.
|
|
860
|
+
this.requestService.addConfirmation(id, url || _constants3.EXTENSION_REQUEST_URL, 'evmSendTransactionRequest', payload, {}).then(async _ref9 => {
|
|
945
861
|
let {
|
|
946
862
|
isApproved,
|
|
947
863
|
payload
|
|
948
|
-
} =
|
|
864
|
+
} = _ref9;
|
|
949
865
|
if (isApproved) {
|
|
950
866
|
let signedTransaction;
|
|
951
867
|
if (!payload) {
|
|
952
868
|
throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.UNAUTHORIZED, (0, _i18next.t)('Failed to sign'));
|
|
953
869
|
}
|
|
954
|
-
const web3Api = this.
|
|
870
|
+
const web3Api = this.chainService.getEvmApi(chain).api;
|
|
955
871
|
if (!isExternal) {
|
|
956
872
|
signedTransaction = payload;
|
|
957
873
|
} else {
|
|
@@ -1001,14 +917,14 @@ class TransactionService {
|
|
|
1001
917
|
}
|
|
1002
918
|
return emitter;
|
|
1003
919
|
}
|
|
1004
|
-
signAndSendSubstrateTransaction(
|
|
920
|
+
signAndSendSubstrateTransaction(_ref10) {
|
|
1005
921
|
let {
|
|
1006
922
|
address,
|
|
1007
923
|
chain,
|
|
1008
924
|
id,
|
|
1009
925
|
transaction,
|
|
1010
926
|
url
|
|
1011
|
-
} =
|
|
927
|
+
} = _ref10;
|
|
1012
928
|
const emitter = new _eventemitter.default();
|
|
1013
929
|
const eventData = {
|
|
1014
930
|
id,
|
|
@@ -1019,7 +935,7 @@ class TransactionService {
|
|
|
1019
935
|
transaction.signAsync(address, {
|
|
1020
936
|
signer: {
|
|
1021
937
|
signPayload: async payload => {
|
|
1022
|
-
const signing = await this.
|
|
938
|
+
const signing = await this.requestService.signInternalTransaction(id, address, url || _constants3.EXTENSION_REQUEST_URL, payload);
|
|
1023
939
|
return {
|
|
1024
940
|
id: new Date().getTime(),
|
|
1025
941
|
signature: signing.signature
|
|
@@ -1031,7 +947,7 @@ class TransactionService {
|
|
|
1031
947
|
emitter.emit('signed', eventData);
|
|
1032
948
|
|
|
1033
949
|
// Send transaction
|
|
1034
|
-
const api = this.
|
|
950
|
+
const api = this.chainService.getSubstrateApi(chain);
|
|
1035
951
|
eventData.nonce = rs.nonce.toNumber();
|
|
1036
952
|
eventData.startBlock = (await api.api.query.system.number()).toPrimitive();
|
|
1037
953
|
this.handleTransactionTimeout(emitter, eventData);
|
|
@@ -1054,20 +970,20 @@ class TransactionService {
|
|
|
1054
970
|
eventData.extrinsicHash = txState.txHash.toHex();
|
|
1055
971
|
eventData.eventLogs = txState.events;
|
|
1056
972
|
// TODO: push block hash and block number into eventData
|
|
1057
|
-
txState.events.filter(
|
|
973
|
+
txState.events.filter(_ref11 => {
|
|
1058
974
|
let {
|
|
1059
975
|
event: {
|
|
1060
976
|
section
|
|
1061
977
|
}
|
|
1062
|
-
} =
|
|
978
|
+
} = _ref11;
|
|
1063
979
|
return section === 'system';
|
|
1064
|
-
}).forEach(
|
|
980
|
+
}).forEach(_ref12 => {
|
|
1065
981
|
let {
|
|
1066
982
|
event: {
|
|
1067
983
|
data: [error],
|
|
1068
984
|
method
|
|
1069
985
|
}
|
|
1070
|
-
} =
|
|
986
|
+
} = _ref12;
|
|
1071
987
|
if (method === 'ExtrinsicFailed') {
|
|
1072
988
|
eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.SEND_TRANSACTION_FAILED, error.toString()));
|
|
1073
989
|
emitter.emit('error', eventData);
|
|
@@ -1092,10 +1008,10 @@ class TransactionService {
|
|
|
1092
1008
|
const transaction = this.getTransaction(eventData.id);
|
|
1093
1009
|
if (transaction.status !== _KoniTypes.ExtrinsicStatus.SUCCESS && transaction.status !== _KoniTypes.ExtrinsicStatus.FAIL) {
|
|
1094
1010
|
eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.TIMEOUT, (0, _i18next.t)('Transaction timeout')));
|
|
1095
|
-
emitter.emit('
|
|
1011
|
+
emitter.emit('timeout', eventData);
|
|
1096
1012
|
clearTimeout(timeout);
|
|
1097
1013
|
}
|
|
1098
|
-
},
|
|
1014
|
+
}, _constants4.TRANSACTION_TIMEOUT);
|
|
1099
1015
|
emitter.once('success', () => {
|
|
1100
1016
|
clearTimeout(timeout);
|
|
1101
1017
|
});
|
|
@@ -1103,33 +1019,6 @@ class TransactionService {
|
|
|
1103
1019
|
clearTimeout(timeout);
|
|
1104
1020
|
});
|
|
1105
1021
|
}
|
|
1106
|
-
handlePostEarningTransaction(id) {
|
|
1107
|
-
const transaction = this.getTransaction(id);
|
|
1108
|
-
let slug;
|
|
1109
|
-
|
|
1110
|
-
// TODO
|
|
1111
|
-
if ('data' in transaction.data) {
|
|
1112
|
-
slug = transaction.data.data.slug;
|
|
1113
|
-
} else {
|
|
1114
|
-
slug = transaction.data.slug;
|
|
1115
|
-
}
|
|
1116
|
-
const poolHandler = this.state.earningService.getPoolHandler(slug);
|
|
1117
|
-
if (poolHandler) {
|
|
1118
|
-
const type = poolHandler.type;
|
|
1119
|
-
if (type === _types.YieldPoolType.NATIVE_STAKING) {
|
|
1120
|
-
return;
|
|
1121
|
-
}
|
|
1122
|
-
} else {
|
|
1123
|
-
return;
|
|
1124
|
-
}
|
|
1125
|
-
this.state.mintCampaignService.unlockDotCampaign.mintNft({
|
|
1126
|
-
transactionId: id,
|
|
1127
|
-
address: transaction.address,
|
|
1128
|
-
slug: slug,
|
|
1129
|
-
network: transaction.chain,
|
|
1130
|
-
extrinsicHash: transaction.extrinsicHash
|
|
1131
|
-
}).catch(console.error);
|
|
1132
|
-
}
|
|
1133
1022
|
resetWallet() {
|
|
1134
1023
|
this.transactionSubject.next({});
|
|
1135
1024
|
}
|