@subwallet/extension-base 1.1.29-0 → 1.1.29-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 +94 -68
- package/background/KoniTypes.js +16 -13
- package/background/errors/TransactionError.js +9 -0
- package/cjs/background/KoniTypes.js +17 -16
- package/cjs/background/errors/TransactionError.js +9 -0
- package/cjs/constants/index.js +9 -3
- package/cjs/koni/api/nft/config.js +33 -23
- package/cjs/koni/api/nft/index.js +14 -0
- package/cjs/koni/api/nft/nft.js +1 -22
- package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
- package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
- package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
- package/cjs/koni/api/staking/bonding/amplitude.js +17 -15
- package/cjs/koni/api/staking/bonding/astar.js +11 -10
- package/cjs/koni/api/staking/bonding/index.js +4 -1
- package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
- package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
- package/cjs/koni/api/staking/bonding/utils.js +104 -86
- package/cjs/koni/api/staking/index.js +6 -5
- package/cjs/koni/api/staking/paraChain.js +6 -5
- package/cjs/koni/api/staking/relayChain.js +3 -2
- package/cjs/koni/api/yield/helper/utils.js +46 -0
- package/cjs/koni/background/cron.js +2 -0
- package/cjs/koni/background/handlers/Extension.js +347 -69
- package/cjs/koni/background/handlers/State.js +51 -3
- package/cjs/koni/background/handlers/index.js +4 -2
- package/cjs/koni/background/subscription.js +88 -18
- package/cjs/services/campaign-service/index.js +9 -6
- package/cjs/services/chain-service/constants.js +2 -16
- package/cjs/services/chain-service/utils.js +7 -1
- package/cjs/services/earning-service/constants/chains.js +29 -0
- package/cjs/services/earning-service/constants/index.js +27 -0
- package/cjs/services/earning-service/constants/step.js +18 -0
- package/cjs/services/earning-service/handlers/base.js +230 -0
- package/cjs/services/earning-service/handlers/index.js +60 -0
- package/cjs/services/earning-service/handlers/lending/base.js +20 -0
- package/cjs/services/earning-service/handlers/lending/index.js +13 -0
- package/cjs/services/earning-service/handlers/lending/interlay.js +176 -0
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +206 -0
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +43 -0
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +267 -0
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +190 -0
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +382 -0
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +380 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +454 -0
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +137 -0
- package/cjs/services/earning-service/handlers/native-staking/base.js +119 -0
- package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +381 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +540 -0
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +528 -0
- package/cjs/services/earning-service/handlers/special.js +412 -0
- package/cjs/services/earning-service/service.js +351 -0
- package/cjs/services/earning-service/utils/index.js +128 -0
- package/cjs/services/event-service/index.js +4 -0
- package/cjs/services/keyring-service/index.js +14 -2
- package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
- package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
- package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
- package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
- package/cjs/services/migration-service/scripts/index.js +7 -1
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
- package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
- package/cjs/services/mint-campaign-service/constants.js +11 -0
- package/cjs/services/mint-campaign-service/index.js +18 -0
- package/cjs/services/notification-service/NotificationService.js +1 -1
- package/cjs/services/storage-service/DatabaseService.js +51 -0
- package/cjs/services/storage-service/databases/index.js +4 -0
- package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
- package/cjs/services/storage-service/db-stores/YieldPositionStore.js +65 -0
- package/cjs/services/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 +185 -74
- package/cjs/services/transaction-service/utils.js +1 -0
- package/cjs/types/campaigns/index.js +16 -0
- package/cjs/types/campaigns/unlock-dot.js +1 -0
- package/cjs/types/index.js +44 -0
- package/cjs/types/ordinal.js +1 -0
- package/cjs/types/transaction.js +1 -0
- package/cjs/types/yield/actions/index.js +27 -0
- package/cjs/types/yield/actions/join/index.js +38 -0
- package/cjs/types/yield/actions/join/step.js +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/utils/fetchStaticData.js +2 -1
- package/cjs/utils/index.js +89 -1
- package/cjs/utils/object.js +12 -0
- package/cjs/utils/yield/index.js +3 -0
- package/constants/index.d.ts +2 -0
- package/constants/index.js +2 -0
- package/koni/api/nft/config.js +33 -23
- package/koni/api/nft/index.js +15 -1
- package/koni/api/nft/nft.js +2 -23
- package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
- package/koni/api/nft/ordinal_nft/constants.js +12 -0
- package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
- package/koni/api/nft/ordinal_nft/index.js +114 -0
- package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
- package/koni/api/nft/ordinal_nft/utils.js +33 -0
- package/koni/api/staking/bonding/amplitude.js +11 -9
- package/koni/api/staking/bonding/astar.js +9 -8
- package/koni/api/staking/bonding/index.d.ts +1 -1
- package/koni/api/staking/bonding/index.js +5 -1
- package/koni/api/staking/bonding/paraChain.js +12 -10
- package/koni/api/staking/bonding/relayChain.d.ts +2 -2
- package/koni/api/staking/bonding/relayChain.js +33 -30
- package/koni/api/staking/bonding/utils.d.ts +15 -38
- package/koni/api/staking/bonding/utils.js +85 -69
- package/koni/api/staking/index.js +2 -1
- package/koni/api/staking/paraChain.js +7 -6
- package/koni/api/staking/relayChain.js +4 -3
- package/koni/api/yield/helper/utils.d.ts +10 -0
- package/koni/api/yield/helper/utils.js +32 -0
- package/koni/background/cron.js +2 -0
- package/koni/background/handlers/Extension.d.ts +16 -1
- package/koni/background/handlers/Extension.js +306 -30
- package/koni/background/handlers/State.d.ts +18 -2
- package/koni/background/handlers/State.js +50 -3
- package/koni/background/handlers/index.js +4 -2
- package/koni/background/subscription.d.ts +5 -1
- package/koni/background/subscription.js +90 -20
- package/package.json +316 -3
- package/services/campaign-service/index.js +9 -6
- package/services/chain-service/constants.d.ts +0 -11
- package/services/chain-service/constants.js +1 -14
- package/services/chain-service/utils.d.ts +1 -0
- package/services/chain-service/utils.js +5 -1
- package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
- package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
- package/services/earning-service/constants/chains.d.ts +14 -0
- package/services/earning-service/constants/chains.js +21 -0
- package/services/earning-service/constants/index.d.ts +2 -0
- package/services/earning-service/constants/index.js +5 -0
- package/services/earning-service/constants/step.d.ts +3 -0
- package/services/earning-service/constants/step.js +10 -0
- package/services/earning-service/handlers/base.d.ts +108 -0
- package/services/earning-service/handlers/base.js +224 -0
- package/services/earning-service/handlers/index.d.ts +5 -0
- package/services/earning-service/handlers/index.js +8 -0
- package/services/earning-service/handlers/lending/base.d.ts +6 -0
- package/services/earning-service/handlers/lending/base.js +12 -0
- package/services/earning-service/handlers/lending/index.d.ts +1 -0
- package/services/earning-service/handlers/lending/index.js +4 -0
- package/services/earning-service/handlers/lending/interlay.d.ts +22 -0
- package/services/earning-service/handlers/lending/interlay.js +168 -0
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
- package/services/earning-service/handlers/liquid-staking/acala.js +198 -0
- package/services/earning-service/handlers/liquid-staking/base.d.ts +9 -0
- package/services/earning-service/handlers/liquid-staking/base.js +35 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +44 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.js +256 -0
- package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
- package/services/earning-service/handlers/liquid-staking/index.js +7 -0
- package/services/earning-service/handlers/liquid-staking/parallel.d.ts +27 -0
- package/services/earning-service/handlers/liquid-staking/parallel.js +182 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +36 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +372 -0
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
- package/services/earning-service/handlers/native-staking/amplitude.js +371 -0
- package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
- package/services/earning-service/handlers/native-staking/astar.js +444 -0
- package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
- package/services/earning-service/handlers/native-staking/base-para.js +129 -0
- package/services/earning-service/handlers/native-staking/base.d.ts +20 -0
- package/services/earning-service/handlers/native-staking/base.js +110 -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 +373 -0
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +531 -0
- package/services/earning-service/handlers/nomination-pool/index.d.ts +33 -0
- package/services/earning-service/handlers/nomination-pool/index.js +518 -0
- package/services/earning-service/handlers/special.d.ts +59 -0
- package/services/earning-service/handlers/special.js +404 -0
- package/services/earning-service/service.d.ts +40 -0
- package/services/earning-service/service.js +343 -0
- package/services/earning-service/utils/index.d.ts +18 -0
- package/services/earning-service/utils/index.js +112 -0
- package/services/event-service/index.d.ts +1 -0
- package/services/event-service/index.js +4 -0
- package/services/event-service/types.d.ts +8 -0
- package/services/keyring-service/index.d.ts +2 -1
- package/services/keyring-service/index.js +14 -2
- package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
- package/services/migration-service/scripts/DeleteEarningData.js +13 -0
- package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
- package/services/migration-service/scripts/EnableEarningChains.js +13 -0
- package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
- package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
- package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
- package/services/migration-service/scripts/index.js +7 -1
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
- package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
- package/services/mint-campaign-service/campaigns/index.js +4 -0
- package/services/mint-campaign-service/constants.d.ts +1 -0
- package/services/mint-campaign-service/constants.js +4 -0
- package/services/mint-campaign-service/index.d.ts +7 -0
- package/services/mint-campaign-service/index.js +11 -0
- package/services/notification-service/NotificationService.js +1 -1
- package/services/storage-service/DatabaseService.d.ts +18 -1
- package/services/storage-service/DatabaseService.js +51 -0
- package/services/storage-service/databases/index.d.ts +3 -1
- package/services/storage-service/databases/index.js +4 -0
- package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
- package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
- package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
- package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
- package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
- package/services/subscan-service/index.d.ts +2 -2
- package/services/transaction-service/event-parser/index.d.ts +3 -1
- package/services/transaction-service/event-parser/index.js +57 -1
- package/services/transaction-service/helpers/index.js +3 -1
- package/services/transaction-service/index.d.ts +4 -15
- package/services/transaction-service/index.js +183 -72
- package/services/transaction-service/types.d.ts +2 -0
- package/services/transaction-service/utils.js +1 -0
- package/types/campaigns/index.d.ts +1 -0
- package/types/campaigns/index.js +4 -0
- package/types/campaigns/unlock-dot.d.ts +71 -0
- package/types/campaigns/unlock-dot.js +1 -0
- package/types/index.d.ts +5 -0
- package/types/index.js +5 -1
- package/types/ordinal.d.ts +69 -0
- package/types/ordinal.js +1 -0
- package/types/transaction.d.ts +3 -0
- package/types/transaction.js +1 -0
- package/types/yield/actions/index.d.ts +2 -0
- package/types/yield/actions/index.js +5 -0
- package/types/yield/actions/join/index.d.ts +3 -0
- package/types/yield/actions/join/index.js +6 -0
- package/types/yield/actions/join/step.d.ts +94 -0
- package/types/yield/actions/join/step.js +46 -0
- package/types/yield/actions/join/submit.d.ts +53 -0
- package/types/yield/actions/join/submit.js +1 -0
- package/types/yield/actions/join/validate.d.ts +18 -0
- package/types/yield/actions/join/validate.js +10 -0
- package/types/yield/actions/others.d.ts +63 -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 +101 -0
- package/types/yield/info/account/info.js +1 -0
- package/types/yield/info/account/reward.d.ts +30 -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 +217 -0
- package/types/yield/info/chain/info.js +1 -0
- package/types/yield/info/chain/target.d.ts +37 -0
- package/types/yield/info/chain/target.js +1 -0
- package/types/yield/info/index.d.ts +4 -0
- package/types/yield/info/index.js +7 -0
- package/types/yield/info/pallet.d.ts +143 -0
- package/types/yield/info/pallet.js +9 -0
- package/utils/fetchStaticData.js +2 -1
- package/utils/index.d.ts +5 -0
- package/utils/index.js +53 -1
- package/utils/object.d.ts +1 -0
- package/utils/object.js +6 -0
package/koni/background/cron.js
CHANGED
|
@@ -83,6 +83,7 @@ export class KoniCron {
|
|
|
83
83
|
|
|
84
84
|
// MantaPay
|
|
85
85
|
reloadMantaPay && this.removeCron('syncMantaPay');
|
|
86
|
+
commonReload && this.removeCron('refreshPoolingStakingReward');
|
|
86
87
|
|
|
87
88
|
// NFT
|
|
88
89
|
(commonReload || needUpdateNft) && this.resetNft(address);
|
|
@@ -93,6 +94,7 @@ export class KoniCron {
|
|
|
93
94
|
// only add cron job if there's at least 1 active network
|
|
94
95
|
(commonReload || needUpdateNft) && this.addCron('refreshNft', this.refreshNft(address, serviceInfo.chainApiMap, this.state.getSmartContractNfts(), this.state.getActiveChainInfoMap()), CRON_REFRESH_NFT_INTERVAL);
|
|
95
96
|
reloadMantaPay && this.addCron('syncMantaPay', this.syncMantaPay, CRON_SYNC_MANTA_PAY);
|
|
97
|
+
commonReload && this.addCron('refreshPoolingStakingReward', this.refreshStakingRewardFastInterval(currentAccountInfo.address), CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL);
|
|
96
98
|
} else {
|
|
97
99
|
this.setStakingRewardReady();
|
|
98
100
|
}
|
|
@@ -92,6 +92,7 @@ export default class KoniExtension {
|
|
|
92
92
|
private getBalance;
|
|
93
93
|
private subscribeBalance;
|
|
94
94
|
private getCrowdloan;
|
|
95
|
+
private getCrowdloanContributions;
|
|
95
96
|
private subscribeCrowdloan;
|
|
96
97
|
private validatePassword;
|
|
97
98
|
private validatedAccountsPassword;
|
|
@@ -162,7 +163,6 @@ export default class KoniExtension {
|
|
|
162
163
|
private getNominationPoolOptions;
|
|
163
164
|
private submitBonding;
|
|
164
165
|
private submitUnbonding;
|
|
165
|
-
private submitStakeWithdrawal;
|
|
166
166
|
private submitStakeClaimReward;
|
|
167
167
|
private submitCancelStakeWithdrawal;
|
|
168
168
|
private submitPoolBonding;
|
|
@@ -214,6 +214,21 @@ export default class KoniExtension {
|
|
|
214
214
|
private resolveAddressByDomain;
|
|
215
215
|
private addInjects;
|
|
216
216
|
private removeInjects;
|
|
217
|
+
private subscribeYieldPoolInfo;
|
|
218
|
+
private earlyValidateJoin;
|
|
219
|
+
private getOptimalYieldPath;
|
|
220
|
+
private handleYieldStep;
|
|
221
|
+
private handleYieldLeave;
|
|
222
|
+
private getYieldPoolTargets;
|
|
223
|
+
private subscribeYieldPosition;
|
|
224
|
+
private subscribeYieldReward;
|
|
225
|
+
private subscribeEarningMinAmountPercent;
|
|
226
|
+
private handleValidateYieldProcess;
|
|
227
|
+
private yieldSubmitWithdrawal;
|
|
228
|
+
private yieldSubmitCancelWithdrawal;
|
|
229
|
+
private yieldSubmitClaimReward;
|
|
230
|
+
private unlockDotCheckCanMint;
|
|
231
|
+
private unlockDotSubscribeMintedData;
|
|
217
232
|
private subscribeProcessingBanner;
|
|
218
233
|
private completeCampaignBanner;
|
|
219
234
|
private subscribeBuyTokens;
|
|
@@ -15,12 +15,13 @@ import { resolveAzeroAddressToDomain, resolveAzeroDomainToAddress } from '@subwa
|
|
|
15
15
|
import { parseSubstrateTransaction } from '@subwallet/extension-base/koni/api/dotsama/parseTransaction';
|
|
16
16
|
import { checkReferenceCount, checkSupportTransfer, createTransferExtrinsic } from '@subwallet/extension-base/koni/api/dotsama/transfer';
|
|
17
17
|
import { getNftTransferExtrinsic, isRecipientSelf } from '@subwallet/extension-base/koni/api/nft/transfer';
|
|
18
|
-
import { getBondingExtrinsic, getCancelWithdrawalExtrinsic, getClaimRewardExtrinsic, getNominationPoolsInfo, getUnbondingExtrinsic, getValidatorsInfo,
|
|
18
|
+
import { getBondingExtrinsic, getCancelWithdrawalExtrinsic, getClaimRewardExtrinsic, getNominationPoolsInfo, getUnbondingExtrinsic, getValidatorsInfo, validateBondingCondition, validateUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding';
|
|
19
19
|
import { getTuringCancelCompoundingExtrinsic, getTuringCompoundExtrinsic } from '@subwallet/extension-base/koni/api/staking/bonding/paraChain';
|
|
20
20
|
import { getPoolingBondingExtrinsic, getPoolingUnbondingExtrinsic, validatePoolBondingCondition, validateRelayUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding/relayChain';
|
|
21
21
|
import { getERC20TransactionObject, getERC721Transaction, getEVMTransactionObject } from '@subwallet/extension-base/koni/api/tokens/evm/transfer';
|
|
22
22
|
import { getPSP34TransferExtrinsic } from '@subwallet/extension-base/koni/api/tokens/wasm';
|
|
23
23
|
import { createXcmExtrinsic } from '@subwallet/extension-base/koni/api/xcm';
|
|
24
|
+
import { YIELD_EXTRINSIC_TYPES } from '@subwallet/extension-base/koni/api/yield/helper/utils';
|
|
24
25
|
import { _API_OPTIONS_CHAIN_GROUP, _DEFAULT_MANTA_ZK_CHAIN, _MANTA_ZK_CHAIN_GROUP, _ZK_ASSET_PREFIX } from '@subwallet/extension-base/services/chain-service/constants';
|
|
25
26
|
import { _ChainConnectionStatus } from '@subwallet/extension-base/services/chain-service/types';
|
|
26
27
|
import { _getChainNativeTokenBasicInfo, _getContractAddressOfToken, _getEvmChainId, _getSubstrateGenesisHash, _getTokenMinAmount, _isAssetSmartContractNft, _isChainEvmCompatible, _isCustomAsset, _isLocalToken, _isMantaZkAsset, _isNativeToken, _isTokenEvmSmartContract, _isTokenTransferredByEvm } from '@subwallet/extension-base/services/chain-service/utils';
|
|
@@ -28,6 +29,7 @@ import { EXTENSION_REQUEST_URL } from '@subwallet/extension-base/services/reques
|
|
|
28
29
|
import { DEFAULT_AUTO_LOCK_TIME } from '@subwallet/extension-base/services/setting-service/constants';
|
|
29
30
|
import { WALLET_CONNECT_EIP155_NAMESPACE } from '@subwallet/extension-base/services/wallet-connect-service/constants';
|
|
30
31
|
import { isProposalExpired, isSupportWalletConnectChain, isSupportWalletConnectNamespace } from '@subwallet/extension-base/services/wallet-connect-service/helpers';
|
|
32
|
+
import { YieldPoolType } from '@subwallet/extension-base/types';
|
|
31
33
|
import { convertSubjectInfoToAddresses, isSameAddress, reformatAddress, uniqueStringArray } from '@subwallet/extension-base/utils';
|
|
32
34
|
import { createTransactionFromRLP, recalculateGasPrice, signatureToHex } from '@subwallet/extension-base/utils/eth';
|
|
33
35
|
import { parseContractInput, parseEvmRlp } from '@subwallet/extension-base/utils/eth/parseTransaction';
|
|
@@ -468,6 +470,7 @@ export default class KoniExtension {
|
|
|
468
470
|
const cb = createSubscription(id, port);
|
|
469
471
|
const keyringService = this.#koniState.keyringService;
|
|
470
472
|
await this.#koniState.eventService.waitAccountReady;
|
|
473
|
+
await this.#koniState.eventService.waitInjectReady;
|
|
471
474
|
const currentAccount = keyringService.currentAccount;
|
|
472
475
|
const transformedAccounts = transformAccounts(keyringService.accounts);
|
|
473
476
|
const responseData = {
|
|
@@ -1022,6 +1025,9 @@ export default class KoniExtension {
|
|
|
1022
1025
|
getCrowdloan(reset) {
|
|
1023
1026
|
return this.#koniState.getCrowdloan(reset);
|
|
1024
1027
|
}
|
|
1028
|
+
getCrowdloanContributions(request) {
|
|
1029
|
+
return this.#koniState.getCrowdloanContributions(request);
|
|
1030
|
+
}
|
|
1025
1031
|
subscribeCrowdloan(id, port) {
|
|
1026
1032
|
const cb = createSubscription(id, port);
|
|
1027
1033
|
const crowdloanSubscription = this.#koniState.subscribeCrowdloan().subscribe({
|
|
@@ -1910,12 +1916,22 @@ export default class KoniExtension {
|
|
|
1910
1916
|
token
|
|
1911
1917
|
}, id, port) {
|
|
1912
1918
|
const cb = createSubscription(id, port);
|
|
1913
|
-
const
|
|
1919
|
+
const convertData = data => {
|
|
1920
|
+
return {
|
|
1921
|
+
...data,
|
|
1922
|
+
id
|
|
1923
|
+
};
|
|
1924
|
+
};
|
|
1925
|
+
const _cb = data => {
|
|
1926
|
+
// eslint-disable-next-line node/no-callback-literal
|
|
1927
|
+
cb(convertData(data));
|
|
1928
|
+
};
|
|
1929
|
+
const [unsub, currentFreeBalance] = await this.#koniState.balanceService.subscribeTokenFreeBalance(address, networkKey, token, _cb);
|
|
1914
1930
|
this.createUnsubscriptionHandle(id, unsub);
|
|
1915
1931
|
port.onDisconnect.addListener(() => {
|
|
1916
1932
|
this.cancelSubscription(id);
|
|
1917
1933
|
});
|
|
1918
|
-
return currentFreeBalance;
|
|
1934
|
+
return convertData(currentFreeBalance);
|
|
1919
1935
|
}
|
|
1920
1936
|
async transferCheckReferenceCount({
|
|
1921
1937
|
address,
|
|
@@ -2525,36 +2541,18 @@ export default class KoniExtension {
|
|
|
2525
2541
|
chainType: ChainType.SUBSTRATE
|
|
2526
2542
|
});
|
|
2527
2543
|
}
|
|
2528
|
-
async submitStakeWithdrawal(inputData) {
|
|
2529
|
-
const {
|
|
2530
|
-
chain,
|
|
2531
|
-
nominatorMetadata,
|
|
2532
|
-
validatorAddress
|
|
2533
|
-
} = inputData;
|
|
2534
|
-
if (!nominatorMetadata) {
|
|
2535
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
2536
|
-
}
|
|
2537
|
-
const dotSamaApi = this.#koniState.getSubstrateApi(chain);
|
|
2538
|
-
const extrinsic = await getWithdrawalExtrinsic(dotSamaApi, chain, nominatorMetadata, validatorAddress);
|
|
2539
|
-
return await this.#koniState.transactionService.handleTransaction({
|
|
2540
|
-
address: nominatorMetadata.address,
|
|
2541
|
-
chain: chain,
|
|
2542
|
-
transaction: extrinsic,
|
|
2543
|
-
data: inputData,
|
|
2544
|
-
extrinsicType: ExtrinsicType.STAKING_WITHDRAW,
|
|
2545
|
-
chainType: ChainType.SUBSTRATE
|
|
2546
|
-
});
|
|
2547
|
-
}
|
|
2548
2544
|
async submitStakeClaimReward(inputData) {
|
|
2549
2545
|
const {
|
|
2550
2546
|
address,
|
|
2551
2547
|
bondReward,
|
|
2552
|
-
|
|
2553
|
-
stakingType
|
|
2548
|
+
slug
|
|
2554
2549
|
} = inputData;
|
|
2555
|
-
|
|
2550
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
2551
|
+
if (!address || !poolHandler) {
|
|
2556
2552
|
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
2557
2553
|
}
|
|
2554
|
+
const chain = poolHandler.chain;
|
|
2555
|
+
const stakingType = poolHandler.type === YieldPoolType.NOMINATION_POOL ? StakingType.POOLED : StakingType.NOMINATED;
|
|
2558
2556
|
const substrateApi = this.#koniState.getSubstrateApi(chain);
|
|
2559
2557
|
const extrinsic = await getClaimRewardExtrinsic(substrateApi, chain, address, stakingType, bondReward);
|
|
2560
2558
|
return await this.#koniState.transactionService.handleTransaction({
|
|
@@ -2567,15 +2565,18 @@ export default class KoniExtension {
|
|
|
2567
2565
|
});
|
|
2568
2566
|
}
|
|
2569
2567
|
async submitCancelStakeWithdrawal(inputData) {
|
|
2568
|
+
var _this$koniState$earni;
|
|
2570
2569
|
const {
|
|
2571
2570
|
address,
|
|
2572
|
-
|
|
2573
|
-
|
|
2571
|
+
selectedUnstaking,
|
|
2572
|
+
slug
|
|
2574
2573
|
} = inputData;
|
|
2574
|
+
const chain = (_this$koniState$earni = this.#koniState.earningService.getPoolHandler(slug)) === null || _this$koniState$earni === void 0 ? void 0 : _this$koniState$earni.chain;
|
|
2575
2575
|
if (!chain || !selectedUnstaking) {
|
|
2576
2576
|
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
2577
2577
|
}
|
|
2578
2578
|
const substrateApi = this.#koniState.getSubstrateApi(chain);
|
|
2579
|
+
// @ts-ignore
|
|
2579
2580
|
const extrinsic = await getCancelWithdrawalExtrinsic(substrateApi, chain, selectedUnstaking);
|
|
2580
2581
|
return await this.#koniState.transactionService.handleTransaction({
|
|
2581
2582
|
address,
|
|
@@ -3537,9 +3538,224 @@ export default class KoniExtension {
|
|
|
3537
3538
|
this.#koniState.keyringService.removeInjectAccounts(request.addresses);
|
|
3538
3539
|
return true;
|
|
3539
3540
|
}
|
|
3541
|
+
subscribeYieldPoolInfo(id, port) {
|
|
3542
|
+
const cb = createSubscription(id, port);
|
|
3543
|
+
const yieldPoolSubscription = this.#koniState.subscribeYieldPoolInfo().subscribe({
|
|
3544
|
+
next: rs => {
|
|
3545
|
+
cb(rs);
|
|
3546
|
+
}
|
|
3547
|
+
});
|
|
3548
|
+
this.createUnsubscriptionHandle(id, yieldPoolSubscription.unsubscribe);
|
|
3549
|
+
port.onDisconnect.addListener(() => {
|
|
3550
|
+
this.cancelSubscription(id);
|
|
3551
|
+
});
|
|
3552
|
+
return this.#koniState.getYieldPoolInfo();
|
|
3553
|
+
}
|
|
3554
|
+
async earlyValidateJoin(request) {
|
|
3555
|
+
return await this.#koniState.earningService.earlyValidateJoin(request);
|
|
3556
|
+
}
|
|
3557
|
+
async getOptimalYieldPath(request) {
|
|
3558
|
+
return await this.#koniState.earningService.generateOptimalSteps(request);
|
|
3559
|
+
}
|
|
3560
|
+
async handleYieldStep(inputData) {
|
|
3561
|
+
const {
|
|
3562
|
+
data,
|
|
3563
|
+
path
|
|
3564
|
+
} = inputData;
|
|
3565
|
+
const {
|
|
3566
|
+
address
|
|
3567
|
+
} = data;
|
|
3568
|
+
if (!data) {
|
|
3569
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INTERNAL_ERROR)]);
|
|
3570
|
+
}
|
|
3571
|
+
const isLastStep = inputData.currentStep + 1 === path.steps.length;
|
|
3572
|
+
const yieldValidation = await this.#koniState.earningService.validateYieldJoin({
|
|
3573
|
+
data,
|
|
3574
|
+
path
|
|
3575
|
+
}); // TODO: validate, set to fail upon submission
|
|
3576
|
+
|
|
3577
|
+
if (yieldValidation.length > 0) {
|
|
3578
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors(yieldValidation);
|
|
3579
|
+
}
|
|
3580
|
+
|
|
3581
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
3582
|
+
const {
|
|
3583
|
+
extrinsic,
|
|
3584
|
+
extrinsicType,
|
|
3585
|
+
transferNativeAmount,
|
|
3586
|
+
txChain,
|
|
3587
|
+
txData
|
|
3588
|
+
} = await this.#koniState.earningService.handleYieldJoin(inputData);
|
|
3589
|
+
const isPoolSupportAlternativeFee = this.#koniState.earningService.isPoolSupportAlternativeFee(inputData.data.slug);
|
|
3590
|
+
const isMintingStep = YIELD_EXTRINSIC_TYPES.includes(extrinsicType);
|
|
3591
|
+
const chainInfo = this.#koniState.getChainInfo(txChain);
|
|
3592
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3593
|
+
address,
|
|
3594
|
+
chain: txChain,
|
|
3595
|
+
transaction: extrinsic,
|
|
3596
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
3597
|
+
data: txData,
|
|
3598
|
+
extrinsicType,
|
|
3599
|
+
// change this depends on step
|
|
3600
|
+
chainType: _isChainEvmCompatible(chainInfo) ? ChainType.EVM : ChainType.SUBSTRATE,
|
|
3601
|
+
resolveOnDone: !isLastStep,
|
|
3602
|
+
transferNativeAmount,
|
|
3603
|
+
skipFeeValidation: isMintingStep && isPoolSupportAlternativeFee
|
|
3604
|
+
});
|
|
3605
|
+
}
|
|
3606
|
+
async handleYieldLeave(params) {
|
|
3607
|
+
const {
|
|
3608
|
+
address,
|
|
3609
|
+
slug
|
|
3610
|
+
} = params;
|
|
3611
|
+
const leaveValidation = await this.#koniState.earningService.validateYieldLeave(params);
|
|
3612
|
+
if (leaveValidation.length > 0) {
|
|
3613
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors(leaveValidation);
|
|
3614
|
+
}
|
|
3615
|
+
const [extrinsicType, extrinsic] = await this.#koniState.earningService.handleYieldLeave(params);
|
|
3616
|
+
const handler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3617
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3618
|
+
address,
|
|
3619
|
+
chain: (handler === null || handler === void 0 ? void 0 : handler.chain) || '',
|
|
3620
|
+
transaction: extrinsic,
|
|
3621
|
+
data: params,
|
|
3622
|
+
// TODO
|
|
3623
|
+
extrinsicType,
|
|
3624
|
+
chainType: (handler === null || handler === void 0 ? void 0 : handler.transactionChainType) || ChainType.SUBSTRATE
|
|
3625
|
+
});
|
|
3626
|
+
}
|
|
3627
|
+
async getYieldPoolTargets(request) {
|
|
3628
|
+
const {
|
|
3629
|
+
slug
|
|
3630
|
+
} = request;
|
|
3631
|
+
const targets = await this.#koniState.earningService.getPoolTargets(slug);
|
|
3632
|
+
return {
|
|
3633
|
+
slug,
|
|
3634
|
+
targets
|
|
3635
|
+
};
|
|
3636
|
+
}
|
|
3637
|
+
async subscribeYieldPosition(id, port) {
|
|
3638
|
+
const cb = createSubscription(id, port);
|
|
3639
|
+
const yieldPositionSubscription = this.#koniState.subscribeYieldPosition().subscribe({
|
|
3640
|
+
next: rs => {
|
|
3641
|
+
cb(rs);
|
|
3642
|
+
}
|
|
3643
|
+
});
|
|
3644
|
+
this.createUnsubscriptionHandle(id, yieldPositionSubscription.unsubscribe);
|
|
3645
|
+
port.onDisconnect.addListener(() => {
|
|
3646
|
+
this.cancelSubscription(id);
|
|
3647
|
+
});
|
|
3648
|
+
return this.#koniState.getYieldPositionInfo();
|
|
3649
|
+
}
|
|
3650
|
+
subscribeYieldReward(id, port) {
|
|
3651
|
+
const cb = createSubscription(id, port);
|
|
3652
|
+
const stakingRewardSubscription = this.#koniState.earningService.subscribeEarningReward().subscribe({
|
|
3653
|
+
next: rs => {
|
|
3654
|
+
cb(rs);
|
|
3655
|
+
}
|
|
3656
|
+
});
|
|
3657
|
+
this.createUnsubscriptionHandle(id, stakingRewardSubscription.unsubscribe);
|
|
3658
|
+
port.onDisconnect.addListener(() => {
|
|
3659
|
+
this.cancelSubscription(id);
|
|
3660
|
+
});
|
|
3661
|
+
return this.#koniState.earningService.getEarningRewards();
|
|
3662
|
+
}
|
|
3663
|
+
subscribeEarningMinAmountPercent(id, port) {
|
|
3664
|
+
const cb = createSubscription(id, port);
|
|
3665
|
+
const earningMinAmountPercentSubscription = this.#koniState.earningService.subscribeMinAmountPercent().subscribe({
|
|
3666
|
+
next: rs => {
|
|
3667
|
+
cb(rs);
|
|
3668
|
+
}
|
|
3669
|
+
});
|
|
3670
|
+
this.createUnsubscriptionHandle(id, earningMinAmountPercentSubscription.unsubscribe);
|
|
3671
|
+
port.onDisconnect.addListener(() => {
|
|
3672
|
+
this.cancelSubscription(id);
|
|
3673
|
+
});
|
|
3674
|
+
return this.#koniState.earningService.getMinAmountPercent();
|
|
3675
|
+
}
|
|
3676
|
+
handleValidateYieldProcess(inputData) {
|
|
3677
|
+
return this.#koniState.earningService.validateYieldJoin(inputData);
|
|
3678
|
+
}
|
|
3679
|
+
async yieldSubmitWithdrawal(params) {
|
|
3680
|
+
const {
|
|
3681
|
+
address,
|
|
3682
|
+
slug
|
|
3683
|
+
} = params;
|
|
3684
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3685
|
+
if (!poolHandler) {
|
|
3686
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
3687
|
+
}
|
|
3688
|
+
const extrinsic = await this.#koniState.earningService.handleYieldWithdraw(params);
|
|
3689
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3690
|
+
address: address,
|
|
3691
|
+
chain: poolHandler.chain,
|
|
3692
|
+
transaction: extrinsic,
|
|
3693
|
+
data: params,
|
|
3694
|
+
extrinsicType: ExtrinsicType.STAKING_WITHDRAW,
|
|
3695
|
+
chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
|
|
3696
|
+
});
|
|
3697
|
+
}
|
|
3698
|
+
async yieldSubmitCancelWithdrawal(params) {
|
|
3699
|
+
const {
|
|
3700
|
+
address,
|
|
3701
|
+
selectedUnstaking,
|
|
3702
|
+
slug
|
|
3703
|
+
} = params;
|
|
3704
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3705
|
+
if (!poolHandler || !selectedUnstaking) {
|
|
3706
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
3707
|
+
}
|
|
3708
|
+
const chain = poolHandler.chain;
|
|
3709
|
+
const extrinsic = await this.#koniState.earningService.handleYieldCancelUnstake(params);
|
|
3710
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3711
|
+
address,
|
|
3712
|
+
chain,
|
|
3713
|
+
transaction: extrinsic,
|
|
3714
|
+
data: params,
|
|
3715
|
+
extrinsicType: ExtrinsicType.STAKING_CANCEL_UNSTAKE,
|
|
3716
|
+
chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
|
|
3717
|
+
});
|
|
3718
|
+
}
|
|
3719
|
+
async yieldSubmitClaimReward(params) {
|
|
3720
|
+
const {
|
|
3721
|
+
address,
|
|
3722
|
+
slug
|
|
3723
|
+
} = params;
|
|
3724
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3725
|
+
if (!address || !poolHandler) {
|
|
3726
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
3727
|
+
}
|
|
3728
|
+
const extrinsic = await this.#koniState.earningService.handleYieldClaimReward(params);
|
|
3729
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3730
|
+
address,
|
|
3731
|
+
chain: poolHandler.chain,
|
|
3732
|
+
transaction: extrinsic,
|
|
3733
|
+
data: params,
|
|
3734
|
+
extrinsicType: ExtrinsicType.STAKING_CLAIM_REWARD,
|
|
3735
|
+
chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
|
|
3736
|
+
});
|
|
3737
|
+
}
|
|
3540
3738
|
|
|
3541
3739
|
/* Campaign */
|
|
3542
3740
|
|
|
3741
|
+
unlockDotCheckCanMint({
|
|
3742
|
+
address,
|
|
3743
|
+
network,
|
|
3744
|
+
slug
|
|
3745
|
+
}) {
|
|
3746
|
+
return this.#koniState.mintCampaignService.unlockDotCampaign.canMint(address, slug, network);
|
|
3747
|
+
}
|
|
3748
|
+
unlockDotSubscribeMintedData(id, port, {
|
|
3749
|
+
transactionId
|
|
3750
|
+
}) {
|
|
3751
|
+
const cb = createSubscription(id, port);
|
|
3752
|
+
const subscription = this.#koniState.mintCampaignService.unlockDotCampaign.subscribeMintedNft(transactionId, cb);
|
|
3753
|
+
this.createUnsubscriptionHandle(id, subscription.unsubscribe);
|
|
3754
|
+
port.onDisconnect.addListener(() => {
|
|
3755
|
+
this.cancelSubscription(id);
|
|
3756
|
+
});
|
|
3757
|
+
return this.#koniState.mintCampaignService.unlockDotCampaign.getMintedNft(transactionId);
|
|
3758
|
+
}
|
|
3543
3759
|
async subscribeProcessingBanner(id, port) {
|
|
3544
3760
|
const cb = createSubscription(id, port);
|
|
3545
3761
|
const filterBanner = data => {
|
|
@@ -3742,6 +3958,8 @@ export default class KoniExtension {
|
|
|
3742
3958
|
return await this.subscribeBalance(id, port);
|
|
3743
3959
|
case 'pri(crowdloan.getCrowdloan)':
|
|
3744
3960
|
return this.getCrowdloan();
|
|
3961
|
+
case 'pri(crowdloan.getCrowdloanContributions)':
|
|
3962
|
+
return this.getCrowdloanContributions(request);
|
|
3745
3963
|
case 'pri(crowdloan.getSubscription)':
|
|
3746
3964
|
return this.subscribeCrowdloan(id, port);
|
|
3747
3965
|
case 'pri(derivation.createV2)':
|
|
@@ -3771,6 +3989,55 @@ export default class KoniExtension {
|
|
|
3771
3989
|
case 'pri(transaction.history.subscribe)':
|
|
3772
3990
|
return this.subscribeHistoryByChainAndAddress(request, id, port);
|
|
3773
3991
|
|
|
3992
|
+
/* Earning */
|
|
3993
|
+
|
|
3994
|
+
/* Info */
|
|
3995
|
+
|
|
3996
|
+
case 'pri(yield.subscribePoolInfo)':
|
|
3997
|
+
return this.subscribeYieldPoolInfo(id, port);
|
|
3998
|
+
case 'pri(yield.getTargets)':
|
|
3999
|
+
return this.getYieldPoolTargets(request);
|
|
4000
|
+
case 'pri(yield.subscribeYieldPosition)':
|
|
4001
|
+
return this.subscribeYieldPosition(id, port);
|
|
4002
|
+
case 'pri(yield.subscribeYieldReward)':
|
|
4003
|
+
return this.subscribeYieldReward(id, port);
|
|
4004
|
+
case 'pri(yield.minAmountPercent)':
|
|
4005
|
+
return this.subscribeEarningMinAmountPercent(id, port);
|
|
4006
|
+
|
|
4007
|
+
/* Info */
|
|
4008
|
+
|
|
4009
|
+
/* Actions */
|
|
4010
|
+
|
|
4011
|
+
/* Join */
|
|
4012
|
+
|
|
4013
|
+
case 'pri(yield.join.earlyValidate)':
|
|
4014
|
+
return await this.earlyValidateJoin(request);
|
|
4015
|
+
case 'pri(yield.join.getOptimalPath)':
|
|
4016
|
+
return await this.getOptimalYieldPath(request);
|
|
4017
|
+
case 'pri(yield.join.handleStep)':
|
|
4018
|
+
return await this.handleYieldStep(request);
|
|
4019
|
+
case 'pri(yield.join.validateProcess)':
|
|
4020
|
+
return await this.handleValidateYieldProcess(request);
|
|
4021
|
+
|
|
4022
|
+
/* Join */
|
|
4023
|
+
|
|
4024
|
+
/* Others */
|
|
4025
|
+
|
|
4026
|
+
case 'pri(yield.leave.submit)':
|
|
4027
|
+
return await this.handleYieldLeave(request);
|
|
4028
|
+
case 'pri(yield.withdraw.submit)':
|
|
4029
|
+
return await this.yieldSubmitWithdrawal(request);
|
|
4030
|
+
case 'pri(yield.cancelWithdrawal.submit)':
|
|
4031
|
+
return await this.yieldSubmitCancelWithdrawal(request);
|
|
4032
|
+
case 'pri(yield.claimReward.submit)':
|
|
4033
|
+
return await this.yieldSubmitClaimReward(request);
|
|
4034
|
+
|
|
4035
|
+
/* Others */
|
|
4036
|
+
|
|
4037
|
+
/* Actions */
|
|
4038
|
+
|
|
4039
|
+
/* Earning */
|
|
4040
|
+
|
|
3774
4041
|
/* Account management */
|
|
3775
4042
|
// Add account
|
|
3776
4043
|
case 'pri(accounts.create.suriV2)':
|
|
@@ -3889,6 +4156,8 @@ export default class KoniExtension {
|
|
|
3889
4156
|
return this.transferGetExistentialDeposit(request);
|
|
3890
4157
|
case 'pri(transfer.getMaxTransferable)':
|
|
3891
4158
|
return this.transferGetMaxTransferable(request);
|
|
4159
|
+
case 'pri(transfer.subscribeMaxTransferable)':
|
|
4160
|
+
return this.transferGetMaxTransferable(request);
|
|
3892
4161
|
case 'pri(freeBalance.get)':
|
|
3893
4162
|
return this.getAddressFreeBalance(request);
|
|
3894
4163
|
case 'pri(freeBalance.subscribe)':
|
|
@@ -3947,8 +4216,6 @@ export default class KoniExtension {
|
|
|
3947
4216
|
return await this.submitBonding(request);
|
|
3948
4217
|
case 'pri(unbonding.submitTransaction)':
|
|
3949
4218
|
return await this.submitUnbonding(request);
|
|
3950
|
-
case 'pri(unbonding.submitWithdrawal)':
|
|
3951
|
-
return await this.submitStakeWithdrawal(request);
|
|
3952
4219
|
case 'pri(staking.submitClaimReward)':
|
|
3953
4220
|
return await this.submitStakeClaimReward(request);
|
|
3954
4221
|
case 'pri(staking.submitCancelWithdrawal)':
|
|
@@ -4052,6 +4319,15 @@ export default class KoniExtension {
|
|
|
4052
4319
|
case 'pri(mantaPay.subscribeSyncingState)':
|
|
4053
4320
|
return this.subscribeMantaPaySyncState(id, port);
|
|
4054
4321
|
|
|
4322
|
+
/* Campaign */
|
|
4323
|
+
|
|
4324
|
+
case 'pri(campaign.unlockDot.canMint)':
|
|
4325
|
+
return this.unlockDotCheckCanMint(request);
|
|
4326
|
+
case 'pri(campaign.unlockDot.subscribe)':
|
|
4327
|
+
return this.unlockDotSubscribeMintedData(id, port, request);
|
|
4328
|
+
|
|
4329
|
+
/* Campaign */
|
|
4330
|
+
|
|
4055
4331
|
// Metadata
|
|
4056
4332
|
case 'pri(metadata.find)':
|
|
4057
4333
|
return this.findRawMetadata(request);
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/// <reference types="chrome" />
|
|
2
2
|
import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _MultiChainAsset } from '@subwallet/chain-list/types';
|
|
3
|
-
import { AddTokenRequestExternal, AmountData, ApiMap, AuthRequestV2, ChainStakingMetadata, ConfirmationsQueue, CrowdloanItem, CrowdloanJson, CurrentAccountInfo, EvmSendTransactionParams, ExternalRequestPromise, MantaPayConfig, MantaPaySyncState, NftCollection, NftItem, NftJson, NominatorMetadata, RequestAccountExportPrivateKey, RequestCheckPublicAndSecretKey, RequestConfirmationComplete, RequestSettingsType, ResponseAccountExportPrivateKey, ResponseCheckPublicAndSecretKey, ServiceInfo, SingleModeJson, StakingItem, StakingJson, StakingRewardItem, StakingRewardJson, StakingType, UiSettings } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
|
+
import { AddTokenRequestExternal, AmountData, ApiMap, AuthRequestV2, ChainStakingMetadata, ConfirmationsQueue, CrowdloanItem, CrowdloanJson, CurrentAccountInfo, EvmSendTransactionParams, ExternalRequestPromise, MantaPayConfig, MantaPaySyncState, NftCollection, NftItem, NftJson, NominatorMetadata, RequestAccountExportPrivateKey, RequestCheckPublicAndSecretKey, RequestConfirmationComplete, RequestCrowdloanContributions, RequestSettingsType, ResponseAccountExportPrivateKey, ResponseCheckPublicAndSecretKey, ServiceInfo, SingleModeJson, StakingItem, StakingJson, StakingRewardItem, StakingRewardJson, StakingType, UiSettings } from '@subwallet/extension-base/background/KoniTypes';
|
|
4
4
|
import { AccountJson, RequestAuthorizeTab, RequestRpcSend, RequestRpcSubscribe, RequestRpcUnsubscribe, RequestSign, ResponseRpcListProviders, ResponseSigning } from '@subwallet/extension-base/background/types';
|
|
5
5
|
import { BalanceService } from '@subwallet/extension-base/services/balance-service';
|
|
6
6
|
import BuyService from '@subwallet/extension-base/services/buy-service';
|
|
7
7
|
import CampaignService from '@subwallet/extension-base/services/campaign-service';
|
|
8
8
|
import { ChainService } from '@subwallet/extension-base/services/chain-service';
|
|
9
9
|
import { _ChainState, _NetworkUpsertParams, _ValidateCustomAssetRequest } from '@subwallet/extension-base/services/chain-service/types';
|
|
10
|
+
import EarningService from '@subwallet/extension-base/services/earning-service/service';
|
|
10
11
|
import { EventService } from '@subwallet/extension-base/services/event-service';
|
|
11
12
|
import { HistoryService } from '@subwallet/extension-base/services/history-service';
|
|
12
13
|
import { KeyringService } from '@subwallet/extension-base/services/keyring-service';
|
|
13
14
|
import MigrationService from '@subwallet/extension-base/services/migration-service';
|
|
15
|
+
import MintCampaignService from '@subwallet/extension-base/services/mint-campaign-service';
|
|
14
16
|
import NotificationService from '@subwallet/extension-base/services/notification-service/NotificationService';
|
|
15
17
|
import { PriceService } from '@subwallet/extension-base/services/price-service';
|
|
16
18
|
import RequestService from '@subwallet/extension-base/services/request-service';
|
|
@@ -20,7 +22,7 @@ import DatabaseService from '@subwallet/extension-base/services/storage-service/
|
|
|
20
22
|
import { SubscanService } from '@subwallet/extension-base/services/subscan-service';
|
|
21
23
|
import TransactionService from '@subwallet/extension-base/services/transaction-service';
|
|
22
24
|
import WalletConnectService from '@subwallet/extension-base/services/wallet-connect-service';
|
|
23
|
-
import { BalanceItem, BalanceJson, BalanceMap } from '@subwallet/extension-base/types';
|
|
25
|
+
import { BalanceItem, BalanceJson, BalanceMap, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
24
26
|
import { MetadataDef, ProviderMeta } from '@subwallet/extension-inject/types';
|
|
25
27
|
import SimpleKeyring from 'eth-simple-keyring';
|
|
26
28
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
@@ -46,6 +48,8 @@ export default class KoniState {
|
|
|
46
48
|
private stakingNominatorMetadataSubject;
|
|
47
49
|
private stakingRewardSubject;
|
|
48
50
|
private stakingRewardState;
|
|
51
|
+
private yieldPoolInfoSubject;
|
|
52
|
+
private yieldPositionSubject;
|
|
49
53
|
private lazyMap;
|
|
50
54
|
readonly notificationService: NotificationService;
|
|
51
55
|
readonly eventService: EventService;
|
|
@@ -64,8 +68,10 @@ export default class KoniState {
|
|
|
64
68
|
readonly migrationService: MigrationService;
|
|
65
69
|
readonly subscanService: SubscanService;
|
|
66
70
|
readonly walletConnectService: WalletConnectService;
|
|
71
|
+
readonly mintCampaignService: MintCampaignService;
|
|
67
72
|
readonly campaignService: CampaignService;
|
|
68
73
|
readonly buyService: BuyService;
|
|
74
|
+
readonly earningService: EarningService;
|
|
69
75
|
private generalStatus;
|
|
70
76
|
private waitSleeping;
|
|
71
77
|
private waitStarting;
|
|
@@ -108,6 +114,11 @@ export default class KoniState {
|
|
|
108
114
|
getStaking(): Promise<StakingJson>;
|
|
109
115
|
getStakingOwnersByChains(chains: string[]): Promise<string[]>;
|
|
110
116
|
getPooledStakingRecordsByAddress(addresses: string[]): Promise<StakingItem[]>;
|
|
117
|
+
getPooledPositionByAddress(addresses: string[]): Promise<YieldPositionInfo[]>;
|
|
118
|
+
subscribeYieldPoolInfo(): Subject<YieldPoolInfo[]>;
|
|
119
|
+
subscribeYieldPosition(): Subject<YieldPositionInfo[]>;
|
|
120
|
+
getYieldPoolInfo(): Promise<YieldPoolInfo[]>;
|
|
121
|
+
getYieldPositionInfo(): Promise<YieldPositionInfo[]>;
|
|
111
122
|
subscribeMantaPayConfig(): Subject<MantaPayConfig[]>;
|
|
112
123
|
subscribeStaking(): Subject<StakingJson>;
|
|
113
124
|
subscribeChainStakingMetadata(): Subject<ChainStakingMetadata[]>;
|
|
@@ -251,5 +262,10 @@ export default class KoniState {
|
|
|
251
262
|
metadata: string;
|
|
252
263
|
specVersion: number;
|
|
253
264
|
}>;
|
|
265
|
+
updateYieldPoolInfo(data: YieldPoolInfo): void;
|
|
266
|
+
resetYieldPoolInfo(chains: string[]): void;
|
|
267
|
+
updateYieldPosition(data: YieldPositionInfo): void;
|
|
268
|
+
getYieldPoolStakingInfo(chain: string, poolType: YieldPoolType): Promise<YieldPoolInfo | undefined>;
|
|
269
|
+
getCrowdloanContributions({ address, page, relayChain }: RequestCrowdloanContributions): Promise<import("../../../services/subscan-service/types").CrowdloanContributionsResponse>;
|
|
254
270
|
}
|
|
255
271
|
export {};
|