@subwallet/extension-base 1.1.35-0 → 1.1.35-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/background/KoniTypes.d.ts +111 -69
- package/background/KoniTypes.js +19 -13
- package/background/errors/TransactionError.js +9 -0
- package/cjs/background/KoniTypes.js +20 -16
- package/cjs/background/errors/TransactionError.js +9 -0
- package/cjs/constants/index.js +19 -4
- package/cjs/koni/api/dotsama/balance.js +464 -0
- package/cjs/koni/api/nft/config.js +33 -23
- package/cjs/koni/api/nft/index.js +14 -0
- package/cjs/koni/api/nft/nft.js +1 -22
- package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
- package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
- package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
- package/cjs/koni/api/staking/bonding/amplitude.js +19 -16
- package/cjs/koni/api/staking/bonding/astar.js +11 -10
- package/cjs/koni/api/staking/bonding/index.js +4 -1
- package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
- package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
- package/cjs/koni/api/staking/bonding/utils.js +104 -86
- package/cjs/koni/api/staking/index.js +6 -5
- package/cjs/koni/api/staking/paraChain.js +6 -5
- package/cjs/koni/api/staking/relayChain.js +3 -2
- package/cjs/koni/api/yield/helper/utils.js +46 -0
- package/cjs/koni/background/cron.js +3 -21
- package/cjs/koni/background/handlers/Extension.js +368 -69
- package/cjs/koni/background/handlers/State.js +18 -12
- package/cjs/koni/background/handlers/index.js +4 -2
- package/cjs/koni/background/subscription.js +7 -104
- package/cjs/services/campaign-service/index.js +9 -6
- package/cjs/services/chain-service/constants.js +1 -16
- package/cjs/services/chain-service/index.js +6 -2
- package/cjs/services/chain-service/utils.js +7 -1
- package/cjs/services/earning-service/constants/chains.js +30 -0
- package/cjs/services/earning-service/constants/index.js +27 -0
- package/cjs/services/earning-service/constants/step.js +18 -0
- package/cjs/services/earning-service/handlers/base.js +262 -0
- package/cjs/services/earning-service/handlers/index.js +60 -0
- package/cjs/services/earning-service/handlers/lending/base.js +81 -0
- package/cjs/services/earning-service/handlers/lending/index.js +13 -0
- package/cjs/services/earning-service/handlers/lending/interlay.js +192 -0
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +240 -0
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +97 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +140 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +298 -0
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +227 -0
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +404 -0
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +434 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +466 -0
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +146 -0
- package/cjs/services/earning-service/handlers/native-staking/base.js +161 -0
- package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +390 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +567 -0
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +566 -0
- package/cjs/services/earning-service/handlers/special.js +493 -0
- package/cjs/services/earning-service/service.js +733 -0
- package/cjs/services/earning-service/utils/index.js +128 -0
- package/cjs/services/event-service/index.js +5 -0
- package/cjs/services/keyring-service/index.js +14 -2
- package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
- package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
- package/cjs/services/migration-service/scripts/MigrateEthProvider.js +17 -0
- package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +17 -0
- package/cjs/services/migration-service/scripts/MigrateProvider.js +29 -0
- package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
- package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
- package/cjs/services/migration-service/scripts/index.js +6 -1
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
- package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
- package/cjs/services/mint-campaign-service/constants.js +11 -0
- package/cjs/services/mint-campaign-service/index.js +18 -0
- package/cjs/services/notification-service/NotificationService.js +3 -2
- package/cjs/services/request-service/handler/PopupHandler.js +2 -3
- package/cjs/services/storage-service/DatabaseService.js +63 -0
- package/cjs/services/storage-service/databases/index.js +4 -0
- package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
- package/cjs/services/storage-service/db-stores/YieldPositionStore.js +71 -0
- package/cjs/services/storage-service/index.js +241 -0
- package/cjs/services/subscan-service/index.js +16 -0
- package/cjs/services/transaction-service/event-parser/index.js +58 -0
- package/cjs/services/transaction-service/helpers/index.js +3 -1
- package/cjs/services/transaction-service/index.js +249 -75
- package/cjs/services/transaction-service/utils.js +1 -0
- package/cjs/types/campaigns/index.js +16 -0
- package/cjs/types/campaigns/unlock-dot.js +1 -0
- package/cjs/types/index.js +44 -0
- package/cjs/types/ordinal.js +1 -0
- package/cjs/types/transaction.js +1 -0
- package/cjs/types/yield/actions/index.js +27 -0
- package/cjs/types/yield/actions/join/index.js +38 -0
- package/cjs/types/yield/actions/join/step.js +47 -0
- package/cjs/types/yield/actions/join/submit.js +1 -0
- package/cjs/types/yield/actions/join/validate.js +16 -0
- package/cjs/types/yield/actions/others.js +1 -0
- package/cjs/types/yield/index.js +27 -0
- package/cjs/types/yield/info/account/index.js +49 -0
- package/cjs/types/yield/info/account/info.js +1 -0
- package/cjs/types/yield/info/account/reward.js +1 -0
- package/cjs/types/yield/info/account/target.js +32 -0
- package/cjs/types/yield/info/account/unstake.js +27 -0
- package/cjs/types/yield/info/base.js +41 -0
- package/cjs/types/yield/info/chain/index.js +27 -0
- package/cjs/types/yield/info/chain/info.js +1 -0
- package/cjs/types/yield/info/chain/target.js +1 -0
- package/cjs/types/yield/info/index.js +49 -0
- package/cjs/types/yield/info/pallet.js +15 -0
- package/cjs/types.js +1 -0
- package/cjs/utils/address.js +34 -0
- package/cjs/utils/environment.js +23 -28
- package/cjs/utils/fetchStaticCache.js +22 -0
- package/cjs/utils/fetchStaticData.js +2 -1
- package/cjs/utils/index.js +94 -10
- package/cjs/utils/keyring.js +57 -0
- package/cjs/utils/mv3.js +14 -0
- package/cjs/utils/number.js +6 -2
- package/cjs/utils/object.js +12 -0
- package/constants/index.d.ts +6 -1
- package/constants/index.js +6 -1
- package/koni/api/nft/config.js +33 -23
- package/koni/api/nft/index.js +15 -1
- package/koni/api/nft/nft.js +2 -23
- package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
- package/koni/api/nft/ordinal_nft/constants.js +12 -0
- package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
- package/koni/api/nft/ordinal_nft/index.js +114 -0
- package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
- package/koni/api/nft/ordinal_nft/utils.js +33 -0
- package/koni/api/staking/bonding/amplitude.js +13 -10
- package/koni/api/staking/bonding/astar.js +9 -8
- package/koni/api/staking/bonding/index.d.ts +1 -1
- package/koni/api/staking/bonding/index.js +5 -1
- package/koni/api/staking/bonding/paraChain.js +12 -10
- package/koni/api/staking/bonding/relayChain.d.ts +2 -2
- package/koni/api/staking/bonding/relayChain.js +33 -30
- package/koni/api/staking/bonding/utils.d.ts +15 -38
- package/koni/api/staking/bonding/utils.js +85 -69
- package/koni/api/staking/index.js +2 -1
- package/koni/api/staking/paraChain.js +7 -6
- package/koni/api/staking/relayChain.js +4 -3
- package/koni/api/yield/helper/utils.d.ts +10 -0
- package/koni/api/yield/helper/utils.js +32 -0
- package/koni/background/cron.d.ts +0 -4
- package/koni/background/cron.js +4 -22
- package/koni/background/handlers/Extension.d.ts +17 -1
- package/koni/background/handlers/Extension.js +327 -30
- package/koni/background/handlers/State.d.ts +6 -1
- package/koni/background/handlers/State.js +17 -12
- package/koni/background/handlers/index.js +4 -2
- package/koni/background/subscription.d.ts +1 -6
- package/koni/background/subscription.js +8 -104
- package/package.json +326 -3
- package/services/campaign-service/index.js +9 -6
- package/services/chain-service/constants.d.ts +0 -12
- package/services/chain-service/constants.js +0 -14
- package/services/chain-service/index.js +6 -2
- package/services/chain-service/utils.d.ts +1 -0
- package/services/chain-service/utils.js +5 -1
- package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
- package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
- package/services/earning-service/constants/chains.d.ts +15 -0
- package/services/earning-service/constants/chains.js +22 -0
- package/services/earning-service/constants/index.d.ts +2 -0
- package/services/earning-service/constants/index.js +5 -0
- package/services/earning-service/constants/step.d.ts +3 -0
- package/services/earning-service/constants/step.js +10 -0
- package/services/earning-service/handlers/base.d.ts +113 -0
- package/services/earning-service/handlers/base.js +256 -0
- package/services/earning-service/handlers/index.d.ts +5 -0
- package/services/earning-service/handlers/index.js +8 -0
- package/services/earning-service/handlers/lending/base.d.ts +8 -0
- package/services/earning-service/handlers/lending/base.js +73 -0
- package/services/earning-service/handlers/lending/index.d.ts +1 -0
- package/services/earning-service/handlers/lending/index.js +4 -0
- package/services/earning-service/handlers/lending/interlay.d.ts +24 -0
- package/services/earning-service/handlers/lending/interlay.js +184 -0
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
- package/services/earning-service/handlers/liquid-staking/acala.js +232 -0
- package/services/earning-service/handlers/liquid-staking/base.d.ts +11 -0
- package/services/earning-service/handlers/liquid-staking/base.js +89 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +46 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.js +287 -0
- package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
- package/services/earning-service/handlers/liquid-staking/index.js +7 -0
- package/services/earning-service/handlers/liquid-staking/parallel.d.ts +26 -0
- package/services/earning-service/handlers/liquid-staking/parallel.js +219 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +34 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +394 -0
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
- package/services/earning-service/handlers/native-staking/amplitude.js +425 -0
- package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
- package/services/earning-service/handlers/native-staking/astar.js +456 -0
- package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
- package/services/earning-service/handlers/native-staking/base-para.js +138 -0
- package/services/earning-service/handlers/native-staking/base.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/base.js +152 -0
- package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
- package/services/earning-service/handlers/native-staking/index.js +7 -0
- package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
- package/services/earning-service/handlers/native-staking/para-chain.js +382 -0
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +558 -0
- package/services/earning-service/handlers/nomination-pool/index.d.ts +36 -0
- package/services/earning-service/handlers/nomination-pool/index.js +556 -0
- package/services/earning-service/handlers/special.d.ts +64 -0
- package/services/earning-service/handlers/special.js +485 -0
- package/services/earning-service/service.d.ts +94 -0
- package/services/earning-service/service.js +722 -0
- package/services/earning-service/utils/index.d.ts +18 -0
- package/services/earning-service/utils/index.js +112 -0
- package/services/event-service/index.d.ts +2 -0
- package/services/event-service/index.js +5 -0
- package/services/event-service/types.d.ts +9 -0
- package/services/keyring-service/index.d.ts +2 -1
- package/services/keyring-service/index.js +14 -2
- package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
- package/services/migration-service/scripts/DeleteEarningData.js +13 -0
- package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
- package/services/migration-service/scripts/EnableEarningChains.js +13 -0
- package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
- package/services/migration-service/scripts/index.js +6 -1
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
- package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
- package/services/mint-campaign-service/campaigns/index.js +4 -0
- package/services/mint-campaign-service/constants.d.ts +1 -0
- package/services/mint-campaign-service/constants.js +4 -0
- package/services/mint-campaign-service/index.d.ts +7 -0
- package/services/mint-campaign-service/index.js +11 -0
- package/services/notification-service/NotificationService.js +3 -2
- package/services/request-service/handler/PopupHandler.js +3 -4
- package/services/storage-service/DatabaseService.d.ts +22 -1
- package/services/storage-service/DatabaseService.js +63 -0
- package/services/storage-service/databases/index.d.ts +3 -1
- package/services/storage-service/databases/index.js +4 -0
- package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
- package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
- package/services/storage-service/db-stores/YieldPositionStore.d.ts +11 -0
- package/services/storage-service/db-stores/YieldPositionStore.js +63 -0
- package/services/subscan-service/index.d.ts +3 -2
- package/services/subscan-service/index.js +15 -0
- package/services/subscan-service/types.d.ts +20 -0
- package/services/transaction-service/event-parser/index.d.ts +3 -1
- package/services/transaction-service/event-parser/index.js +57 -1
- package/services/transaction-service/helpers/index.js +3 -1
- package/services/transaction-service/index.d.ts +6 -13
- package/services/transaction-service/index.js +247 -73
- package/services/transaction-service/types.d.ts +2 -0
- package/services/transaction-service/utils.js +1 -0
- package/types/campaigns/index.d.ts +1 -0
- package/types/campaigns/index.js +4 -0
- package/types/campaigns/unlock-dot.d.ts +71 -0
- package/types/campaigns/unlock-dot.js +1 -0
- package/types/index.d.ts +5 -0
- package/types/index.js +5 -1
- package/types/ordinal.d.ts +69 -0
- package/types/ordinal.js +1 -0
- package/types/transaction.d.ts +3 -0
- package/types/transaction.js +1 -0
- package/types/yield/actions/index.d.ts +2 -0
- package/types/yield/actions/index.js +5 -0
- package/types/yield/actions/join/index.d.ts +3 -0
- package/types/yield/actions/join/index.js +6 -0
- package/types/yield/actions/join/step.d.ts +95 -0
- package/types/yield/actions/join/step.js +46 -0
- package/types/yield/actions/join/submit.d.ts +58 -0
- package/types/yield/actions/join/submit.js +1 -0
- package/types/yield/actions/join/validate.d.ts +18 -0
- package/types/yield/actions/join/validate.js +10 -0
- package/types/yield/actions/others.d.ts +85 -0
- package/types/yield/actions/others.js +1 -0
- package/types/yield/index.d.ts +2 -0
- package/types/yield/index.js +5 -0
- package/types/yield/info/account/index.d.ts +4 -0
- package/types/yield/info/account/index.js +7 -0
- package/types/yield/info/account/info.d.ts +92 -0
- package/types/yield/info/account/info.js +1 -0
- package/types/yield/info/account/reward.d.ts +47 -0
- package/types/yield/info/account/reward.js +1 -0
- package/types/yield/info/account/target.d.ts +43 -0
- package/types/yield/info/account/target.js +27 -0
- package/types/yield/info/account/unstake.d.ts +31 -0
- package/types/yield/info/account/unstake.js +22 -0
- package/types/yield/info/base.d.ts +45 -0
- package/types/yield/info/base.js +36 -0
- package/types/yield/info/chain/index.d.ts +2 -0
- package/types/yield/info/chain/index.js +5 -0
- package/types/yield/info/chain/info.d.ts +252 -0
- package/types/yield/info/chain/info.js +1 -0
- package/types/yield/info/chain/target.d.ts +37 -0
- package/types/yield/info/chain/target.js +1 -0
- package/types/yield/info/index.d.ts +4 -0
- package/types/yield/info/index.js +7 -0
- package/types/yield/info/pallet.d.ts +143 -0
- package/types/yield/info/pallet.js +9 -0
- package/utils/environment.d.ts +9 -2
- package/utils/environment.js +14 -26
- package/utils/fetchStaticCache.d.ts +1 -0
- package/utils/fetchStaticCache.js +14 -0
- package/utils/fetchStaticData.js +2 -1
- package/utils/index.d.ts +5 -1
- package/utils/index.js +53 -3
- package/utils/mv3.d.ts +2 -0
- package/utils/mv3.js +6 -0
- package/utils/number.d.ts +2 -1
- package/utils/number.js +2 -1
- package/utils/object.d.ts +1 -0
- package/utils/object.js +6 -0
|
@@ -8,7 +8,9 @@ import ChainStakingMetadataStore from '@subwallet/extension-base/services/storag
|
|
|
8
8
|
import MantaPayStore from '@subwallet/extension-base/services/storage-service/db-stores/MantaPay';
|
|
9
9
|
import NominatorMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/NominatorMetadata';
|
|
10
10
|
import { HistoryQuery } from '@subwallet/extension-base/services/storage-service/db-stores/Transaction';
|
|
11
|
-
import
|
|
11
|
+
import YieldPoolStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPoolStore';
|
|
12
|
+
import YieldPositionStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPositionStore';
|
|
13
|
+
import { BalanceItem, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
12
14
|
import { Subscription } from 'dexie';
|
|
13
15
|
import { DexieExportJsonStructure } from 'dexie-export-import';
|
|
14
16
|
export declare const DEXIE_BACKUP_TABLES: string[];
|
|
@@ -27,6 +29,8 @@ export default class DatabaseService {
|
|
|
27
29
|
metadata: MetadataStore;
|
|
28
30
|
chain: ChainStore;
|
|
29
31
|
asset: AssetStore;
|
|
32
|
+
yieldPoolInfo: YieldPoolStore;
|
|
33
|
+
yieldPosition: YieldPositionStore;
|
|
30
34
|
chainStakingMetadata: ChainStakingMetadataStore;
|
|
31
35
|
nominatorMetadata: NominatorMetadataStore;
|
|
32
36
|
mantaPay: MantaPayStore;
|
|
@@ -35,6 +39,7 @@ export default class DatabaseService {
|
|
|
35
39
|
private logger;
|
|
36
40
|
private nftSubscription;
|
|
37
41
|
private stakingSubscription;
|
|
42
|
+
private yieldInfoSubscription;
|
|
38
43
|
constructor(eventService: EventService);
|
|
39
44
|
updatePriceStore(priceData: PriceJson): Promise<void>;
|
|
40
45
|
getPriceStore(): Promise<PriceJson | undefined>;
|
|
@@ -83,6 +88,22 @@ export default class DatabaseService {
|
|
|
83
88
|
subscribeMantaPayConfig(chain: string, callback: (data: MantaPayConfig[]) => void): void;
|
|
84
89
|
getMantaPayConfig(chain: string): Promise<any[]>;
|
|
85
90
|
getMantaPayFirstConfig(chain: string): Promise<any>;
|
|
91
|
+
removeOldEarningData(): Promise<void>;
|
|
92
|
+
updateYieldPoolStore(data: YieldPoolInfo): Promise<void>;
|
|
93
|
+
updateYieldPoolsStore(data: YieldPoolInfo[]): Promise<void>;
|
|
94
|
+
deleteYieldPoolInfo(slugs: string[]): Promise<void>;
|
|
95
|
+
getYieldPools(): Promise<YieldPoolInfo[]>;
|
|
96
|
+
getYieldPoolStakingInfo(chain: string, poolType: YieldPoolType): Promise<YieldPoolInfo | undefined>;
|
|
97
|
+
getYieldPool(slug: string): Promise<YieldPoolInfo | undefined>;
|
|
98
|
+
getYieldPositionByAddressAndSlug(address: string, slug: string): Promise<YieldPositionInfo | undefined>;
|
|
99
|
+
subscribeYieldPoolInfo(chains: string[], callback: (data: YieldPoolInfo[]) => void): Subscription;
|
|
100
|
+
removeYieldPositionByAddresses(addresses: string[]): import("dexie").PromiseExtended<number>;
|
|
101
|
+
removeYieldPositionByChains(chains: string[]): import("dexie").PromiseExtended<number>;
|
|
102
|
+
updateYieldPosition(data: YieldPositionInfo): Promise<void>;
|
|
103
|
+
updateYieldPositions(data: YieldPositionInfo[]): Promise<void>;
|
|
104
|
+
getYieldPositionByAddress(addresses: string[]): Promise<YieldPositionInfo[]>;
|
|
105
|
+
subscribeYieldPosition(addresses: string[], callback: (data: YieldPositionInfo[]) => void): Subscription;
|
|
106
|
+
getYieldNominationPoolPosition(addresses: string[], chains: string[]): Promise<YieldPositionInfo[]>;
|
|
86
107
|
getAllCampaign(): Promise<import("@subwallet/extension-base/background/KoniTypes").CampaignData[]>;
|
|
87
108
|
subscribeProcessingCampaign(): import("dexie").Observable<import("@subwallet/extension-base/background/KoniTypes").CampaignData[]>;
|
|
88
109
|
getProcessingCampaign(): Promise<import("@subwallet/extension-base/background/KoniTypes").CampaignData[]>;
|
|
@@ -8,6 +8,8 @@ import CampaignStore from '@subwallet/extension-base/services/storage-service/db
|
|
|
8
8
|
import ChainStakingMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/ChainStakingMetadata';
|
|
9
9
|
import MantaPayStore from '@subwallet/extension-base/services/storage-service/db-stores/MantaPay';
|
|
10
10
|
import NominatorMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/NominatorMetadata';
|
|
11
|
+
import YieldPoolStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPoolStore';
|
|
12
|
+
import YieldPositionStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPositionStore';
|
|
11
13
|
import { reformatAddress } from '@subwallet/extension-base/utils';
|
|
12
14
|
import { exportDB } from 'dexie-export-import';
|
|
13
15
|
import { logger as createLogger } from '@polkadot/util';
|
|
@@ -34,6 +36,9 @@ export default class DatabaseService {
|
|
|
34
36
|
metadata: new MetadataStore(this._db.metadata),
|
|
35
37
|
chain: new ChainStore(this._db.chain),
|
|
36
38
|
asset: new AssetStore(this._db.asset),
|
|
39
|
+
// yield
|
|
40
|
+
yieldPoolInfo: new YieldPoolStore(this._db.yieldPoolInfo),
|
|
41
|
+
yieldPosition: new YieldPositionStore(this._db.yieldPosition),
|
|
37
42
|
// staking
|
|
38
43
|
chainStakingMetadata: new ChainStakingMetadataStore(this._db.chainStakingMetadata),
|
|
39
44
|
nominatorMetadata: new NominatorMetadataStore(this._db.nominatorMetadata),
|
|
@@ -274,6 +279,64 @@ export default class DatabaseService {
|
|
|
274
279
|
return this.stores.mantaPay.getFirstConfig(chain);
|
|
275
280
|
}
|
|
276
281
|
|
|
282
|
+
/* Earning */
|
|
283
|
+
|
|
284
|
+
async removeOldEarningData() {
|
|
285
|
+
await this.stores.yieldPoolInfo.clear();
|
|
286
|
+
await this.stores.yieldPosition.clear();
|
|
287
|
+
}
|
|
288
|
+
async updateYieldPoolStore(data) {
|
|
289
|
+
await this.stores.yieldPoolInfo.upsert(data);
|
|
290
|
+
}
|
|
291
|
+
async updateYieldPoolsStore(data) {
|
|
292
|
+
await this.stores.yieldPoolInfo.bulkUpsert(data);
|
|
293
|
+
}
|
|
294
|
+
async deleteYieldPoolInfo(slugs) {
|
|
295
|
+
await this.stores.yieldPoolInfo.bulkDelete(slugs);
|
|
296
|
+
}
|
|
297
|
+
async getYieldPools() {
|
|
298
|
+
return this.stores.yieldPoolInfo.getAll();
|
|
299
|
+
}
|
|
300
|
+
async getYieldPoolStakingInfo(chain, poolType) {
|
|
301
|
+
return this.stores.yieldPoolInfo.getByChainAndType(chain, poolType);
|
|
302
|
+
}
|
|
303
|
+
async getYieldPool(slug) {
|
|
304
|
+
return this.stores.yieldPoolInfo.getBySlug(slug);
|
|
305
|
+
}
|
|
306
|
+
async getYieldPositionByAddressAndSlug(address, slug) {
|
|
307
|
+
return this.stores.yieldPosition.getByAddressAndSlug(address, slug);
|
|
308
|
+
}
|
|
309
|
+
subscribeYieldPoolInfo(chains, callback) {
|
|
310
|
+
this.yieldInfoSubscription && this.yieldInfoSubscription.unsubscribe();
|
|
311
|
+
this.yieldInfoSubscription = this.stores.yieldPoolInfo.subscribeYieldPoolInfo(chains).subscribe({
|
|
312
|
+
next: data => callback && callback(data)
|
|
313
|
+
});
|
|
314
|
+
return this.yieldInfoSubscription;
|
|
315
|
+
}
|
|
316
|
+
removeYieldPositionByAddresses(addresses) {
|
|
317
|
+
return this.stores.yieldPosition.removeByAddresses(addresses);
|
|
318
|
+
}
|
|
319
|
+
removeYieldPositionByChains(chains) {
|
|
320
|
+
return this.stores.yieldPosition.removeByChains(chains);
|
|
321
|
+
}
|
|
322
|
+
async updateYieldPosition(data) {
|
|
323
|
+
await this.stores.yieldPosition.upsert(data);
|
|
324
|
+
}
|
|
325
|
+
async updateYieldPositions(data) {
|
|
326
|
+
await this.stores.yieldPosition.bulkUpsert(data);
|
|
327
|
+
}
|
|
328
|
+
async getYieldPositionByAddress(addresses) {
|
|
329
|
+
return this.stores.yieldPosition.getByAddress(addresses);
|
|
330
|
+
}
|
|
331
|
+
subscribeYieldPosition(addresses, callback) {
|
|
332
|
+
return this.stores.yieldPosition.subscribeYieldPositions(addresses).subscribe({
|
|
333
|
+
next: data => callback && callback(data)
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
async getYieldNominationPoolPosition(addresses, chains) {
|
|
337
|
+
return this.stores.yieldPosition.getByAddressAndChains(addresses, chains);
|
|
338
|
+
}
|
|
339
|
+
|
|
277
340
|
/* Campaign */
|
|
278
341
|
|
|
279
342
|
getAllCampaign() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _AssetRef, _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
|
|
2
2
|
import { CampaignData, ChainStakingMetadata, CrowdloanItem, MetadataItem, NftCollection, NftItem, NominatorMetadata, PriceJson, StakingItem, TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
|
-
import { BalanceItem } from '@subwallet/extension-base/types';
|
|
3
|
+
import { BalanceItem, YieldPoolInfo, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
4
4
|
import Dexie, { Table } from 'dexie';
|
|
5
5
|
export interface DefaultChainDoc {
|
|
6
6
|
chain: string;
|
|
@@ -48,6 +48,8 @@ export default class KoniDatabase extends Dexie {
|
|
|
48
48
|
asset: Table<_ChainAsset, object>;
|
|
49
49
|
chainStakingMetadata: Table<ChainStakingMetadata, object>;
|
|
50
50
|
nominatorMetadata: Table<NominatorMetadata, object>;
|
|
51
|
+
yieldPoolInfo: Table<YieldPoolInfo, object>;
|
|
52
|
+
yieldPosition: Table<YieldPositionInfo, object>;
|
|
51
53
|
mantaPay: Table<IMantaPayLedger, object>;
|
|
52
54
|
campaign: Table<ICampaign, object>;
|
|
53
55
|
private schemaVersion;
|
|
@@ -31,6 +31,10 @@ export default class KoniDatabase extends Dexie {
|
|
|
31
31
|
mantaPay: 'key, chain'
|
|
32
32
|
});
|
|
33
33
|
this.conditionalVersion(4, {
|
|
34
|
+
yieldPoolInfo: 'slug, chain, type',
|
|
35
|
+
yieldPosition: '[slug+chain+address], [address+slug], address, chain'
|
|
36
|
+
});
|
|
37
|
+
this.conditionalVersion(5, {
|
|
34
38
|
campaign: 'slug'
|
|
35
39
|
});
|
|
36
40
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import { StakingStatus } from '@subwallet/extension-base/background/KoniTypes';
|
|
5
4
|
import BaseStoreWithAddressAndChain from '@subwallet/extension-base/services/storage-service/db-stores/BaseStoreWithAddressAndChain';
|
|
5
|
+
import { EarningStatus } from '@subwallet/extension-base/types';
|
|
6
6
|
import { liveQuery } from 'dexie';
|
|
7
7
|
export default class NominatorMetadataStore extends BaseStoreWithAddressAndChain {
|
|
8
8
|
async getAll() {
|
|
9
|
-
return this.table.filter(item => item.status !==
|
|
9
|
+
return this.table.filter(item => item.status !== EarningStatus.NOT_STAKING).toArray();
|
|
10
10
|
}
|
|
11
11
|
subscribeByAddresses(addresses) {
|
|
12
12
|
return liveQuery(() => this.getByAddress(addresses));
|
|
@@ -15,7 +15,7 @@ export default class NominatorMetadataStore extends BaseStoreWithAddressAndChain
|
|
|
15
15
|
return liveQuery(() => this.getAll());
|
|
16
16
|
}
|
|
17
17
|
getByAddress(addresses) {
|
|
18
|
-
return this.table.where('address').anyOfIgnoreCase(addresses).and(item => item.status !==
|
|
18
|
+
return this.table.where('address').anyOfIgnoreCase(addresses).and(item => item.status !== EarningStatus.NOT_STAKING).toArray();
|
|
19
19
|
}
|
|
20
20
|
async removeByAddress(address) {
|
|
21
21
|
return this.table.where('address').anyOfIgnoreCase(address).delete();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
|
|
2
|
+
import { YieldPoolInfo, YieldPoolType } from '@subwallet/extension-base/types';
|
|
3
|
+
export default class YieldPoolStore extends BaseStore<YieldPoolInfo> {
|
|
4
|
+
getAll(): Promise<YieldPoolInfo[]>;
|
|
5
|
+
getByChains(chains: string[]): Promise<YieldPoolInfo[]>;
|
|
6
|
+
getByChainAndType(chain: string, poolType: YieldPoolType): Promise<YieldPoolInfo | undefined>;
|
|
7
|
+
bulkDelete(slugs: string[]): Promise<void>;
|
|
8
|
+
getBySlug(slug: string): Promise<YieldPoolInfo | undefined>;
|
|
9
|
+
subscribeYieldPoolInfo(chains: string[]): import("dexie").Observable<YieldPoolInfo[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
|
|
5
|
+
import { liveQuery } from 'dexie';
|
|
6
|
+
export default class YieldPoolStore extends BaseStore {
|
|
7
|
+
async getAll() {
|
|
8
|
+
return this.table.toArray();
|
|
9
|
+
}
|
|
10
|
+
async getByChains(chains) {
|
|
11
|
+
if (chains.length === 0) {
|
|
12
|
+
return this.getAll();
|
|
13
|
+
}
|
|
14
|
+
return this.table.where('chain').anyOfIgnoreCase(chains).toArray();
|
|
15
|
+
}
|
|
16
|
+
async getByChainAndType(chain, poolType) {
|
|
17
|
+
return this.table.where('chain').equals(chain).and(item => item.type === poolType).first();
|
|
18
|
+
}
|
|
19
|
+
async bulkDelete(slugs) {
|
|
20
|
+
return this.table.bulkDelete(slugs);
|
|
21
|
+
}
|
|
22
|
+
async getBySlug(slug) {
|
|
23
|
+
return this.table.get(slug);
|
|
24
|
+
}
|
|
25
|
+
subscribeYieldPoolInfo(chains) {
|
|
26
|
+
return liveQuery(() => this.getByChains(chains));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
|
|
2
|
+
import { YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
3
|
+
export default class YieldPositionStore extends BaseStore<YieldPositionInfo> {
|
|
4
|
+
getAll(): Promise<YieldPositionInfo[]>;
|
|
5
|
+
getByAddress(addresses: string[]): Promise<YieldPositionInfo[]>;
|
|
6
|
+
removeByAddresses(addresses: string[]): import("dexie").PromiseExtended<number>;
|
|
7
|
+
removeByChains(chains: string[]): import("dexie").PromiseExtended<number>;
|
|
8
|
+
getByAddressAndChains(addresses: string[], chains: string[]): Promise<YieldPositionInfo[]>;
|
|
9
|
+
getByAddressAndSlug(address: string, slug: string): import("dexie").PromiseExtended<YieldPositionInfo | undefined>;
|
|
10
|
+
subscribeYieldPositions(addresses: string[]): import("dexie").Observable<YieldPositionInfo[]>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
|
|
5
|
+
import { liveQuery } from 'dexie';
|
|
6
|
+
export default class YieldPositionStore extends BaseStore {
|
|
7
|
+
async getAll() {
|
|
8
|
+
return this.table
|
|
9
|
+
// .filter((item) => {
|
|
10
|
+
// let isValidLiquidStaking = false;
|
|
11
|
+
//
|
|
12
|
+
// if (item.type === YieldPoolType.LIQUID_STAKING) {
|
|
13
|
+
// const nominatorMetadata = item.metadata as NominatorMetadata;
|
|
14
|
+
//
|
|
15
|
+
// if (nominatorMetadata.unstakings.length > 0) {
|
|
16
|
+
// console.log('true', item);
|
|
17
|
+
// isValidLiquidStaking = true;
|
|
18
|
+
// }
|
|
19
|
+
// }
|
|
20
|
+
//
|
|
21
|
+
// return parseInt(item.balance[0].activeBalance) > 0 || isValidLiquidStaking;
|
|
22
|
+
// })
|
|
23
|
+
.toArray();
|
|
24
|
+
}
|
|
25
|
+
async getByAddress(addresses) {
|
|
26
|
+
if (addresses.length === 0) {
|
|
27
|
+
return this.getAll();
|
|
28
|
+
}
|
|
29
|
+
return this.table.where('address').anyOfIgnoreCase(addresses)
|
|
30
|
+
// .filter((item) => {
|
|
31
|
+
// let isValidLiquidStaking = false;
|
|
32
|
+
//
|
|
33
|
+
// if (item.type === YieldPoolType.LIQUID_STAKING) {
|
|
34
|
+
// const nominatorMetadata = item.metadata as NominatorMetadata;
|
|
35
|
+
//
|
|
36
|
+
// if (nominatorMetadata && nominatorMetadata?.unstakings?.length > 0) {
|
|
37
|
+
// isValidLiquidStaking = true;
|
|
38
|
+
// }
|
|
39
|
+
// }
|
|
40
|
+
//
|
|
41
|
+
// return parseInt(item.balance[0].activeBalance) > 0 || isValidLiquidStaking;
|
|
42
|
+
// })
|
|
43
|
+
.toArray();
|
|
44
|
+
}
|
|
45
|
+
removeByAddresses(addresses) {
|
|
46
|
+
return this.table.where('address').anyOf(addresses).delete();
|
|
47
|
+
}
|
|
48
|
+
removeByChains(chains) {
|
|
49
|
+
return this.table.where('chain').anyOf(chains).delete();
|
|
50
|
+
}
|
|
51
|
+
async getByAddressAndChains(addresses, chains) {
|
|
52
|
+
return this.table.where('address').anyOfIgnoreCase(addresses).filter(item => chains.includes(item.chain)).toArray();
|
|
53
|
+
}
|
|
54
|
+
getByAddressAndSlug(address, slug) {
|
|
55
|
+
return this.table.get({
|
|
56
|
+
address,
|
|
57
|
+
slug
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
subscribeYieldPositions(addresses) {
|
|
61
|
+
return liveQuery(() => this.getByAddress(addresses));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CrowdloanContributionsResponse, ExtrinsicItem, ExtrinsicsListResponse, IMultiChainBalance, RequestBlockRange, TransferItem, TransfersListResponse } from '@subwallet/extension-base/services/subscan-service/types';
|
|
1
|
+
import { CrowdloanContributionsResponse, ExtrinsicItem, ExtrinsicsListResponse, IMultiChainBalance, RequestBlockRange, RewardHistoryListResponse, SubscanRequest, TransferItem, TransfersListResponse } from '@subwallet/extension-base/services/subscan-service/types';
|
|
2
2
|
export declare class SubscanService {
|
|
3
3
|
private subscanChainMap;
|
|
4
4
|
private limitRate;
|
|
@@ -15,7 +15,7 @@ export declare class SubscanService {
|
|
|
15
15
|
});
|
|
16
16
|
private getApiUrl;
|
|
17
17
|
private postRequest;
|
|
18
|
-
|
|
18
|
+
addRequest<T>(run: SubscanRequest<T>['run']): Promise<T>;
|
|
19
19
|
private process;
|
|
20
20
|
checkSupportedSubscanChain(chain: string): boolean;
|
|
21
21
|
setSubscanChainMap(subscanChainMap: Record<string, string>): void;
|
|
@@ -31,4 +31,5 @@ export declare class SubscanService {
|
|
|
31
31
|
page: number;
|
|
32
32
|
record: number;
|
|
33
33
|
}): Promise<Record<string, TransferItem[]>>;
|
|
34
|
+
getRewardHistoryList(chain: string, address: string, page?: number): Promise<RewardHistoryListResponse>;
|
|
34
35
|
}
|
|
@@ -237,4 +237,19 @@ export class SubscanService {
|
|
|
237
237
|
await _getTransferItems(0);
|
|
238
238
|
return resultMap;
|
|
239
239
|
}
|
|
240
|
+
getRewardHistoryList(chain, address, page = 0) {
|
|
241
|
+
return this.addRequest(async () => {
|
|
242
|
+
const rs = await this.postRequest(this.getApiUrl(chain, 'api/scan/account/reward_slash'), {
|
|
243
|
+
page,
|
|
244
|
+
category: 'Reward',
|
|
245
|
+
row: 10,
|
|
246
|
+
address
|
|
247
|
+
});
|
|
248
|
+
if (rs.status !== 200) {
|
|
249
|
+
throw new SWError('SubscanService.getRewardHistoryList', await rs.text());
|
|
250
|
+
}
|
|
251
|
+
const jsonData = await rs.json();
|
|
252
|
+
return jsonData.data;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
240
255
|
}
|
|
@@ -175,3 +175,23 @@ export declare type RequestBlockRange = {
|
|
|
175
175
|
from: number | null;
|
|
176
176
|
to: number | null;
|
|
177
177
|
};
|
|
178
|
+
export interface RewardHistoryItem {
|
|
179
|
+
block_num: number;
|
|
180
|
+
extrinsic_idx: number;
|
|
181
|
+
stash: string;
|
|
182
|
+
account: string;
|
|
183
|
+
module_id: string;
|
|
184
|
+
event_id: string;
|
|
185
|
+
event_method: string;
|
|
186
|
+
params: string;
|
|
187
|
+
extrinsic_hash: string;
|
|
188
|
+
event_idx: number;
|
|
189
|
+
amount: string;
|
|
190
|
+
block_timestamp: number;
|
|
191
|
+
event_index: string;
|
|
192
|
+
extrinsic_index: string;
|
|
193
|
+
}
|
|
194
|
+
export interface RewardHistoryListResponse {
|
|
195
|
+
count: number;
|
|
196
|
+
list: null | RewardHistoryItem[];
|
|
197
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
|
|
2
|
-
import { TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
|
|
2
|
+
import { ExtrinsicType, TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
3
|
import { EventRecord } from '@polkadot/types/interfaces';
|
|
4
4
|
export declare function parseXcmEventLogs(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], chain: string, sendingTokenInfo: _ChainAsset, chainInfo: _ChainInfo): void;
|
|
5
5
|
export declare function parseTransferEventLogs(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], chain: string, sendingTokenInfo: _ChainAsset, chainInfo: _ChainInfo): void;
|
|
6
|
+
export declare function parseLiquidStakingEvents(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], inputTokenInfo: _ChainAsset, chainInfo: _ChainInfo, feePaidWithInputAsset: boolean, extrinsicType: ExtrinsicType): void;
|
|
7
|
+
export declare function parseLiquidStakingFastUnstakeEvents(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], chainInfo: _ChainInfo, extrinsicType: ExtrinsicType): void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
5
|
+
import { _getAssetDecimals, _getAssetSymbol, _getChainNativeTokenBasicInfo } from '@subwallet/extension-base/services/chain-service/utils';
|
|
5
6
|
export function parseXcmEventLogs(historyItem, eventLogs, chain, sendingTokenInfo, chainInfo) {
|
|
6
7
|
for (let index = 0; index < eventLogs.length; index++) {
|
|
7
8
|
const record = eventLogs[index];
|
|
@@ -65,4 +66,59 @@ export function parseTransferEventLogs(historyItem, eventLogs, chain, sendingTok
|
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
}
|
|
69
|
+
}
|
|
70
|
+
export function parseLiquidStakingEvents(historyItem, eventLogs, inputTokenInfo, chainInfo, feePaidWithInputAsset, extrinsicType) {
|
|
71
|
+
if (feePaidWithInputAsset) {
|
|
72
|
+
historyItem.fee = {
|
|
73
|
+
value: '0',
|
|
74
|
+
// TODO
|
|
75
|
+
symbol: _getAssetSymbol(inputTokenInfo),
|
|
76
|
+
decimals: _getAssetDecimals(inputTokenInfo)
|
|
77
|
+
};
|
|
78
|
+
} else {
|
|
79
|
+
for (let index = 0; index < eventLogs.length; index++) {
|
|
80
|
+
const record = eventLogs[index];
|
|
81
|
+
const {
|
|
82
|
+
decimals: nativeDecimals,
|
|
83
|
+
symbol: nativeSymbol
|
|
84
|
+
} = _getChainNativeTokenBasicInfo(chainInfo);
|
|
85
|
+
const section = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
|
|
86
|
+
const eventMethod = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
|
|
87
|
+
if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
|
|
88
|
+
var _record$event$data$9;
|
|
89
|
+
if ((_record$event$data$9 = record.event.data[2]) !== null && _record$event$data$9 !== void 0 && _record$event$data$9.toString()) {
|
|
90
|
+
var _record$event$data$10;
|
|
91
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
92
|
+
historyItem.fee = {
|
|
93
|
+
value: ((_record$event$data$10 = record.event.data[2]) === null || _record$event$data$10 === void 0 ? void 0 : _record$event$data$10.toString()) || '0',
|
|
94
|
+
symbol: nativeSymbol,
|
|
95
|
+
decimals: nativeDecimals
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export function parseLiquidStakingFastUnstakeEvents(historyItem, eventLogs, chainInfo, extrinsicType) {
|
|
103
|
+
for (let index = 0; index < eventLogs.length; index++) {
|
|
104
|
+
const record = eventLogs[index];
|
|
105
|
+
const {
|
|
106
|
+
decimals: nativeDecimals,
|
|
107
|
+
symbol: nativeSymbol
|
|
108
|
+
} = _getChainNativeTokenBasicInfo(chainInfo);
|
|
109
|
+
const section = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
|
|
110
|
+
const eventMethod = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
|
|
111
|
+
if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
|
|
112
|
+
var _record$event$data$11;
|
|
113
|
+
if ((_record$event$data$11 = record.event.data[2]) !== null && _record$event$data$11 !== void 0 && _record$event$data$11.toString()) {
|
|
114
|
+
var _record$event$data$12;
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
116
|
+
historyItem.fee = {
|
|
117
|
+
value: ((_record$event$data$12 = record.event.data[2]) === null || _record$event$data$12 === void 0 ? void 0 : _record$event$data$12.toString()) || '0',
|
|
118
|
+
symbol: nativeSymbol,
|
|
119
|
+
decimals: nativeDecimals
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
68
124
|
}
|
|
@@ -30,7 +30,7 @@ const typeName = type => {
|
|
|
30
30
|
case ExtrinsicType.STAKING_BOND:
|
|
31
31
|
return 'Bond';
|
|
32
32
|
case ExtrinsicType.STAKING_UNBOND:
|
|
33
|
-
return '
|
|
33
|
+
return 'Unstake';
|
|
34
34
|
case ExtrinsicType.STAKING_CLAIM_REWARD:
|
|
35
35
|
return 'Claim reward';
|
|
36
36
|
case ExtrinsicType.STAKING_WITHDRAW:
|
|
@@ -45,6 +45,8 @@ const typeName = type => {
|
|
|
45
45
|
return 'Cancel compounding';
|
|
46
46
|
case ExtrinsicType.STAKING_POOL_WITHDRAW:
|
|
47
47
|
return 'Withdraw pool';
|
|
48
|
+
case ExtrinsicType.JOIN_YIELD_POOL:
|
|
49
|
+
return 'Start earning';
|
|
48
50
|
case ExtrinsicType.UNKNOWN:
|
|
49
51
|
default:
|
|
50
52
|
return 'unknown';
|
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
|
|
2
|
-
import
|
|
3
|
-
import { ChainService } from '@subwallet/extension-base/services/chain-service';
|
|
4
|
-
import { EventService } from '@subwallet/extension-base/services/event-service';
|
|
5
|
-
import { HistoryService } from '@subwallet/extension-base/services/history-service';
|
|
6
|
-
import NotificationService from '@subwallet/extension-base/services/notification-service/NotificationService';
|
|
7
|
-
import RequestService from '@subwallet/extension-base/services/request-service';
|
|
8
|
-
import DatabaseService from '@subwallet/extension-base/services/storage-service/DatabaseService';
|
|
2
|
+
import KoniState from '@subwallet/extension-base/koni/background/handlers/State';
|
|
9
3
|
import { SWTransaction, SWTransactionInput, SWTransactionResponse, TransactionEmitter } from '@subwallet/extension-base/services/transaction-service/types';
|
|
10
4
|
import { BehaviorSubject } from 'rxjs';
|
|
11
5
|
import { TransactionConfig } from 'web3-core';
|
|
12
6
|
import { HexString } from '@polkadot/util/types';
|
|
13
7
|
export default class TransactionService {
|
|
14
|
-
private readonly
|
|
15
|
-
private readonly
|
|
16
|
-
private readonly databaseService;
|
|
8
|
+
private readonly state;
|
|
9
|
+
private readonly transactionSubject;
|
|
17
10
|
private readonly eventService;
|
|
18
11
|
private readonly historyService;
|
|
19
12
|
private readonly notificationService;
|
|
20
|
-
private readonly
|
|
21
|
-
private readonly transactionSubject;
|
|
13
|
+
private readonly chainService;
|
|
22
14
|
private readonly watchTransactionSubscribes;
|
|
23
15
|
private get transactions();
|
|
24
|
-
constructor(
|
|
16
|
+
constructor(state: KoniState);
|
|
25
17
|
private get allTransactions();
|
|
26
18
|
private get processingTransactions();
|
|
27
19
|
getTransaction(id: string): SWTransaction;
|
|
@@ -48,5 +40,6 @@ export default class TransactionService {
|
|
|
48
40
|
private signAndSendEvmTransaction;
|
|
49
41
|
private signAndSendSubstrateTransaction;
|
|
50
42
|
private handleTransactionTimeout;
|
|
43
|
+
private handlePostEarningTransaction;
|
|
51
44
|
resetWallet(): void;
|
|
52
45
|
}
|