@subwallet/extension-base 1.1.35-0 → 1.1.35-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/background/KoniTypes.d.ts +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 +21 -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 +13 -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
|
@@ -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,
|
|
@@ -2530,36 +2546,18 @@ export default class KoniExtension {
|
|
|
2530
2546
|
chainType: ChainType.SUBSTRATE
|
|
2531
2547
|
});
|
|
2532
2548
|
}
|
|
2533
|
-
async submitStakeWithdrawal(inputData) {
|
|
2534
|
-
const {
|
|
2535
|
-
chain,
|
|
2536
|
-
nominatorMetadata,
|
|
2537
|
-
validatorAddress
|
|
2538
|
-
} = inputData;
|
|
2539
|
-
if (!nominatorMetadata) {
|
|
2540
|
-
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
2541
|
-
}
|
|
2542
|
-
const dotSamaApi = this.#koniState.getSubstrateApi(chain);
|
|
2543
|
-
const extrinsic = await getWithdrawalExtrinsic(dotSamaApi, chain, nominatorMetadata, validatorAddress);
|
|
2544
|
-
return await this.#koniState.transactionService.handleTransaction({
|
|
2545
|
-
address: nominatorMetadata.address,
|
|
2546
|
-
chain: chain,
|
|
2547
|
-
transaction: extrinsic,
|
|
2548
|
-
data: inputData,
|
|
2549
|
-
extrinsicType: ExtrinsicType.STAKING_WITHDRAW,
|
|
2550
|
-
chainType: ChainType.SUBSTRATE
|
|
2551
|
-
});
|
|
2552
|
-
}
|
|
2553
2549
|
async submitStakeClaimReward(inputData) {
|
|
2554
2550
|
const {
|
|
2555
2551
|
address,
|
|
2556
2552
|
bondReward,
|
|
2557
|
-
|
|
2558
|
-
stakingType
|
|
2553
|
+
slug
|
|
2559
2554
|
} = inputData;
|
|
2560
|
-
|
|
2555
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
2556
|
+
if (!address || !poolHandler) {
|
|
2561
2557
|
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
2562
2558
|
}
|
|
2559
|
+
const chain = poolHandler.chain;
|
|
2560
|
+
const stakingType = poolHandler.type === YieldPoolType.NOMINATION_POOL ? StakingType.POOLED : StakingType.NOMINATED;
|
|
2563
2561
|
const substrateApi = this.#koniState.getSubstrateApi(chain);
|
|
2564
2562
|
const extrinsic = await getClaimRewardExtrinsic(substrateApi, chain, address, stakingType, bondReward);
|
|
2565
2563
|
return await this.#koniState.transactionService.handleTransaction({
|
|
@@ -2572,15 +2570,18 @@ export default class KoniExtension {
|
|
|
2572
2570
|
});
|
|
2573
2571
|
}
|
|
2574
2572
|
async submitCancelStakeWithdrawal(inputData) {
|
|
2573
|
+
var _this$koniState$earni;
|
|
2575
2574
|
const {
|
|
2576
2575
|
address,
|
|
2577
|
-
|
|
2578
|
-
|
|
2576
|
+
selectedUnstaking,
|
|
2577
|
+
slug
|
|
2579
2578
|
} = inputData;
|
|
2579
|
+
const chain = (_this$koniState$earni = this.#koniState.earningService.getPoolHandler(slug)) === null || _this$koniState$earni === void 0 ? void 0 : _this$koniState$earni.chain;
|
|
2580
2580
|
if (!chain || !selectedUnstaking) {
|
|
2581
2581
|
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
2582
2582
|
}
|
|
2583
2583
|
const substrateApi = this.#koniState.getSubstrateApi(chain);
|
|
2584
|
+
// @ts-ignore
|
|
2584
2585
|
const extrinsic = await getCancelWithdrawalExtrinsic(substrateApi, chain, selectedUnstaking);
|
|
2585
2586
|
return await this.#koniState.transactionService.handleTransaction({
|
|
2586
2587
|
address,
|
|
@@ -3553,9 +3554,243 @@ export default class KoniExtension {
|
|
|
3553
3554
|
this.#koniState.keyringService.removeInjectAccounts(request.addresses);
|
|
3554
3555
|
return true;
|
|
3555
3556
|
}
|
|
3557
|
+
async subscribeYieldPoolInfo(id, port) {
|
|
3558
|
+
const cb = createSubscription(id, port);
|
|
3559
|
+
await this.#koniState.earningService.waitForStarted();
|
|
3560
|
+
const yieldPoolSubscription = this.#koniState.earningService.subscribeYieldPoolInfo().subscribe({
|
|
3561
|
+
next: rs => {
|
|
3562
|
+
cb(Object.values(rs));
|
|
3563
|
+
}
|
|
3564
|
+
});
|
|
3565
|
+
this.createUnsubscriptionHandle(id, yieldPoolSubscription.unsubscribe);
|
|
3566
|
+
port.onDisconnect.addListener(() => {
|
|
3567
|
+
this.cancelSubscription(id);
|
|
3568
|
+
});
|
|
3569
|
+
return this.#koniState.earningService.getYieldPoolInfo();
|
|
3570
|
+
}
|
|
3571
|
+
async earlyValidateJoin(request) {
|
|
3572
|
+
return await this.#koniState.earningService.earlyValidateJoin(request);
|
|
3573
|
+
}
|
|
3574
|
+
async getOptimalYieldPath(request) {
|
|
3575
|
+
return await this.#koniState.earningService.generateOptimalSteps(request);
|
|
3576
|
+
}
|
|
3577
|
+
async handleYieldStep(inputData) {
|
|
3578
|
+
const {
|
|
3579
|
+
data,
|
|
3580
|
+
path
|
|
3581
|
+
} = inputData;
|
|
3582
|
+
const {
|
|
3583
|
+
address
|
|
3584
|
+
} = data;
|
|
3585
|
+
if (!data) {
|
|
3586
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INTERNAL_ERROR)]);
|
|
3587
|
+
}
|
|
3588
|
+
const isLastStep = inputData.currentStep + 1 === path.steps.length;
|
|
3589
|
+
const yieldValidation = await this.#koniState.earningService.validateYieldJoin({
|
|
3590
|
+
data,
|
|
3591
|
+
path
|
|
3592
|
+
}); // TODO: validate, set to fail upon submission
|
|
3593
|
+
|
|
3594
|
+
if (yieldValidation.length > 0) {
|
|
3595
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors(yieldValidation);
|
|
3596
|
+
}
|
|
3597
|
+
|
|
3598
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
3599
|
+
const {
|
|
3600
|
+
chainType,
|
|
3601
|
+
extrinsic,
|
|
3602
|
+
extrinsicType,
|
|
3603
|
+
transferNativeAmount,
|
|
3604
|
+
txChain,
|
|
3605
|
+
txData
|
|
3606
|
+
} = await this.#koniState.earningService.handleYieldJoin(inputData);
|
|
3607
|
+
const isPoolSupportAlternativeFee = this.#koniState.earningService.isPoolSupportAlternativeFee(inputData.data.slug);
|
|
3608
|
+
const isMintingStep = YIELD_EXTRINSIC_TYPES.includes(extrinsicType);
|
|
3609
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3610
|
+
address,
|
|
3611
|
+
chain: txChain,
|
|
3612
|
+
transaction: extrinsic,
|
|
3613
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
3614
|
+
data: txData,
|
|
3615
|
+
extrinsicType,
|
|
3616
|
+
// change this depends on step
|
|
3617
|
+
chainType,
|
|
3618
|
+
resolveOnDone: !isLastStep,
|
|
3619
|
+
transferNativeAmount,
|
|
3620
|
+
skipFeeValidation: isMintingStep && isPoolSupportAlternativeFee
|
|
3621
|
+
});
|
|
3622
|
+
}
|
|
3623
|
+
async handleYieldLeave(params) {
|
|
3624
|
+
const {
|
|
3625
|
+
address,
|
|
3626
|
+
slug
|
|
3627
|
+
} = params;
|
|
3628
|
+
const leaveValidation = await this.#koniState.earningService.validateYieldLeave(params);
|
|
3629
|
+
if (leaveValidation.length > 0) {
|
|
3630
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors(leaveValidation);
|
|
3631
|
+
}
|
|
3632
|
+
const [extrinsicType, extrinsic] = await this.#koniState.earningService.handleYieldLeave(params);
|
|
3633
|
+
const handler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3634
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3635
|
+
address,
|
|
3636
|
+
chain: (handler === null || handler === void 0 ? void 0 : handler.chain) || '',
|
|
3637
|
+
transaction: extrinsic,
|
|
3638
|
+
data: params,
|
|
3639
|
+
// TODO
|
|
3640
|
+
extrinsicType,
|
|
3641
|
+
chainType: (handler === null || handler === void 0 ? void 0 : handler.transactionChainType) || ChainType.SUBSTRATE
|
|
3642
|
+
});
|
|
3643
|
+
}
|
|
3644
|
+
async getYieldPoolTargets(request) {
|
|
3645
|
+
const {
|
|
3646
|
+
slug
|
|
3647
|
+
} = request;
|
|
3648
|
+
await this.#koniState.earningService.waitForStarted();
|
|
3649
|
+
const targets = await this.#koniState.earningService.getPoolTargets(slug);
|
|
3650
|
+
return {
|
|
3651
|
+
slug,
|
|
3652
|
+
targets
|
|
3653
|
+
};
|
|
3654
|
+
}
|
|
3655
|
+
async subscribeYieldPosition(id, port) {
|
|
3656
|
+
const cb = createSubscription(id, port);
|
|
3657
|
+
await this.#koniState.earningService.waitForStarted();
|
|
3658
|
+
const yieldPositionSubscription = this.#koniState.earningService.subscribeYieldPosition().subscribe({
|
|
3659
|
+
next: rs => {
|
|
3660
|
+
cb(rs);
|
|
3661
|
+
}
|
|
3662
|
+
});
|
|
3663
|
+
this.createUnsubscriptionHandle(id, yieldPositionSubscription.unsubscribe);
|
|
3664
|
+
port.onDisconnect.addListener(() => {
|
|
3665
|
+
this.cancelSubscription(id);
|
|
3666
|
+
});
|
|
3667
|
+
return await this.#koniState.earningService.getYieldPositionInfo();
|
|
3668
|
+
}
|
|
3669
|
+
async subscribeYieldReward(id, port) {
|
|
3670
|
+
const cb = createSubscription(id, port);
|
|
3671
|
+
await this.#koniState.earningService.waitForStarted();
|
|
3672
|
+
const stakingRewardSubscription = this.#koniState.earningService.subscribeEarningReward().subscribe({
|
|
3673
|
+
next: rs => {
|
|
3674
|
+
cb(rs);
|
|
3675
|
+
}
|
|
3676
|
+
});
|
|
3677
|
+
this.createUnsubscriptionHandle(id, stakingRewardSubscription.unsubscribe);
|
|
3678
|
+
port.onDisconnect.addListener(() => {
|
|
3679
|
+
this.cancelSubscription(id);
|
|
3680
|
+
});
|
|
3681
|
+
return this.#koniState.earningService.getEarningRewards();
|
|
3682
|
+
}
|
|
3683
|
+
async subscribeYieldRewardHistory(id, port) {
|
|
3684
|
+
const cb = createSubscription(id, port);
|
|
3685
|
+
await this.#koniState.earningService.waitForStarted();
|
|
3686
|
+
const rewardHistorySubscription = this.#koniState.earningService.subscribeEarningRewardHistory().subscribe({
|
|
3687
|
+
next: rs => {
|
|
3688
|
+
cb(rs);
|
|
3689
|
+
}
|
|
3690
|
+
});
|
|
3691
|
+
this.createUnsubscriptionHandle(id, rewardHistorySubscription.unsubscribe);
|
|
3692
|
+
port.onDisconnect.addListener(() => {
|
|
3693
|
+
this.cancelSubscription(id);
|
|
3694
|
+
});
|
|
3695
|
+
return this.#koniState.earningService.getEarningRewardHistory();
|
|
3696
|
+
}
|
|
3697
|
+
async subscribeEarningMinAmountPercent(id, port) {
|
|
3698
|
+
const cb = createSubscription(id, port);
|
|
3699
|
+
await this.#koniState.earningService.waitForStarted();
|
|
3700
|
+
const earningMinAmountPercentSubscription = this.#koniState.earningService.subscribeMinAmountPercent().subscribe({
|
|
3701
|
+
next: rs => {
|
|
3702
|
+
cb(rs);
|
|
3703
|
+
}
|
|
3704
|
+
});
|
|
3705
|
+
this.createUnsubscriptionHandle(id, earningMinAmountPercentSubscription.unsubscribe);
|
|
3706
|
+
port.onDisconnect.addListener(() => {
|
|
3707
|
+
this.cancelSubscription(id);
|
|
3708
|
+
});
|
|
3709
|
+
return this.#koniState.earningService.getMinAmountPercent();
|
|
3710
|
+
}
|
|
3711
|
+
handleValidateYieldProcess(inputData) {
|
|
3712
|
+
return this.#koniState.earningService.validateYieldJoin(inputData);
|
|
3713
|
+
}
|
|
3714
|
+
async yieldSubmitWithdrawal(params) {
|
|
3715
|
+
const {
|
|
3716
|
+
address,
|
|
3717
|
+
slug
|
|
3718
|
+
} = params;
|
|
3719
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3720
|
+
if (!poolHandler) {
|
|
3721
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
3722
|
+
}
|
|
3723
|
+
const extrinsic = await this.#koniState.earningService.handleYieldWithdraw(params);
|
|
3724
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3725
|
+
address: address,
|
|
3726
|
+
chain: poolHandler.chain,
|
|
3727
|
+
transaction: extrinsic,
|
|
3728
|
+
data: params,
|
|
3729
|
+
extrinsicType: ExtrinsicType.STAKING_WITHDRAW,
|
|
3730
|
+
chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
|
|
3731
|
+
});
|
|
3732
|
+
}
|
|
3733
|
+
async yieldSubmitCancelWithdrawal(params) {
|
|
3734
|
+
const {
|
|
3735
|
+
address,
|
|
3736
|
+
selectedUnstaking,
|
|
3737
|
+
slug
|
|
3738
|
+
} = params;
|
|
3739
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3740
|
+
if (!poolHandler || !selectedUnstaking) {
|
|
3741
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
3742
|
+
}
|
|
3743
|
+
const chain = poolHandler.chain;
|
|
3744
|
+
const extrinsic = await this.#koniState.earningService.handleYieldCancelUnstake(params);
|
|
3745
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3746
|
+
address,
|
|
3747
|
+
chain,
|
|
3748
|
+
transaction: extrinsic,
|
|
3749
|
+
data: params,
|
|
3750
|
+
extrinsicType: ExtrinsicType.STAKING_CANCEL_UNSTAKE,
|
|
3751
|
+
chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
|
|
3752
|
+
});
|
|
3753
|
+
}
|
|
3754
|
+
async yieldSubmitClaimReward(params) {
|
|
3755
|
+
const {
|
|
3756
|
+
address,
|
|
3757
|
+
slug
|
|
3758
|
+
} = params;
|
|
3759
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3760
|
+
if (!address || !poolHandler) {
|
|
3761
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
|
|
3762
|
+
}
|
|
3763
|
+
const extrinsic = await this.#koniState.earningService.handleYieldClaimReward(params);
|
|
3764
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
3765
|
+
address,
|
|
3766
|
+
chain: poolHandler.chain,
|
|
3767
|
+
transaction: extrinsic,
|
|
3768
|
+
data: params,
|
|
3769
|
+
extrinsicType: ExtrinsicType.STAKING_CLAIM_REWARD,
|
|
3770
|
+
chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
|
|
3771
|
+
});
|
|
3772
|
+
}
|
|
3556
3773
|
|
|
3557
3774
|
/* Campaign */
|
|
3558
3775
|
|
|
3776
|
+
unlockDotCheckCanMint({
|
|
3777
|
+
address,
|
|
3778
|
+
network,
|
|
3779
|
+
slug
|
|
3780
|
+
}) {
|
|
3781
|
+
return this.#koniState.mintCampaignService.unlockDotCampaign.canMint(address, slug, network);
|
|
3782
|
+
}
|
|
3783
|
+
unlockDotSubscribeMintedData(id, port, {
|
|
3784
|
+
transactionId
|
|
3785
|
+
}) {
|
|
3786
|
+
const cb = createSubscription(id, port);
|
|
3787
|
+
const subscription = this.#koniState.mintCampaignService.unlockDotCampaign.subscribeMintedNft(transactionId, cb);
|
|
3788
|
+
this.createUnsubscriptionHandle(id, subscription.unsubscribe);
|
|
3789
|
+
port.onDisconnect.addListener(() => {
|
|
3790
|
+
this.cancelSubscription(id);
|
|
3791
|
+
});
|
|
3792
|
+
return this.#koniState.mintCampaignService.unlockDotCampaign.getMintedNft(transactionId);
|
|
3793
|
+
}
|
|
3559
3794
|
async subscribeProcessingBanner(id, port) {
|
|
3560
3795
|
const cb = createSubscription(id, port);
|
|
3561
3796
|
const filterBanner = data => {
|
|
@@ -3758,6 +3993,8 @@ export default class KoniExtension {
|
|
|
3758
3993
|
return await this.subscribeBalance(id, port);
|
|
3759
3994
|
case 'pri(crowdloan.getCrowdloan)':
|
|
3760
3995
|
return this.getCrowdloan();
|
|
3996
|
+
case 'pri(crowdloan.getCrowdloanContributions)':
|
|
3997
|
+
return this.getCrowdloanContributions(request);
|
|
3761
3998
|
case 'pri(crowdloan.getSubscription)':
|
|
3762
3999
|
return this.subscribeCrowdloan(id, port);
|
|
3763
4000
|
case 'pri(derivation.createV2)':
|
|
@@ -3787,6 +4024,57 @@ export default class KoniExtension {
|
|
|
3787
4024
|
case 'pri(transaction.history.subscribe)':
|
|
3788
4025
|
return this.subscribeHistoryByChainAndAddress(request, id, port);
|
|
3789
4026
|
|
|
4027
|
+
/* Earning */
|
|
4028
|
+
|
|
4029
|
+
/* Info */
|
|
4030
|
+
|
|
4031
|
+
case 'pri(yield.subscribePoolInfo)':
|
|
4032
|
+
return this.subscribeYieldPoolInfo(id, port);
|
|
4033
|
+
case 'pri(yield.getTargets)':
|
|
4034
|
+
return this.getYieldPoolTargets(request);
|
|
4035
|
+
case 'pri(yield.subscribeYieldPosition)':
|
|
4036
|
+
return this.subscribeYieldPosition(id, port);
|
|
4037
|
+
case 'pri(yield.subscribeYieldReward)':
|
|
4038
|
+
return this.subscribeYieldReward(id, port);
|
|
4039
|
+
case 'pri(yield.subscribeRewardHistory)':
|
|
4040
|
+
return this.subscribeYieldRewardHistory(id, port);
|
|
4041
|
+
case 'pri(yield.minAmountPercent)':
|
|
4042
|
+
return this.subscribeEarningMinAmountPercent(id, port);
|
|
4043
|
+
|
|
4044
|
+
/* Info */
|
|
4045
|
+
|
|
4046
|
+
/* Actions */
|
|
4047
|
+
|
|
4048
|
+
/* Join */
|
|
4049
|
+
|
|
4050
|
+
case 'pri(yield.join.earlyValidate)':
|
|
4051
|
+
return await this.earlyValidateJoin(request);
|
|
4052
|
+
case 'pri(yield.join.getOptimalPath)':
|
|
4053
|
+
return await this.getOptimalYieldPath(request);
|
|
4054
|
+
case 'pri(yield.join.handleStep)':
|
|
4055
|
+
return await this.handleYieldStep(request);
|
|
4056
|
+
case 'pri(yield.join.validateProcess)':
|
|
4057
|
+
return await this.handleValidateYieldProcess(request);
|
|
4058
|
+
|
|
4059
|
+
/* Join */
|
|
4060
|
+
|
|
4061
|
+
/* Others */
|
|
4062
|
+
|
|
4063
|
+
case 'pri(yield.leave.submit)':
|
|
4064
|
+
return await this.handleYieldLeave(request);
|
|
4065
|
+
case 'pri(yield.withdraw.submit)':
|
|
4066
|
+
return await this.yieldSubmitWithdrawal(request);
|
|
4067
|
+
case 'pri(yield.cancelWithdrawal.submit)':
|
|
4068
|
+
return await this.yieldSubmitCancelWithdrawal(request);
|
|
4069
|
+
case 'pri(yield.claimReward.submit)':
|
|
4070
|
+
return await this.yieldSubmitClaimReward(request);
|
|
4071
|
+
|
|
4072
|
+
/* Others */
|
|
4073
|
+
|
|
4074
|
+
/* Actions */
|
|
4075
|
+
|
|
4076
|
+
/* Earning */
|
|
4077
|
+
|
|
3790
4078
|
/* Account management */
|
|
3791
4079
|
// Add account
|
|
3792
4080
|
case 'pri(accounts.create.suriV2)':
|
|
@@ -3905,6 +4193,8 @@ export default class KoniExtension {
|
|
|
3905
4193
|
return this.transferGetExistentialDeposit(request);
|
|
3906
4194
|
case 'pri(transfer.getMaxTransferable)':
|
|
3907
4195
|
return this.transferGetMaxTransferable(request);
|
|
4196
|
+
case 'pri(transfer.subscribeMaxTransferable)':
|
|
4197
|
+
return this.transferGetMaxTransferable(request);
|
|
3908
4198
|
case 'pri(freeBalance.get)':
|
|
3909
4199
|
return this.getAddressFreeBalance(request);
|
|
3910
4200
|
case 'pri(freeBalance.subscribe)':
|
|
@@ -3963,8 +4253,6 @@ export default class KoniExtension {
|
|
|
3963
4253
|
return await this.submitBonding(request);
|
|
3964
4254
|
case 'pri(unbonding.submitTransaction)':
|
|
3965
4255
|
return await this.submitUnbonding(request);
|
|
3966
|
-
case 'pri(unbonding.submitWithdrawal)':
|
|
3967
|
-
return await this.submitStakeWithdrawal(request);
|
|
3968
4256
|
case 'pri(staking.submitClaimReward)':
|
|
3969
4257
|
return await this.submitStakeClaimReward(request);
|
|
3970
4258
|
case 'pri(staking.submitCancelWithdrawal)':
|
|
@@ -4068,6 +4356,15 @@ export default class KoniExtension {
|
|
|
4068
4356
|
case 'pri(mantaPay.subscribeSyncingState)':
|
|
4069
4357
|
return this.subscribeMantaPaySyncState(id, port);
|
|
4070
4358
|
|
|
4359
|
+
/* Campaign */
|
|
4360
|
+
|
|
4361
|
+
case 'pri(campaign.unlockDot.canMint)':
|
|
4362
|
+
return this.unlockDotCheckCanMint(request);
|
|
4363
|
+
case 'pri(campaign.unlockDot.subscribe)':
|
|
4364
|
+
return this.unlockDotSubscribeMintedData(id, port, request);
|
|
4365
|
+
|
|
4366
|
+
/* Campaign */
|
|
4367
|
+
|
|
4071
4368
|
// Metadata
|
|
4072
4369
|
case 'pri(metadata.find)':
|
|
4073
4370
|
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';
|
|
@@ -64,8 +66,10 @@ export default class KoniState {
|
|
|
64
66
|
readonly migrationService: MigrationService;
|
|
65
67
|
readonly subscanService: SubscanService;
|
|
66
68
|
readonly walletConnectService: WalletConnectService;
|
|
69
|
+
readonly mintCampaignService: MintCampaignService;
|
|
67
70
|
readonly campaignService: CampaignService;
|
|
68
71
|
readonly buyService: BuyService;
|
|
72
|
+
readonly earningService: EarningService;
|
|
69
73
|
private generalStatus;
|
|
70
74
|
private waitSleeping;
|
|
71
75
|
private waitStarting;
|
|
@@ -251,5 +255,6 @@ export default class KoniState {
|
|
|
251
255
|
metadata: string;
|
|
252
256
|
specVersion: number;
|
|
253
257
|
}>;
|
|
258
|
+
getCrowdloanContributions({ address, page, relayChain }: RequestCrowdloanContributions): Promise<import("../../../services/subscan-service/types").CrowdloanContributionsResponse>;
|
|
254
259
|
}
|
|
255
260
|
export {};
|
|
@@ -14,10 +14,12 @@ import CampaignService from '@subwallet/extension-base/services/campaign-service
|
|
|
14
14
|
import { ChainService } from '@subwallet/extension-base/services/chain-service';
|
|
15
15
|
import { _DEFAULT_MANTA_ZK_CHAIN, _MANTA_ZK_CHAIN_GROUP, _PREDEFINED_SINGLE_MODES } from '@subwallet/extension-base/services/chain-service/constants';
|
|
16
16
|
import { _getEvmChainId, _getSubstrateGenesisHash, _getTokenOnChainAssetId, _isAssetFungibleToken, _isChainEnabled, _isChainTestNet, _parseMetadataForSmartContractAsset } from '@subwallet/extension-base/services/chain-service/utils';
|
|
17
|
+
import EarningService from '@subwallet/extension-base/services/earning-service/service';
|
|
17
18
|
import { EventService } from '@subwallet/extension-base/services/event-service';
|
|
18
19
|
import { HistoryService } from '@subwallet/extension-base/services/history-service';
|
|
19
20
|
import { KeyringService } from '@subwallet/extension-base/services/keyring-service';
|
|
20
21
|
import MigrationService from '@subwallet/extension-base/services/migration-service';
|
|
22
|
+
import MintCampaignService from '@subwallet/extension-base/services/mint-campaign-service';
|
|
21
23
|
import NotificationService from '@subwallet/extension-base/services/notification-service/NotificationService';
|
|
22
24
|
import { PriceService } from '@subwallet/extension-base/services/price-service';
|
|
23
25
|
import RequestService from '@subwallet/extension-base/services/request-service';
|
|
@@ -93,11 +95,13 @@ export default class KoniState {
|
|
|
93
95
|
this.priceService = new PriceService(this.dbService, this.eventService, this.chainService);
|
|
94
96
|
this.balanceService = new BalanceService(this);
|
|
95
97
|
this.historyService = new HistoryService(this.dbService, this.chainService, this.eventService, this.keyringService, this.subscanService);
|
|
96
|
-
this.
|
|
98
|
+
this.mintCampaignService = new MintCampaignService(this);
|
|
97
99
|
this.walletConnectService = new WalletConnectService(this, this.requestService);
|
|
98
100
|
this.migrationService = new MigrationService(this, this.eventService);
|
|
99
101
|
this.campaignService = new CampaignService(this);
|
|
100
102
|
this.buyService = new BuyService(this);
|
|
103
|
+
this.transactionService = new TransactionService(this);
|
|
104
|
+
this.earningService = new EarningService(this);
|
|
101
105
|
this.subscription = new KoniSubscription(this, this.dbService);
|
|
102
106
|
this.cron = new KoniCron(this, this.subscription, this.dbService);
|
|
103
107
|
this.logger = createLogger('State');
|
|
@@ -218,6 +222,7 @@ export default class KoniState {
|
|
|
218
222
|
await this.migrationService.run();
|
|
219
223
|
this.campaignService.init();
|
|
220
224
|
this.eventService.emit('chain.ready', true);
|
|
225
|
+
await this.earningService.init();
|
|
221
226
|
this.onReady();
|
|
222
227
|
this.onAccountAdd();
|
|
223
228
|
this.onAccountRemove();
|
|
@@ -240,20 +245,13 @@ export default class KoniState {
|
|
|
240
245
|
}
|
|
241
246
|
async startSubscription() {
|
|
242
247
|
await this.eventService.waitKeyringReady;
|
|
248
|
+
await this.eventService.waitAssetReady;
|
|
243
249
|
this.dbService.subscribeChainStakingMetadata([], data => {
|
|
244
250
|
this.chainStakingMetadataSubject.next(data);
|
|
245
251
|
});
|
|
246
252
|
this.dbService.subscribeMantaPayConfig(_DEFAULT_MANTA_ZK_CHAIN, data => {
|
|
247
253
|
this.mantaPayConfigSubject.next(data);
|
|
248
254
|
});
|
|
249
|
-
let unsub;
|
|
250
|
-
this.keyringService.accountSubject.subscribe(accounts => {
|
|
251
|
-
// TODO: improve this
|
|
252
|
-
unsub && unsub.unsubscribe();
|
|
253
|
-
unsub = this.dbService.subscribeNominatorMetadata(Object.keys(accounts), data => {
|
|
254
|
-
this.stakingNominatorMetadataSubject.next(data);
|
|
255
|
-
});
|
|
256
|
-
});
|
|
257
255
|
}
|
|
258
256
|
onReady() {
|
|
259
257
|
// Todo: Need optimize in the future to, only run important services onetime to save resources
|
|
@@ -1409,7 +1407,7 @@ export default class KoniState {
|
|
|
1409
1407
|
// Stopping services
|
|
1410
1408
|
await Promise.all([this.cron.stop(), this.subscription.stop()]);
|
|
1411
1409
|
await this.pauseAllNetworks(undefined, 'IDLE mode');
|
|
1412
|
-
await Promise.all([this.historyService.stop(), this.priceService.stop()]);
|
|
1410
|
+
await Promise.all([this.historyService.stop(), this.priceService.stop(), this.earningService.stop()]);
|
|
1413
1411
|
|
|
1414
1412
|
// Complete sleeping
|
|
1415
1413
|
sleeping.resolve();
|
|
@@ -1441,7 +1439,7 @@ export default class KoniState {
|
|
|
1441
1439
|
}
|
|
1442
1440
|
|
|
1443
1441
|
// Start services
|
|
1444
|
-
await Promise.all([this.cron.start(), this.subscription.start(), this.historyService.start(), this.priceService.start()]);
|
|
1442
|
+
await Promise.all([this.cron.start(), this.subscription.start(), this.historyService.start(), this.priceService.start(), this.earningService.start()]);
|
|
1445
1443
|
|
|
1446
1444
|
// Complete starting
|
|
1447
1445
|
starting.resolve();
|
|
@@ -1542,7 +1540,7 @@ export default class KoniState {
|
|
|
1542
1540
|
return await this.cron.reloadNft();
|
|
1543
1541
|
}
|
|
1544
1542
|
async reloadStaking() {
|
|
1545
|
-
await this.
|
|
1543
|
+
await this.earningService.reloadEarning(true);
|
|
1546
1544
|
return true;
|
|
1547
1545
|
}
|
|
1548
1546
|
async reloadBalance() {
|
|
@@ -1741,4 +1739,11 @@ export default class KoniState {
|
|
|
1741
1739
|
specVersion: parseInt((metadata === null || metadata === void 0 ? void 0 : metadata.specVersion) || '0')
|
|
1742
1740
|
};
|
|
1743
1741
|
}
|
|
1742
|
+
getCrowdloanContributions({
|
|
1743
|
+
address,
|
|
1744
|
+
page,
|
|
1745
|
+
relayChain
|
|
1746
|
+
}) {
|
|
1747
|
+
return this.subscanService.getCrowdloanContributions(relayChain, address, page);
|
|
1748
|
+
}
|
|
1744
1749
|
}
|
|
@@ -58,7 +58,8 @@ export default function handlers({
|
|
|
58
58
|
assert(port, 'Port has been disconnected');
|
|
59
59
|
port.postMessage({
|
|
60
60
|
id,
|
|
61
|
-
response
|
|
61
|
+
response,
|
|
62
|
+
sender: 'BACKGROUND'
|
|
62
63
|
});
|
|
63
64
|
}).catch(error => {
|
|
64
65
|
console.error(error);
|
|
@@ -70,7 +71,8 @@ export default function handlers({
|
|
|
70
71
|
error: error.message,
|
|
71
72
|
errorCode: error.code,
|
|
72
73
|
errorData: error.data,
|
|
73
|
-
id
|
|
74
|
+
id,
|
|
75
|
+
sender: 'BACKGROUND'
|
|
74
76
|
});
|
|
75
77
|
}
|
|
76
78
|
});
|
|
@@ -2,7 +2,7 @@ import { _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
|
|
|
2
2
|
import { _ChainState, _EvmApi, _SubstrateApi } from '@subwallet/extension-base/services/chain-service/types';
|
|
3
3
|
import DatabaseService from '@subwallet/extension-base/services/storage-service/DatabaseService';
|
|
4
4
|
import KoniState from './handlers/State';
|
|
5
|
-
declare type SubscriptionName = 'balance' | 'crowdloan' | '
|
|
5
|
+
declare type SubscriptionName = 'balance' | 'crowdloan' | 'yieldPoolStats' | 'yieldPosition';
|
|
6
6
|
export declare class KoniSubscription {
|
|
7
7
|
private eventHandler?;
|
|
8
8
|
private subscriptionMap;
|
|
@@ -18,16 +18,11 @@ export declare class KoniSubscription {
|
|
|
18
18
|
stop(): Promise<void>;
|
|
19
19
|
subscribeBalances(address: string, chainInfoMap: Record<string, _ChainInfo>, chainStateMap: Record<string, _ChainState>, substrateApiMap: Record<string, _SubstrateApi>, web3ApiMap: Record<string, _EvmApi>, onlyRunOnFirstTime?: boolean): void;
|
|
20
20
|
subscribeCrowdloans(address: string, substrateApiMap: Record<string, _SubstrateApi>, onlyRunOnFirstTime?: boolean): void;
|
|
21
|
-
subscribeStakingOnChain(address: string, substrateApiMap: Record<string, _SubstrateApi>, onlyRunOnFirstTime?: boolean): void;
|
|
22
|
-
initStakingOnChainSubscription(addresses: string[], substrateApiMap: Record<string, _SubstrateApi>, onlyRunOnFirstTime?: boolean): (() => void) | undefined;
|
|
23
|
-
initEssentialChainStakingMetadataSubscription(substrateApiMap: Record<string, _SubstrateApi>, onlyRunOnFirstTime?: boolean): (() => void) | undefined;
|
|
24
21
|
initBalanceSubscription(addresses: string[], chainInfoMap: Record<string, _ChainInfo>, chainStateMap: Record<string, _ChainState>, substrateApiMap: Record<string, _SubstrateApi>, evmApiMap: Record<string, _EvmApi>, onlyRunOnFirstTime?: boolean): (() => void) | undefined;
|
|
25
22
|
initCrowdloanSubscription(addresses: string[], substrateApiMap: Record<string, _SubstrateApi>, onlyRunOnFirstTime?: boolean): (() => void) | undefined;
|
|
26
23
|
subscribeNft(address: string, substrateApiMap: Record<string, _SubstrateApi>, evmApiMap: Record<string, _EvmApi>, smartContractNfts: _ChainAsset[], chainInfoMap: Record<string, _ChainInfo>): void;
|
|
27
24
|
initNftSubscription(addresses: string[], substrateApiMap: Record<string, _SubstrateApi>, evmApiMap: Record<string, _EvmApi>, smartContractNfts: _ChainAsset[], chainInfoMap: Record<string, _ChainInfo>): void;
|
|
28
25
|
subscribeStakingReward(address: string): Promise<void>;
|
|
29
|
-
subscribeStakingRewardFastInterval(address: string): Promise<void>;
|
|
30
|
-
reloadStaking(): Promise<void>;
|
|
31
26
|
reloadBalance(): Promise<void>;
|
|
32
27
|
reloadCrowdloan(): Promise<void>;
|
|
33
28
|
}
|