@@ -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' ;
@@ -35,7 +35,7 @@ import { getERC20TransactionObject, getERC721Transaction, getEVMTransactionObjec
35
35
import { createSubstrateExtrinsic } from '@subwallet/extension-base/services/balance-service/transfer/token' ;
36
36
import { createTonTransaction } from '@subwallet/extension-base/services/balance-service/transfer/ton-transfer' ;
37
37
import { createAcrossBridgeExtrinsic , createAvailBridgeExtrinsicFromAvail , createAvailBridgeTxFromEth , createPolygonBridgeExtrinsic , createSnowBridgeExtrinsic , CreateXcmExtrinsicProps , createXcmExtrinsicV2 , dryRunXcmExtrinsicV2 , FunctionCreateXcmExtrinsic } from '@subwallet/extension-base/services/balance-service/transfer/xcm' ;
38
- import { _isAcrossChainBridge , getAcrossQuote } from '@subwallet/extension-base/services/balance-service/transfer/xcm/acrossBridge' ;
38
+ import { _isAcrossChainBridge , AcrossQuote , getAcrossQuote } from '@subwallet/extension-base/services/balance-service/transfer/xcm/acrossBridge' ;
39
39
import { getClaimTxOnAvail , getClaimTxOnEthereum , isAvailChainBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/availBridge' ;
40
40
import { _isPolygonChainBridge , getClaimPolygonBridge , isClaimedPolygonBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/polygonBridge' ;
41
41
import { _isPosChainBridge , getClaimPosBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/posBridge' ;
@@ -1651,7 +1651,8 @@ export default class KoniExtension {
1651
1651
}
1652
1652
1653
1653
if ( isAcrossBridgeTransfer ) {
1654
- const metadata = await getAcrossQuote ( params ) ;
1654
+ const data = await getAcrossQuote ( params ) ;
1655
+ const metadata = data . metadata as AcrossQuote ;
1655
1656
1656
1657
inputData . metadata = {
1657
1658
amountOut : metadata . outputAmount ,
@@ -2860,23 +2861,18 @@ export default class KoniExtension {
2860
2861
if ( isJsonPayload ( payload ) ) {
2861
2862
const [ , chainInfo ] = this . #koniState. findNetworkKeyByGenesisHash ( payload . genesisHash ) ;
2862
2863
2863
- const allRegistry : RegistrySource [ ] = [
2864
+ const registries = await Promise . all ( [
2864
2865
setupApiRegistry ( chainInfo , this . #koniState) ,
2865
- setupDatabaseRegistry (
2866
- await this . #koniState. chainService . getMetadataByHash ( payload . genesisHash ) as MetadataItem ,
2867
- chainInfo ,
2868
- payload
2869
- ) ,
2870
- setupDappRegistry (
2871
- this . #koniState. knownMetadata . find ( ( meta : MetadataDef ) => meta . genesisHash === payload . genesisHash ) as MetadataDef ,
2872
- payload
2873
- )
2874
- ] . filter ( ( item ) : item is RegistrySource => item !== null && item . registry !== undefined ) ;
2875
-
2876
- 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 ) {
2877
2873
registry . setSignedExtensions ( payload . signedExtensions ) ;
2878
2874
} else {
2879
- registry = getSuitableRegistry ( allRegistry , payload ) ;
2875
+ registry = getSuitableRegistry ( validRegistries , payload ) ;
2880
2876
}
2881
2877
}
2882
2878
0 commit comments