@@ -7,7 +7,7 @@ import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _MultiChainAsset } from
7
7
import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError' ;
8
8
import { withErrorLog } from '@subwallet/extension-base/background/handlers/helpers' ;
9
9
import { createSubscription } from '@subwallet/extension-base/background/handlers/subscriptions' ;
10
- import { AccountExternalError , AddressBookInfo , AmountData , AmountDataWithId , AssetSetting , AssetSettingUpdateReq , BondingOptionParams , BrowserConfirmationType , CampaignBanner , CampaignData , CampaignDataType , ChainType , CronReloadRequest , CrowdloanJson , ExternalRequestPromiseStatus , ExtrinsicType , HistoryTokenPriceJSON , KeyringState , MantaPayEnableMessage , MantaPayEnableParams , MantaPayEnableResponse , MantaPaySyncState , MetadataItem , NftCollection , NftJson , NftTransactionRequest , NftTransactionResponse , PriceJson , RequestAccountCreateExternalV2 , RequestAccountCreateHardwareMultiple , RequestAccountCreateHardwareV2 , RequestAccountCreateWithSecretKey , RequestAccountExportPrivateKey , RequestAddInjectedAccounts , RequestApproveConnectWalletSession , RequestApproveWalletConnectNotSupport , RequestAuthorization , RequestAuthorizationBlock , RequestAuthorizationPerAccount , RequestAuthorizationPerSite , RequestAuthorizeApproveV2 , RequestBondingSubmit , RequestCameraSettings , RequestCampaignBannerComplete , RequestChangeEnableChainPatrol , RequestChangeLanguage , RequestChangeMasterPassword , RequestChangePriceCurrency , RequestChangeShowBalance , RequestChangeShowZeroBalance , RequestChangeTimeAutoLock , RequestConfirmationComplete , RequestConfirmationCompleteCardano , RequestConfirmationCompleteTon , RequestConnectWalletConnect , RequestCrowdloanContributions , RequestDeleteContactAccount , RequestDisconnectWalletConnectSession , RequestEditContactAccount , RequestFindRawMetadata , RequestForgetSite , RequestFreeBalance , RequestGetHistoryTokenPriceData , RequestGetTransaction , RequestKeyringExportMnemonic , RequestMigratePassword , RequestMigrateSoloAccount , RequestMigrateUnifiedAndFetchEligibleSoloAccounts , RequestParseEvmContractInput , RequestParseTransactionSubstrate , RequestPassPhishingPage , RequestPingSession , RequestQrParseRLP , RequestQrSignEvm , RequestQrSignSubstrate , RequestRejectConnectWalletSession , RequestRejectExternalRequest , RequestRejectWalletConnectNotSupport , RequestRemoveInjectedAccounts , RequestResetWallet , RequestResolveExternalRequest , RequestSaveAppConfig , RequestSaveBrowserConfig , RequestSaveMigrationAcknowledgedStatus , RequestSaveOSConfig , RequestSaveRecentAccount , RequestSaveUnifiedAccountMigrationInProgress , RequestSettingsType , RequestSigningApprovePasswordV2 , RequestStakePoolingBonding , RequestStakePoolingUnbonding , RequestSubscribeHistory , RequestSubstrateNftSubmitTransaction , RequestTuringCancelStakeCompound , RequestTuringStakeCompound , RequestUnbondingSubmit , RequestUnlockKeyring , RequestUnlockType , ResolveAddressToDomainRequest , ResolveDomainRequest , ResponseAccountCreateWithSecretKey , ResponseAccountExportPrivateKey , ResponseChangeMasterPassword , ResponseFindRawMetadata , ResponseKeyringExportMnemonic , ResponseMigratePassword , ResponseMigrateSoloAccount , ResponseMigrateUnifiedAndFetchEligibleSoloAccounts , ResponseNftImport , ResponseParseEvmContractInput , ResponseParseTransactionSubstrate , ResponseQrParseRLP , ResponseQrSignEvm , ResponseQrSignSubstrate , ResponseRejectExternalRequest , ResponseResetWallet , ResponseResolveExternalRequest , ResponseSubscribeCurrentTokenPrice , ResponseSubscribeHistory , ResponseUnlockKeyring , ShowCampaignPopupRequest , StakingJson , StakingRewardJson , StakingType , ThemeNames , TokenPriorityDetails , TransactionHistoryItem , TransactionResponse , UiSettings , ValidateNetworkRequest , ValidateNetworkResponse , ValidatorInfo } from '@subwallet/extension-base/background/KoniTypes' ;
10
+ import { AccountExternalError , AddressBookInfo , AmountData , AmountDataWithId , AssetSetting , AssetSettingUpdateReq , BondingOptionParams , BrowserConfirmationType , CampaignBanner , CampaignData , CampaignDataType , ChainType , CronReloadRequest , CrowdloanJson , ExternalRequestPromiseStatus , ExtrinsicType , HistoryTokenPriceJSON , KeyringState , MantaPayEnableMessage , MantaPayEnableParams , MantaPayEnableResponse , MantaPaySyncState , NftCollection , NftJson , NftTransactionRequest , NftTransactionResponse , PriceJson , RequestAccountCreateExternalV2 , RequestAccountCreateHardwareMultiple , RequestAccountCreateHardwareV2 , RequestAccountCreateWithSecretKey , RequestAccountExportPrivateKey , RequestAddInjectedAccounts , RequestApproveConnectWalletSession , RequestApproveWalletConnectNotSupport , RequestAuthorization , RequestAuthorizationBlock , RequestAuthorizationPerAccount , RequestAuthorizationPerSite , RequestAuthorizeApproveV2 , RequestBondingSubmit , RequestCameraSettings , RequestCampaignBannerComplete , RequestChangeEnableChainPatrol , RequestChangeLanguage , RequestChangeMasterPassword , RequestChangePriceCurrency , RequestChangeShowBalance , RequestChangeShowZeroBalance , RequestChangeTimeAutoLock , RequestConfirmationComplete , RequestConfirmationCompleteCardano , RequestConfirmationCompleteTon , RequestConnectWalletConnect , RequestCrowdloanContributions , RequestDeleteContactAccount , RequestDisconnectWalletConnectSession , RequestEditContactAccount , RequestFindRawMetadata , RequestForgetSite , RequestFreeBalance , RequestGetHistoryTokenPriceData , RequestGetTransaction , RequestKeyringExportMnemonic , RequestMigratePassword , RequestMigrateSoloAccount , RequestMigrateUnifiedAndFetchEligibleSoloAccounts , RequestParseEvmContractInput , RequestParseTransactionSubstrate , RequestPassPhishingPage , RequestPingSession , RequestQrParseRLP , RequestQrSignEvm , RequestQrSignSubstrate , RequestRejectConnectWalletSession , RequestRejectExternalRequest , RequestRejectWalletConnectNotSupport , RequestRemoveInjectedAccounts , RequestResetWallet , RequestResolveExternalRequest , RequestSaveAppConfig , RequestSaveBrowserConfig , RequestSaveMigrationAcknowledgedStatus , RequestSaveOSConfig , RequestSaveRecentAccount , RequestSaveUnifiedAccountMigrationInProgress , RequestSettingsType , RequestSigningApprovePasswordV2 , RequestStakePoolingBonding , RequestStakePoolingUnbonding , RequestSubscribeHistory , RequestSubstrateNftSubmitTransaction , RequestTuringCancelStakeCompound , RequestTuringStakeCompound , RequestUnbondingSubmit , RequestUnlockKeyring , RequestUnlockType , ResolveAddressToDomainRequest , ResolveDomainRequest , ResponseAccountCreateWithSecretKey , ResponseAccountExportPrivateKey , ResponseChangeMasterPassword , ResponseFindRawMetadata , ResponseKeyringExportMnemonic , ResponseMigratePassword , ResponseMigrateSoloAccount , ResponseMigrateUnifiedAndFetchEligibleSoloAccounts , ResponseNftImport , ResponseParseEvmContractInput , ResponseParseTransactionSubstrate , ResponseQrParseRLP , ResponseQrSignEvm , ResponseQrSignSubstrate , ResponseRejectExternalRequest , ResponseResetWallet , ResponseResolveExternalRequest , ResponseSubscribeCurrentTokenPrice , ResponseSubscribeHistory , ResponseUnlockKeyring , ShowCampaignPopupRequest , StakingJson , StakingRewardJson , StakingType , ThemeNames , TokenPriorityDetails , TransactionHistoryItem , TransactionResponse , UiSettings , ValidateNetworkRequest , ValidateNetworkResponse , ValidatorInfo } from '@subwallet/extension-base/background/KoniTypes' ;
11
11
import { AccountAuthType , AuthorizeRequest , MessageTypes , MetadataRequest , RequestAccountExport , RequestAuthorizeCancel , RequestAuthorizeReject , RequestCurrentAccountAddress , RequestMetadataApprove , RequestMetadataReject , RequestSigningApproveSignature , RequestSigningCancel , RequestTypes , ResponseAccountExport , ResponseAuthorizeList , ResponseType , SigningRequest , WindowOpenParams } from '@subwallet/extension-base/background/types' ;
12
12
import { TransactionWarning } from '@subwallet/extension-base/background/warnings/TransactionWarning' ;
13
13
import { _SUPPORT_TOKEN_PAY_FEE_GROUP , ALL_ACCOUNT_KEY , LATEST_SESSION } from '@subwallet/extension-base/constants' ;
@@ -2861,23 +2861,18 @@ export default class KoniExtension {
2861
2861
if ( isJsonPayload ( payload ) ) {
2862
2862
const [ , chainInfo ] = this . #koniState. findNetworkKeyByGenesisHash ( payload . genesisHash ) ;
2863
2863
2864
- const allRegistry : RegistrySource [ ] = [
2864
+ const registries = await Promise . all ( [
2865
2865
setupApiRegistry ( chainInfo , this . #koniState) ,
2866
- setupDatabaseRegistry (
2867
- await this . #koniState. chainService . getMetadataByHash ( payload . genesisHash ) as MetadataItem ,
2868
- chainInfo ,
2869
- payload
2870
- ) ,
2871
- setupDappRegistry (
2872
- this . #koniState. knownMetadata . find ( ( meta : MetadataDef ) => meta . genesisHash === payload . genesisHash ) as MetadataDef ,
2873
- payload
2874
- )
2875
- ] . filter ( ( item ) : item is RegistrySource => item !== null && item . registry !== undefined ) ;
2876
-
2877
- if ( allRegistry . length === 0 ) {
2866
+ setupDatabaseRegistry ( chainInfo , payload , this . #koniState) ,
2867
+ setupDappRegistry ( payload , this . #koniState)
2868
+ ] ) ;
2869
+
2870
+ const validRegistries = registries . filter ( ( item ) : item is RegistrySource => ! ! item ?. registry ) ;
2871
+
2872
+ if ( validRegistries . length === 0 ) {
2878
2873
registry . setSignedExtensions ( payload . signedExtensions ) ;
2879
2874
} else {
2880
- registry = getSuitableRegistry ( allRegistry , payload ) ;
2875
+ registry = getSuitableRegistry ( validRegistries , payload ) ;
2881
2876
}
2882
2877
}
2883
2878
0 commit comments