@@ -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 , 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 , 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 , 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 , 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 , RequestConfirmationCompleteBitcoin , RequestConfirmationCompleteCardano , RequestConfirmationCompleteTon , RequestConnectWalletConnect , RequestCrowdloanContributions , RequestDeleteContactAccount , RequestDisconnectWalletConnectSession , RequestEditContactAccount , RequestFindRawMetadata , RequestForgetSite , RequestFreeBalance , 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 , 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' ;
@@ -1444,8 +1444,7 @@ export default class KoniExtension {
1444
1444
const bitcoinApi = this . #koniState. getBitcoinApi ( chain ) ;
1445
1445
const feeInfo = await this . #koniState. feeService . subscribeChainFee ( getId ( ) , chain , 'bitcoin' ) ;
1446
1446
1447
- [ transaction , transferAmount . value ] = await createBitcoinTransaction ( {
1448
- bitcoinApi,
1447
+ [ transaction , transferAmount . value ] = await createBitcoinTransaction ( { bitcoinApi,
1449
1448
chain,
1450
1449
from,
1451
1450
feeInfo,
@@ -2301,6 +2300,23 @@ export default class KoniExtension {
2301
2300
return await this . #koniState. completeConfirmationCardano ( request ) ;
2302
2301
}
2303
2302
2303
+ private subscribeBitcoinConfirmations ( id : string , port : chrome . runtime . Port ) {
2304
+ const cb = createSubscription < 'pri(confirmations.bitcoin.subscribe)' > ( id , port ) ;
2305
+
2306
+ const subscription = this . #koniState. requestService . confirmationsQueueSubjectBitcoin . subscribe ( cb ) ;
2307
+
2308
+ this . createUnsubscriptionHandle ( id , subscription . unsubscribe ) ;
2309
+
2310
+ port . onDisconnect . addListener ( ( ) : void => {
2311
+ this . cancelSubscription ( id ) ;
2312
+ } ) ;
2313
+
2314
+ return this . #koniState. requestService . confirmationsQueueSubjectBitcoin . getValue ( ) ;
2315
+ }
2316
+
2317
+ private async completeConfirmationBitcoin ( request : RequestConfirmationCompleteBitcoin ) {
2318
+ return await this . #koniState. completeConfirmationBitcoin ( request ) ;
2319
+ }
2304
2320
/// Sign Qr
2305
2321
2306
2322
private getNetworkJsonByChainId ( chainId ?: number ) : _ChainInfo | null {
@@ -5125,6 +5141,10 @@ export default class KoniExtension {
5125
5141
return await this . completeConfirmationTon ( request as RequestConfirmationCompleteTon ) ;
5126
5142
case 'pri(confirmationsCardano.complete)' :
5127
5143
return await this . completeConfirmationCardano ( request as RequestConfirmationCompleteCardano ) ;
5144
+ case 'pri(confirmations.bitcoin.subscribe)' :
5145
+ return this . subscribeBitcoinConfirmations ( id , port ) ;
5146
+ case 'pri(confirmations.bitcoin.complete)' :
5147
+ return await this . completeConfirmationBitcoin ( request as RequestConfirmationCompleteBitcoin ) ;
5128
5148
5129
5149
/// Stake
5130
5150
case 'pri(bonding.getBondingOptions)' :
0 commit comments