@subwallet/extension-base 1.3.41-0 → 1.3.43-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.
Files changed (219) hide show
  1. package/background/KoniTypes.d.ts +134 -5
  2. package/background/KoniTypes.js +18 -0
  3. package/background/errors/BitcoinProviderError.d.ts +6 -0
  4. package/background/errors/BitcoinProviderError.js +47 -0
  5. package/background/types.d.ts +1 -1
  6. package/cjs/background/KoniTypes.js +20 -1
  7. package/cjs/background/errors/BitcoinProviderError.js +54 -0
  8. package/cjs/constants/bitcoin.js +22 -0
  9. package/cjs/constants/index.js +16 -1
  10. package/cjs/core/logic-validation/recipientAddress.js +9 -0
  11. package/cjs/core/logic-validation/request.js +316 -3
  12. package/cjs/core/logic-validation/transfer.js +25 -5
  13. package/cjs/core/types.js +1 -0
  14. package/cjs/core/utils.js +15 -1
  15. package/cjs/koni/background/handlers/Extension.js +477 -93
  16. package/cjs/koni/background/handlers/State.js +249 -16
  17. package/cjs/koni/background/handlers/Tabs.js +119 -6
  18. package/cjs/packageInfo.js +1 -1
  19. package/cjs/page/bitcoin/index.js +67 -0
  20. package/cjs/page/index.js +5 -0
  21. package/cjs/services/balance-service/helpers/subscribe/bitcoin.js +94 -0
  22. package/cjs/services/balance-service/helpers/subscribe/index.js +19 -7
  23. package/cjs/services/balance-service/index.js +32 -4
  24. package/cjs/services/balance-service/transfer/bitcoin-transfer.js +119 -0
  25. package/cjs/services/balance-service/transfer/token.js +2 -0
  26. package/cjs/services/base/types.js +2 -0
  27. package/cjs/services/buy-service/index.js +17 -2
  28. package/cjs/services/chain-service/constants.js +14 -3
  29. package/cjs/services/chain-service/handler/bitcoin/BitcoinApi.js +105 -0
  30. package/cjs/services/chain-service/handler/bitcoin/BitcoinChainHandler.js +78 -0
  31. package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.js +371 -0
  32. package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.js +19 -0
  33. package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.js +368 -0
  34. package/cjs/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.js +302 -0
  35. package/cjs/services/chain-service/handler/bitcoin/strategy/types.js +1 -0
  36. package/cjs/services/chain-service/index.js +27 -3
  37. package/cjs/services/chain-service/utils/index.js +57 -4
  38. package/cjs/services/chain-service/utils/patch.js +1 -1
  39. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +27 -5
  40. package/cjs/services/event-service/index.js +4 -0
  41. package/cjs/services/fee-service/service.js +8 -3
  42. package/cjs/services/hiro-service/index.js +96 -0
  43. package/cjs/services/hiro-service/utils/index.js +85 -0
  44. package/cjs/services/history-service/bitcoin-history.js +58 -0
  45. package/cjs/services/history-service/helpers/recoverHistoryStatus.js +96 -4
  46. package/cjs/services/history-service/index.js +41 -3
  47. package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
  48. package/cjs/services/keyring-service/context/handlers/Migration.js +2 -2
  49. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +4 -3
  50. package/cjs/services/migration-service/scripts/MigrateNewUnifiedAccount.js +29 -0
  51. package/cjs/services/migration-service/scripts/index.js +3 -1
  52. package/cjs/services/request-service/handler/AuthRequestHandler.js +18 -0
  53. package/cjs/services/request-service/handler/BitcoinRequestHandler.js +427 -0
  54. package/cjs/services/request-service/index.js +29 -3
  55. package/cjs/services/rune-service/index.js +105 -0
  56. package/cjs/services/transaction-service/helpers/index.js +7 -1
  57. package/cjs/services/transaction-service/index.js +206 -16
  58. package/cjs/services/transaction-service/utils.js +6 -3
  59. package/cjs/strategy/api-request-strategy/context/base.js +31 -0
  60. package/cjs/strategy/api-request-strategy/index.js +90 -0
  61. package/cjs/strategy/api-request-strategy/types.js +1 -0
  62. package/cjs/strategy/api-request-strategy/utils/index.js +33 -0
  63. package/cjs/types/account/info/keyring.js +1 -1
  64. package/cjs/types/bitcoin.js +24 -0
  65. package/cjs/types/fee/bitcoin.js +1 -0
  66. package/cjs/types/fee/index.js +11 -0
  67. package/cjs/types/index.js +11 -0
  68. package/cjs/utils/account/analyze.js +3 -3
  69. package/cjs/utils/account/common.js +16 -6
  70. package/cjs/utils/account/derive/info/solo.js +68 -19
  71. package/cjs/utils/account/derive/info/unified.js +2 -0
  72. package/cjs/utils/account/derive/validate.js +70 -2
  73. package/cjs/utils/account/transform.js +11 -5
  74. package/cjs/utils/auth.js +2 -1
  75. package/cjs/utils/bitcoin/common.js +98 -0
  76. package/cjs/utils/bitcoin/fee.js +21 -0
  77. package/cjs/utils/bitcoin/index.js +38 -0
  78. package/cjs/utils/bitcoin/utxo-management.js +281 -0
  79. package/cjs/utils/fee/transfer.js +48 -0
  80. package/cjs/utils/index.js +15 -1
  81. package/constants/bitcoin.d.ts +3 -0
  82. package/constants/bitcoin.js +13 -0
  83. package/constants/index.d.ts +2 -0
  84. package/constants/index.js +3 -1
  85. package/core/logic-validation/recipientAddress.js +10 -1
  86. package/core/logic-validation/request.d.ts +6 -2
  87. package/core/logic-validation/request.js +309 -3
  88. package/core/logic-validation/transfer.d.ts +2 -2
  89. package/core/logic-validation/transfer.js +27 -7
  90. package/core/types.d.ts +1 -0
  91. package/core/types.js +1 -0
  92. package/core/utils.d.ts +1 -0
  93. package/core/utils.js +15 -2
  94. package/koni/background/handlers/Extension.d.ts +5 -0
  95. package/koni/background/handlers/Extension.js +387 -9
  96. package/koni/background/handlers/State.d.ts +10 -3
  97. package/koni/background/handlers/State.js +240 -15
  98. package/koni/background/handlers/Tabs.d.ts +7 -2
  99. package/koni/background/handlers/Tabs.js +119 -9
  100. package/package.json +149 -8
  101. package/packageInfo.js +1 -1
  102. package/page/bitcoin/index.d.ts +17 -0
  103. package/page/bitcoin/index.js +60 -0
  104. package/page/index.d.ts +2 -1
  105. package/page/index.js +4 -0
  106. package/services/balance-service/helpers/subscribe/bitcoin.d.ts +2 -0
  107. package/services/balance-service/helpers/subscribe/bitcoin.js +87 -0
  108. package/services/balance-service/helpers/subscribe/index.d.ts +2 -2
  109. package/services/balance-service/helpers/subscribe/index.js +20 -8
  110. package/services/balance-service/index.d.ts +2 -0
  111. package/services/balance-service/index.js +32 -4
  112. package/services/balance-service/transfer/bitcoin-transfer.d.ts +14 -0
  113. package/services/balance-service/transfer/bitcoin-transfer.js +112 -0
  114. package/services/balance-service/transfer/cardano-transfer.d.ts +2 -0
  115. package/services/balance-service/transfer/token.js +2 -0
  116. package/services/base/types.d.ts +2 -0
  117. package/services/base/types.js +2 -0
  118. package/services/buy-service/index.js +17 -2
  119. package/services/chain-service/constants.d.ts +6 -0
  120. package/services/chain-service/constants.js +8 -2
  121. package/services/chain-service/handler/bitcoin/BitcoinApi.d.ts +31 -0
  122. package/services/chain-service/handler/bitcoin/BitcoinApi.js +98 -0
  123. package/services/chain-service/handler/bitcoin/BitcoinChainHandler.d.ts +16 -0
  124. package/services/chain-service/handler/bitcoin/BitcoinChainHandler.js +70 -0
  125. package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.d.ts +28 -0
  126. package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.js +362 -0
  127. package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.d.ts +2 -0
  128. package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.js +5 -0
  129. package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.d.ts +28 -0
  130. package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.js +359 -0
  131. package/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.d.ts +28 -0
  132. package/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.js +293 -0
  133. package/services/chain-service/handler/bitcoin/strategy/types.d.ts +291 -0
  134. package/services/chain-service/handler/bitcoin/strategy/types.js +1 -0
  135. package/services/chain-service/index.d.ts +3 -0
  136. package/services/chain-service/index.js +31 -5
  137. package/services/chain-service/types.d.ts +20 -0
  138. package/services/chain-service/utils/index.d.ts +4 -0
  139. package/services/chain-service/utils/index.js +50 -4
  140. package/services/chain-service/utils/patch.js +1 -1
  141. package/services/earning-service/handlers/native-staking/para-chain.js +27 -5
  142. package/services/event-service/index.d.ts +3 -0
  143. package/services/event-service/index.js +4 -0
  144. package/services/event-service/types.d.ts +3 -0
  145. package/services/fee-service/service.js +8 -3
  146. package/services/hiro-service/index.d.ts +17 -0
  147. package/services/hiro-service/index.js +88 -0
  148. package/services/hiro-service/utils/index.d.ts +6 -0
  149. package/services/hiro-service/utils/index.js +72 -0
  150. package/services/history-service/bitcoin-history.d.ts +4 -0
  151. package/services/history-service/bitcoin-history.js +52 -0
  152. package/services/history-service/helpers/recoverHistoryStatus.d.ts +3 -1
  153. package/services/history-service/helpers/recoverHistoryStatus.js +96 -4
  154. package/services/history-service/index.d.ts +1 -0
  155. package/services/history-service/index.js +42 -4
  156. package/services/keyring-service/context/handlers/Derive.js +2 -2
  157. package/services/keyring-service/context/handlers/Migration.js +2 -2
  158. package/services/keyring-service/context/handlers/Mnemonic.js +4 -3
  159. package/services/migration-service/scripts/MigrateNewUnifiedAccount.d.ts +4 -0
  160. package/services/migration-service/scripts/MigrateNewUnifiedAccount.js +21 -0
  161. package/services/migration-service/scripts/index.js +3 -1
  162. package/services/request-service/handler/AuthRequestHandler.js +19 -1
  163. package/services/request-service/handler/BitcoinRequestHandler.d.ts +22 -0
  164. package/services/request-service/handler/BitcoinRequestHandler.js +414 -0
  165. package/services/request-service/index.d.ts +8 -2
  166. package/services/request-service/index.js +25 -3
  167. package/services/rune-service/index.d.ts +17 -0
  168. package/services/rune-service/index.js +97 -0
  169. package/services/transaction-service/helpers/index.d.ts +3 -1
  170. package/services/transaction-service/helpers/index.js +5 -0
  171. package/services/transaction-service/index.d.ts +4 -5
  172. package/services/transaction-service/index.js +205 -17
  173. package/services/transaction-service/types.d.ts +13 -2
  174. package/services/transaction-service/utils.js +7 -4
  175. package/strategy/api-request-strategy/context/base.d.ts +15 -0
  176. package/strategy/api-request-strategy/context/base.js +24 -0
  177. package/strategy/api-request-strategy/index.d.ts +15 -0
  178. package/strategy/api-request-strategy/index.js +83 -0
  179. package/strategy/api-request-strategy/types.d.ts +22 -0
  180. package/strategy/api-request-strategy/types.js +1 -0
  181. package/strategy/api-request-strategy/utils/index.d.ts +2 -0
  182. package/strategy/api-request-strategy/utils/index.js +23 -0
  183. package/types/account/info/keyring.d.ts +1 -1
  184. package/types/account/info/keyring.js +1 -1
  185. package/types/balance/index.d.ts +4 -1
  186. package/types/balance/transfer.d.ts +19 -0
  187. package/types/bitcoin.d.ts +93 -0
  188. package/types/bitcoin.js +17 -0
  189. package/types/buy.d.ts +1 -1
  190. package/types/fee/base.d.ts +4 -1
  191. package/types/fee/bitcoin.d.ts +18 -0
  192. package/types/fee/bitcoin.js +1 -0
  193. package/types/fee/index.d.ts +1 -0
  194. package/types/fee/index.js +2 -1
  195. package/types/fee/subscription.d.ts +4 -3
  196. package/types/index.d.ts +1 -0
  197. package/types/index.js +1 -0
  198. package/utils/account/analyze.js +4 -4
  199. package/utils/account/common.d.ts +7 -8
  200. package/utils/account/common.js +16 -6
  201. package/utils/account/derive/info/solo.js +70 -21
  202. package/utils/account/derive/info/unified.js +2 -0
  203. package/utils/account/derive/validate.d.ts +1 -0
  204. package/utils/account/derive/validate.js +68 -1
  205. package/utils/account/transform.d.ts +1 -1
  206. package/utils/account/transform.js +11 -5
  207. package/utils/auth.js +3 -2
  208. package/utils/bitcoin/common.d.ts +22 -0
  209. package/utils/bitcoin/common.js +88 -0
  210. package/utils/bitcoin/fee.d.ts +2 -0
  211. package/utils/bitcoin/fee.js +14 -0
  212. package/utils/bitcoin/index.d.ts +3 -0
  213. package/utils/bitcoin/index.js +6 -0
  214. package/utils/bitcoin/utxo-management.d.ts +33 -0
  215. package/utils/bitcoin/utxo-management.js +266 -0
  216. package/utils/fee/transfer.d.ts +3 -1
  217. package/utils/fee/transfer.js +47 -1
  218. package/utils/index.d.ts +1 -0
  219. package/utils/index.js +6 -3
@@ -14,17 +14,18 @@ import { _NotificationInfo, NotificationSetup } from '@subwallet/extension-base/
14
14
  import { AppBannerData, AppConfirmationData, AppPopupData } from '@subwallet/extension-base/services/mkt-campaign-service/types';
15
15
  import { AuthUrls } from '@subwallet/extension-base/services/request-service/types';
16
16
  import { CrowdloanContributionsResponse } from '@subwallet/extension-base/services/subscan-service/types';
17
- import { SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
17
+ import { BitcoinTransactionData, SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
18
18
  import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
19
19
  import { AccountChainType, AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalTransferPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestAccountBatchExportV2, RequestAccountCreateSuriV2, RequestAccountNameValidate, RequestAccountProxyEdit, RequestAccountProxyForget, RequestBatchJsonGetAccountInfo, RequestBatchRestoreV2, RequestBounceableValidate, RequestChangeAllowOneSign, RequestChangeTonWalletContractVersion, RequestCheckCrossChainTransfer, RequestCheckPublicAndSecretKey, RequestCheckTransfer, RequestCrossChainTransfer, RequestDeriveCreateMultiple, RequestDeriveCreateV3, RequestDeriveValidateV2, RequestEarlyValidateYield, RequestEarningSlippage, RequestExportAccountProxyMnemonic, RequestGetAllTonWalletContractVersion, RequestGetAmountForPair, RequestGetDeriveAccounts, RequestGetDeriveSuggestion, RequestGetTokensCanPayFee, RequestGetYieldPoolTargets, RequestInputAccountSubscribe, RequestJsonGetAccountInfo, RequestJsonRestoreV2, RequestMetadataHash, RequestMnemonicCreateV2, RequestMnemonicValidateV2, RequestPrivateKeyValidateV2, RequestShortenMetadata, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestSubmitProcessTransaction, RequestSubscribeProcessById, RequestTransfer, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseAccountBatchExportV2, ResponseAccountCreateSuriV2, ResponseAccountNameValidate, ResponseBatchJsonGetAccountInfo, ResponseCheckPublicAndSecretKey, ResponseDeriveValidateV2, ResponseEarlyValidateYield, ResponseExportAccountProxyMnemonic, ResponseGetAllTonWalletContractVersion, ResponseGetDeriveAccounts, ResponseGetDeriveSuggestion, ResponseGetYieldPoolTargets, ResponseInputAccountSubscribe, ResponseJsonGetAccountInfo, ResponseMetadataHash, ResponseMnemonicCreateV2, ResponseMnemonicValidateV2, ResponsePrivateKeyValidateV2, ResponseShortenMetadata, ResponseSubscribeProcessAlive, ResponseSubscribeProcessById, StorageDataInterface, SubmitYieldStepData, SubnetYieldPositionInfo, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapRequestV2, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
20
- import { RequestSubmitTransfer, RequestSubscribeTransfer, ResponseSubscribeTransfer } from '@subwallet/extension-base/types/balance/transfer';
20
+ import { RequestSubmitSignPsbtTransfer, RequestSubmitTransfer, RequestSubmitTransferWithId, RequestSubscribeTransfer, ResponseSubscribeTransfer, ResponseSubscribeTransferConfirmation } from '@subwallet/extension-base/types/balance/transfer';
21
21
  import { RequestClaimBridge } from '@subwallet/extension-base/types/bridge';
22
22
  import { GetNotificationParams, RequestIsClaimedPolygonBridge, RequestSwitchStatusParams } from '@subwallet/extension-base/types/notification';
23
23
  import { InjectedAccount, InjectedAccountWithMeta, MetadataDefBase } from '@subwallet/extension-inject/types';
24
- import { KeyringPair$Meta } from '@subwallet/keyring/types';
24
+ import { BitcoinAddressType, KeyringPair$Meta } from '@subwallet/keyring/types';
25
25
  import { KeyringOptions } from '@subwallet/ui-keyring/options/types';
26
26
  import { KeyringAddress } from '@subwallet/ui-keyring/types';
27
27
  import { SessionTypes } from '@walletconnect/types/dist/types/sign-client/session';
28
+ import BN from 'bn.js';
28
29
  import { DexieExportJsonStructure } from 'dexie-export-import';
29
30
  import Web3 from 'web3';
30
31
  import { RequestArguments, TransactionConfig } from 'web3-core';
@@ -566,7 +567,7 @@ export declare type TransactionAdditionalInfo = {
566
567
  [ExtrinsicType.STAKING_UNBOND]: Pick<SubmitYieldStepData, 'inputTokenSlug' | 'exchangeRate'>;
567
568
  };
568
569
  export interface TransactionHistoryItem<ET extends ExtrinsicType = ExtrinsicType.TRANSFER_BALANCE> {
569
- origin?: 'app' | 'migration' | 'subsquid' | 'subscan';
570
+ origin?: 'app' | 'migration' | 'subsquid' | 'subscan' | 'blockstream';
570
571
  callhash?: string;
571
572
  signature?: string;
572
573
  chain: string;
@@ -582,6 +583,7 @@ export interface TransactionHistoryItem<ET extends ExtrinsicType = ExtrinsicType
582
583
  status: ExtrinsicStatus;
583
584
  transactionId?: string;
584
585
  extrinsicHash: string;
586
+ blockTime?: number;
585
587
  time: number;
586
588
  data?: string;
587
589
  blockNumber: number;
@@ -595,6 +597,7 @@ export interface TransactionHistoryItem<ET extends ExtrinsicType = ExtrinsicType
595
597
  nonce?: number;
596
598
  addressPrefix?: number;
597
599
  processId?: string;
600
+ apiTxIndex?: number;
598
601
  }
599
602
  export interface SWWarning {
600
603
  errorType: string;
@@ -855,6 +858,15 @@ export declare enum EvmProviderErrorType {
855
858
  INVALID_PARAMS = "INVALID_PARAMS",
856
859
  INTERNAL_ERROR = "INTERNAL_ERROR"
857
860
  }
861
+ export declare enum BitcoinProviderErrorType {
862
+ USER_REJECTED_REQUEST = "USER_REJECTED_REQUEST",
863
+ UNAUTHORIZED = "UNAUTHORIZED",
864
+ UNSUPPORTED_METHOD = "UNSUPPORTED_METHOD",
865
+ DISCONNECTED = "DISCONNECTED",
866
+ CHAIN_DISCONNECTED = "CHAIN_DISCONNECTED",
867
+ INVALID_PARAMS = "INVALID_PARAMS",
868
+ INTERNAL_ERROR = "INTERNAL_ERROR"
869
+ }
858
870
  export interface EvmSendTransactionParams {
859
871
  from: string;
860
872
  to?: string;
@@ -871,6 +883,52 @@ export interface EvmSignRequest {
871
883
  hashPayload: string;
872
884
  canSign: boolean;
873
885
  }
886
+ export interface BitcoinSignRequest {
887
+ address: string;
888
+ hashPayload: string;
889
+ canSign: boolean;
890
+ errors?: ErrorValidation[];
891
+ }
892
+ export interface BitcoinRecipientTransactionParams {
893
+ address: string;
894
+ amount: string;
895
+ }
896
+ export interface BitcoinSendTransactionParams {
897
+ account: string;
898
+ network: 'mainnet' | 'testnet';
899
+ recipients: BitcoinRecipientTransactionParams[];
900
+ }
901
+ export interface BitcoinSendTransactionResult {
902
+ txid: string;
903
+ }
904
+ export interface PsbtTransactionArg {
905
+ address?: string;
906
+ amount?: string;
907
+ }
908
+ export interface BitcoinSignPsbtPayload extends Omit<BitcoinSignPsbtParams, 'psbt'> {
909
+ txInput: PsbtTransactionArg[];
910
+ txOutput: PsbtTransactionArg[];
911
+ to: string;
912
+ value: string;
913
+ psbt: string;
914
+ tokenSlug: string;
915
+ }
916
+ declare enum SignatureHash {
917
+ DEFAULT = 0,
918
+ ALL = 1,
919
+ NONE = 2,
920
+ SINGLE = 3,
921
+ ANYONECANPAY = 128
922
+ }
923
+ export interface BitcoinSignPsbtParams {
924
+ psbt: string;
925
+ allowedSighash?: SignatureHash[];
926
+ signAtIndex?: number | number[];
927
+ broadcast?: boolean;
928
+ autoFinalized?: boolean;
929
+ network: string;
930
+ address: string;
931
+ }
874
932
  export interface TonSignRequest {
875
933
  account: AccountJson;
876
934
  hashPayload: string;
@@ -971,18 +1029,58 @@ export interface CardanoTransactionDappConfig {
971
1029
  id: string;
972
1030
  }
973
1031
  export declare type ResponseCardanoSignTransaction = Cbor;
1032
+ export declare type BitcoinSendTransactionRequest = BitcoinSignRequest & BitcoinTransactionConfig;
1033
+ export interface BitcoinSignatureRequest extends BitcoinSignRequest {
1034
+ id: string;
1035
+ payload: unknown;
1036
+ payloadJson: any;
1037
+ }
1038
+ export declare type BitcoinDAppAddress = {
1039
+ address: string;
1040
+ publicKey?: string;
1041
+ tweakedPublicKey?: string;
1042
+ derivationPath?: string;
1043
+ isTestnet?: boolean;
1044
+ type: BitcoinAddressType;
1045
+ };
1046
+ export declare type BitcoinRequestGetAddressesResult = BitcoinDAppAddress[];
1047
+ export interface BitcoinSignMessageParams {
1048
+ message: string;
1049
+ address: string;
1050
+ }
1051
+ export interface BitcoinSignMessageResult {
1052
+ signature: string;
1053
+ message: string;
1054
+ address: string;
1055
+ }
974
1056
  export declare type TonSendTransactionRequest = TonTransactionConfig;
975
1057
  export declare type CardanoSendTransactionRequest = CardanoTransactionConfig;
976
1058
  export declare type CardanoSignTransactionRequest = CardanoTransactionDappConfig;
977
1059
  export declare type EvmWatchTransactionRequest = EvmSendTransactionRequest;
978
1060
  export declare type TonWatchTransactionRequest = TonSendTransactionRequest;
979
1061
  export declare type CardanoWatchTransactionRequest = CardanoSendTransactionRequest;
1062
+ export declare type BitcoinWatchTransactionRequest = BitcoinSendTransactionRequest;
1063
+ export declare type BitcoinSignPsbtRequest = BitcoinSignRequest & {
1064
+ payload: BitcoinSignPsbtPayload;
1065
+ };
980
1066
  export interface ConfirmationsQueueItemOptions {
981
1067
  requiredPassword?: boolean;
982
1068
  address?: string;
983
1069
  networkKey?: string;
984
1070
  isPassConfirmation?: boolean;
985
1071
  }
1072
+ export interface BitcoinTransactionConfig {
1073
+ id?: string;
1074
+ from?: string | number;
1075
+ to?: BitcoinRecipientTransactionParams[];
1076
+ value?: number | string | BN;
1077
+ networkKey?: string;
1078
+ tokenSlug?: string;
1079
+ }
1080
+ export interface BitcoinSignPsbtResult {
1081
+ psbt: string;
1082
+ txid?: string;
1083
+ }
986
1084
  export interface ConfirmationsQueueItem<T> extends ConfirmationsQueueItemOptions, ConfirmationRequestBase {
987
1085
  payload: T;
988
1086
  payloadJson: string;
@@ -1040,9 +1138,17 @@ export interface ConfirmationDefinitionsCardano {
1040
1138
  cardanoSignTransactionRequest: [ConfirmationsQueueItem<CardanoSignTransactionRequest>, ConfirmationResult<string>];
1041
1139
  cardanoWatchTransactionRequest: [ConfirmationsQueueItem<CardanoWatchTransactionRequest>, ConfirmationResult<string>];
1042
1140
  }
1141
+ export interface ConfirmationDefinitionsBitcoin {
1142
+ bitcoinSignatureRequest: [ConfirmationsQueueItem<BitcoinSignatureRequest>, ConfirmationResult<BitcoinSignMessageResult>];
1143
+ bitcoinSendTransactionRequest: [ConfirmationsQueueItem<BitcoinSendTransactionRequest>, ConfirmationResult<string>];
1144
+ bitcoinSendTransactionRequestAfterConfirmation: [ConfirmationsQueueItem<BitcoinSendTransactionRequest>, ConfirmationResult<string>];
1145
+ bitcoinWatchTransactionRequest: [ConfirmationsQueueItem<BitcoinWatchTransactionRequest>, ConfirmationResult<string>];
1146
+ bitcoinSignPsbtRequest: [ConfirmationsQueueItem<BitcoinSignPsbtRequest>, ConfirmationResult<BitcoinSignPsbtResult>];
1147
+ }
1043
1148
  export declare type ConfirmationType = keyof ConfirmationDefinitions;
1044
1149
  export declare type ConfirmationTypeTon = keyof ConfirmationDefinitionsTon;
1045
1150
  export declare type ConfirmationTypeCardano = keyof ConfirmationDefinitionsCardano;
1151
+ export declare type ConfirmationTypeBitcoin = keyof ConfirmationDefinitionsBitcoin;
1046
1152
  export declare type ConfirmationsQueue = {
1047
1153
  [CT in ConfirmationType]: Record<string, ConfirmationDefinitions[CT][0]>;
1048
1154
  };
@@ -1052,12 +1158,19 @@ export declare type ConfirmationsQueueTon = {
1052
1158
  export declare type ConfirmationsQueueCardano = {
1053
1159
  [CT in ConfirmationTypeCardano]: Record<string, ConfirmationDefinitionsCardano[CT][0]>;
1054
1160
  };
1161
+ export declare type ConfirmationsQueueBitcoin = {
1162
+ [CT in ConfirmationTypeBitcoin]: Record<string, ConfirmationDefinitionsBitcoin[CT][0]>;
1163
+ };
1055
1164
  export declare type RequestConfirmationsSubscribe = null;
1056
1165
  export declare type RequestConfirmationsSubscribeTon = null;
1057
1166
  export declare type RequestConfirmationsSubscribeCardano = null;
1167
+ export declare type RequestConfirmationsSubscribeBitcoin = null;
1058
1168
  export declare type RequestConfirmationComplete = {
1059
1169
  [CT in ConfirmationType]?: ConfirmationDefinitions[CT][1];
1060
1170
  };
1171
+ export declare type RequestConfirmationCompleteBitcoin = {
1172
+ [CT in ConfirmationTypeBitcoin]?: ConfirmationDefinitionsBitcoin[CT][1];
1173
+ };
1061
1174
  export declare type RequestConfirmationCompleteTon = {
1062
1175
  [CT in ConfirmationTypeTon]?: ConfirmationDefinitionsTon[CT][1];
1063
1176
  };
@@ -1636,7 +1749,16 @@ export interface ExtrinsicsDataResponse {
1636
1749
  }[];
1637
1750
  }
1638
1751
  export declare type _Address = string;
1639
- export declare type _BalanceMetadata = unknown;
1752
+ export declare type _BalanceMetadata = BitcoinBalanceMetadata | unknown;
1753
+ export declare type BitcoinBalanceMetadata = {
1754
+ inscriptionCount: number;
1755
+ runeBalance: string;
1756
+ inscriptionBalance: string;
1757
+ };
1758
+ export interface AddressBalanceResult {
1759
+ balance: string;
1760
+ bitcoinBalanceMetadata: BitcoinBalanceMetadata;
1761
+ }
1640
1762
  export interface KoniRequestSignatures {
1641
1763
  'pri(staking.submitTuringCancelCompound)': [RequestTuringCancelStakeCompound, SWTransactionResponse];
1642
1764
  'pri(staking.submitTuringCompound)': [RequestTuringStakeCompound, SWTransactionResponse];
@@ -1808,11 +1930,15 @@ export interface KoniRequestSignatures {
1808
1930
  'pri(transaction.history.subscribe)': [RequestSubscribeHistory, ResponseSubscribeHistory, TransactionHistoryItem[]];
1809
1931
  'pri(transfer.getMaxTransferable)': [RequestMaxTransferable, AmountData];
1810
1932
  'pri(transfer.subscribe)': [RequestSubscribeTransfer, ResponseSubscribeTransfer, ResponseSubscribeTransfer];
1933
+ 'pri(transfer.confirmation.subscribe)': [RequestSubscribeTransfer, ResponseSubscribeTransferConfirmation, ResponseSubscribeTransferConfirmation];
1811
1934
  'pri(subscription.cancel)': [string, boolean];
1812
1935
  'pri(freeBalance.get)': [RequestFreeBalance, AmountData];
1813
1936
  'pri(freeBalance.subscribe)': [RequestFreeBalance, AmountDataWithId, AmountDataWithId];
1814
1937
  'pri(accounts.checkTransfer)': [RequestCheckTransfer, ValidateTransactionResponse];
1815
1938
  'pri(accounts.transfer)': [RequestSubmitTransfer, SWTransactionResponse];
1939
+ 'pri(accounts.bitcoin.dapp.transfer.confirmation)': [RequestSubmitTransferWithId, SWTransactionResponse];
1940
+ 'pri(accounts.psbt.transfer.confirmation)': [RequestSubmitSignPsbtTransfer, SWTransactionResponse];
1941
+ 'pri(accounts.getBitcoinTransactionData)': [RequestSubmitTransfer, BitcoinTransactionData];
1816
1942
  'pri(accounts.getOptimalTransferProcess)': [RequestOptimalTransferProcess, CommonOptimalTransferPath];
1817
1943
  'pri(accounts.approveSpending)': [TokenSpendingApprovalParams, SWTransactionResponse];
1818
1944
  'pri(accounts.checkCrossChainTransfer)': [RequestCheckCrossChainTransfer, ValidateTransactionResponse];
@@ -1822,9 +1948,11 @@ export interface KoniRequestSignatures {
1822
1948
  'pri(confirmations.subscribe)': [RequestConfirmationsSubscribe, ConfirmationsQueue, ConfirmationsQueue];
1823
1949
  'pri(confirmationsTon.subscribe)': [RequestConfirmationsSubscribeTon, ConfirmationsQueueTon, ConfirmationsQueueTon];
1824
1950
  'pri(confirmationsCardano.subscribe)': [RequestConfirmationsSubscribeCardano, ConfirmationsQueueCardano, ConfirmationsQueueCardano];
1951
+ 'pri(confirmationsBitcoin.subscribe)': [RequestConfirmationsSubscribeBitcoin, ConfirmationsQueueBitcoin, ConfirmationsQueueBitcoin];
1825
1952
  'pri(confirmations.complete)': [RequestConfirmationComplete, boolean];
1826
1953
  'pri(confirmationsTon.complete)': [RequestConfirmationCompleteTon, boolean];
1827
1954
  'pri(confirmationsCardano.complete)': [RequestConfirmationCompleteCardano, boolean];
1955
+ 'pri(confirmationsBitcoin.complete)': [RequestConfirmationCompleteBitcoin, boolean];
1828
1956
  'pub(utils.getRandom)': [RandomTestRequest, number];
1829
1957
  'pub(accounts.listV2)': [RequestAccountList, InjectedAccount[]];
1830
1958
  'pub(accounts.subscribeV2)': [RequestAccountSubscribe, string, InjectedAccount[]];
@@ -1849,6 +1977,7 @@ export interface KoniRequestSignatures {
1849
1977
  'cardano(data.sign)': [RequestCardanoSignData, ResponseCardanoSignData];
1850
1978
  'cardano(transaction.sign)': [RequestCardanoSignTransaction, ResponseCardanoSignTransaction];
1851
1979
  'cardano(transaction.submit)': [Cbor, string];
1980
+ 'bitcoin(request)': [RequestArguments, unknown];
1852
1981
  'pri(evm.transaction.parse.input)': [RequestParseEvmContractInput, ResponseParseEvmContractInput];
1853
1982
  'pri(authorize.subscribe)': [null, AuthUrls, AuthUrls];
1854
1983
  'pri(signing.approve.passwordV2)': [RequestSigningApprovePasswordV2, boolean];
@@ -185,6 +185,24 @@ export let EvmProviderErrorType;
185
185
  EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
186
186
  EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
187
187
  })(EvmProviderErrorType || (EvmProviderErrorType = {}));
188
+ export let BitcoinProviderErrorType;
189
+ (function (BitcoinProviderErrorType) {
190
+ BitcoinProviderErrorType["USER_REJECTED_REQUEST"] = "USER_REJECTED_REQUEST";
191
+ BitcoinProviderErrorType["UNAUTHORIZED"] = "UNAUTHORIZED";
192
+ BitcoinProviderErrorType["UNSUPPORTED_METHOD"] = "UNSUPPORTED_METHOD";
193
+ BitcoinProviderErrorType["DISCONNECTED"] = "DISCONNECTED";
194
+ BitcoinProviderErrorType["CHAIN_DISCONNECTED"] = "CHAIN_DISCONNECTED";
195
+ BitcoinProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
196
+ BitcoinProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
197
+ })(BitcoinProviderErrorType || (BitcoinProviderErrorType = {}));
198
+ var SignatureHash;
199
+ (function (SignatureHash) {
200
+ SignatureHash[SignatureHash["DEFAULT"] = 0] = "DEFAULT";
201
+ SignatureHash[SignatureHash["ALL"] = 1] = "ALL";
202
+ SignatureHash[SignatureHash["NONE"] = 2] = "NONE";
203
+ SignatureHash[SignatureHash["SINGLE"] = 3] = "SINGLE";
204
+ SignatureHash[SignatureHash["ANYONECANPAY"] = 128] = "ANYONECANPAY";
205
+ })(SignatureHash || (SignatureHash = {}));
188
206
  // Cardano Request Dapp Input
189
207
  export let CardanoProviderErrorType;
190
208
  (function (CardanoProviderErrorType) {
@@ -0,0 +1,6 @@
1
+ import { SWError } from '@subwallet/extension-base/background/errors/SWError';
2
+ import { BitcoinProviderErrorType } from '@subwallet/extension-base/background/KoniTypes';
3
+ export declare class BitcoinProviderError extends SWError {
4
+ errorType: BitcoinProviderErrorType;
5
+ constructor(errorType: BitcoinProviderErrorType, errMessage?: string, data?: unknown, name?: string);
6
+ }
@@ -0,0 +1,47 @@
1
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { SWError } from '@subwallet/extension-base/background/errors/SWError';
5
+ import { detectTranslate } from '@subwallet/extension-base/utils';
6
+ import { t } from 'i18next';
7
+ const defaultErrorMap = {
8
+ USER_REJECTED_REQUEST: {
9
+ message: detectTranslate('User Rejected Request'),
10
+ code: 4001
11
+ },
12
+ UNAUTHORIZED: {
13
+ message: detectTranslate('Failed to sign'),
14
+ code: 4100
15
+ },
16
+ UNSUPPORTED_METHOD: {
17
+ message: detectTranslate('Unsupported Method'),
18
+ code: 4200
19
+ },
20
+ DISCONNECTED: {
21
+ message: detectTranslate('Network is disconnected'),
22
+ code: 4900
23
+ },
24
+ CHAIN_DISCONNECTED: {
25
+ message: detectTranslate('Network is disconnected'),
26
+ code: 4901
27
+ },
28
+ INVALID_PARAMS: {
29
+ message: detectTranslate('Undefined error. Please contact SubWallet support'),
30
+ code: -32602
31
+ },
32
+ INTERNAL_ERROR: {
33
+ message: detectTranslate('Undefined error. Please contact SubWallet support'),
34
+ code: -32603
35
+ }
36
+ };
37
+ export class BitcoinProviderError extends SWError {
38
+ constructor(errorType, errMessage, data, name) {
39
+ const {
40
+ code,
41
+ message
42
+ } = defaultErrorMap[errorType];
43
+ const finalMessage = errMessage || t(message || '') || errorType;
44
+ super(errorType, finalMessage, code, data, name);
45
+ this.errorType = errorType;
46
+ }
47
+ }
@@ -113,7 +113,7 @@ export interface TransportRequestMessage<TMessageType extends MessageTypes> {
113
113
  origin: 'page' | 'extension' | string;
114
114
  request: RequestTypes[TMessageType];
115
115
  }
116
- export declare type AccountAuthType = 'substrate' | 'evm' | 'ton' | 'cardano';
116
+ export declare type AccountAuthType = 'substrate' | 'evm' | 'ton' | 'cardano' | 'bitcoin';
117
117
  export interface RequestAuthorizeTab {
118
118
  origin: string;
119
119
  accountAuthTypes?: AccountAuthType[];
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WalletUnlockType = exports.TransactionDirection = exports.ThemeNames = exports.StakingType = exports.RuntimeEnvironment = exports.RMRK_VER = exports.ProviderErrorType = exports.NotificationType = exports.NETWORK_STATUS = exports.MobileOS = exports.MantaPayEnableMessage = exports.ExtrinsicType = exports.ExtrinsicStatus = exports.ExternalRequestPromiseStatus = exports.EvmProviderErrorType = exports.CrowdloanParaState = exports.ContractType = exports.ChainType = exports.CardanoProviderErrorType = exports.CampaignDataType = exports.BalanceErrorType = exports.AssetHubNftType = exports.AccountExternalErrorCode = exports.APIItemState = void 0;
6
+ exports.WalletUnlockType = exports.TransactionDirection = exports.ThemeNames = exports.StakingType = exports.RuntimeEnvironment = exports.RMRK_VER = exports.ProviderErrorType = exports.NotificationType = exports.NETWORK_STATUS = exports.MobileOS = exports.MantaPayEnableMessage = exports.ExtrinsicType = exports.ExtrinsicStatus = exports.ExternalRequestPromiseStatus = exports.EvmProviderErrorType = exports.CrowdloanParaState = exports.ContractType = exports.ChainType = exports.CardanoProviderErrorType = exports.CampaignDataType = exports.BitcoinProviderErrorType = exports.BalanceErrorType = exports.AssetHubNftType = exports.AccountExternalErrorCode = exports.APIItemState = void 0;
7
7
  // Copyright 2019-2022 @polkadot/extension-koni authors & contributors
8
8
  // SPDX-License-Identifier: Apache-2.0
9
9
  let RuntimeEnvironment;
@@ -199,6 +199,25 @@ exports.EvmProviderErrorType = EvmProviderErrorType;
199
199
  EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
200
200
  EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
201
201
  })(EvmProviderErrorType || (exports.EvmProviderErrorType = EvmProviderErrorType = {}));
202
+ let BitcoinProviderErrorType;
203
+ exports.BitcoinProviderErrorType = BitcoinProviderErrorType;
204
+ (function (BitcoinProviderErrorType) {
205
+ BitcoinProviderErrorType["USER_REJECTED_REQUEST"] = "USER_REJECTED_REQUEST";
206
+ BitcoinProviderErrorType["UNAUTHORIZED"] = "UNAUTHORIZED";
207
+ BitcoinProviderErrorType["UNSUPPORTED_METHOD"] = "UNSUPPORTED_METHOD";
208
+ BitcoinProviderErrorType["DISCONNECTED"] = "DISCONNECTED";
209
+ BitcoinProviderErrorType["CHAIN_DISCONNECTED"] = "CHAIN_DISCONNECTED";
210
+ BitcoinProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
211
+ BitcoinProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
212
+ })(BitcoinProviderErrorType || (exports.BitcoinProviderErrorType = BitcoinProviderErrorType = {}));
213
+ var SignatureHash;
214
+ (function (SignatureHash) {
215
+ SignatureHash[SignatureHash["DEFAULT"] = 0] = "DEFAULT";
216
+ SignatureHash[SignatureHash["ALL"] = 1] = "ALL";
217
+ SignatureHash[SignatureHash["NONE"] = 2] = "NONE";
218
+ SignatureHash[SignatureHash["SINGLE"] = 3] = "SINGLE";
219
+ SignatureHash[SignatureHash["ANYONECANPAY"] = 128] = "ANYONECANPAY";
220
+ })(SignatureHash || (SignatureHash = {}));
202
221
  // Cardano Request Dapp Input
203
222
  let CardanoProviderErrorType;
204
223
  exports.CardanoProviderErrorType = CardanoProviderErrorType;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BitcoinProviderError = void 0;
7
+ var _SWError = require("@subwallet/extension-base/background/errors/SWError");
8
+ var _utils = require("@subwallet/extension-base/utils");
9
+ var _i18next = require("i18next");
10
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
11
+ // SPDX-License-Identifier: Apache-2.0
12
+
13
+ const defaultErrorMap = {
14
+ USER_REJECTED_REQUEST: {
15
+ message: (0, _utils.detectTranslate)('User Rejected Request'),
16
+ code: 4001
17
+ },
18
+ UNAUTHORIZED: {
19
+ message: (0, _utils.detectTranslate)('Failed to sign'),
20
+ code: 4100
21
+ },
22
+ UNSUPPORTED_METHOD: {
23
+ message: (0, _utils.detectTranslate)('Unsupported Method'),
24
+ code: 4200
25
+ },
26
+ DISCONNECTED: {
27
+ message: (0, _utils.detectTranslate)('Network is disconnected'),
28
+ code: 4900
29
+ },
30
+ CHAIN_DISCONNECTED: {
31
+ message: (0, _utils.detectTranslate)('Network is disconnected'),
32
+ code: 4901
33
+ },
34
+ INVALID_PARAMS: {
35
+ message: (0, _utils.detectTranslate)('Undefined error. Please contact SubWallet support'),
36
+ code: -32602
37
+ },
38
+ INTERNAL_ERROR: {
39
+ message: (0, _utils.detectTranslate)('Undefined error. Please contact SubWallet support'),
40
+ code: -32603
41
+ }
42
+ };
43
+ class BitcoinProviderError extends _SWError.SWError {
44
+ constructor(errorType, errMessage, data, name) {
45
+ const {
46
+ code,
47
+ message
48
+ } = defaultErrorMap[errorType];
49
+ const finalMessage = errMessage || (0, _i18next.t)(message || '') || errorType;
50
+ super(errorType, finalMessage, code, data, name);
51
+ this.errorType = errorType;
52
+ }
53
+ }
54
+ exports.BitcoinProviderError = BitcoinProviderError;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BTC_DUST_AMOUNT = exports.BITCOIN_DECIMAL = void 0;
7
+ var _types = require("@subwallet/keyring/types");
8
+ // Copyright 2019-2022 @subwallet/extension-base
9
+ // SPDX-License-Identifier: Apache-2.0
10
+
11
+ // https://bitcoin.stackexchange.com/a/41082/139277
12
+
13
+ const BTC_DUST_AMOUNT = {
14
+ [_types.BitcoinAddressType.p2pkh]: 546,
15
+ [_types.BitcoinAddressType.p2sh]: 540,
16
+ [_types.BitcoinAddressType.p2tr]: 330,
17
+ [_types.BitcoinAddressType.p2wpkh]: 294,
18
+ [_types.BitcoinAddressType.p2wsh]: 330
19
+ };
20
+ exports.BTC_DUST_AMOUNT = BTC_DUST_AMOUNT;
21
+ const BITCOIN_DECIMAL = 8;
22
+ exports.BITCOIN_DECIMAL = BITCOIN_DECIMAL;
@@ -11,6 +11,7 @@ var _exportNames = {
11
11
  CRON_AUTO_RECOVER_WEB3_INTERVAL: true,
12
12
  ACALA_REFRESH_CROWDLOAN_INTERVAL: true,
13
13
  ASTAR_REFRESH_BALANCE_INTERVAL: true,
14
+ BITCOIN_REFRESH_BALANCE_INTERVAL: true,
14
15
  SUB_TOKEN_REFRESH_BALANCE_INTERVAL: true,
15
16
  CRON_REFRESH_NFT_INTERVAL: true,
16
17
  CRON_REFRESH_MKT_CAMPAIGN_INTERVAL: true,
@@ -45,7 +46,7 @@ var _exportNames = {
45
46
  getSupportTokenPayFeeChain: true,
46
47
  isChainSupportTokenPayFee: true
47
48
  };
48
- exports.isChainSupportTokenPayFee = exports.getSupportTokenPayFeeChain = exports._SUPPORT_TOKEN_PAY_FEE_GROUP = exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MAX_COLLATERAL_AMOUNT = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_LISTEN_AVAIL_BRIDGE_CLAIM = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BITTENSOR_REFRESH_STAKE_INFO = exports.BITTENSOR_REFRESH_STAKE_APY = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
49
+ exports.isChainSupportTokenPayFee = exports.getSupportTokenPayFeeChain = exports._SUPPORT_TOKEN_PAY_FEE_GROUP = exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MAX_COLLATERAL_AMOUNT = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_LISTEN_AVAIL_BRIDGE_CLAIM = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BITTENSOR_REFRESH_STAKE_INFO = exports.BITTENSOR_REFRESH_STAKE_APY = exports.BITCOIN_REFRESH_BALANCE_INTERVAL = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
49
50
  var _blockedActions = require("./blocked-actions");
50
51
  Object.keys(_blockedActions).forEach(function (key) {
51
52
  if (key === "default" || key === "__esModule") return;
@@ -118,6 +119,18 @@ Object.keys(_remindNotificationTime).forEach(function (key) {
118
119
  }
119
120
  });
120
121
  });
122
+ var _bitcoin = require("./bitcoin");
123
+ Object.keys(_bitcoin).forEach(function (key) {
124
+ if (key === "default" || key === "__esModule") return;
125
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
126
+ if (key in exports && exports[key] === _bitcoin[key]) return;
127
+ Object.defineProperty(exports, key, {
128
+ enumerable: true,
129
+ get: function () {
130
+ return _bitcoin[key];
131
+ }
132
+ });
133
+ });
121
134
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
122
135
  // SPDX-License-Identifier: Apache-2.0
123
136
 
@@ -135,6 +148,8 @@ const ACALA_REFRESH_CROWDLOAN_INTERVAL = 300000;
135
148
  exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = ACALA_REFRESH_CROWDLOAN_INTERVAL;
136
149
  const ASTAR_REFRESH_BALANCE_INTERVAL = 60000;
137
150
  exports.ASTAR_REFRESH_BALANCE_INTERVAL = ASTAR_REFRESH_BALANCE_INTERVAL;
151
+ const BITCOIN_REFRESH_BALANCE_INTERVAL = 600000;
152
+ exports.BITCOIN_REFRESH_BALANCE_INTERVAL = BITCOIN_REFRESH_BALANCE_INTERVAL;
138
153
  const SUB_TOKEN_REFRESH_BALANCE_INTERVAL = 60000;
139
154
  exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = SUB_TOKEN_REFRESH_BALANCE_INTERVAL;
140
155
  const CRON_REFRESH_NFT_INTERVAL = 7200000;
@@ -9,6 +9,7 @@ var _utils = require("@subwallet/extension-base/core/utils");
9
9
  var _types2 = require("@subwallet/extension-base/types");
10
10
  var _utils2 = require("@subwallet/extension-base/utils");
11
11
  var _keyring = require("@subwallet/keyring");
12
+ var _validate = require("@subwallet/keyring/utils/address/validate");
12
13
  // Copyright 2019-2022 @subwallet/extension-base
13
14
  // SPDX-License-Identifier: Apache-2.0
14
15
 
@@ -36,6 +37,9 @@ function getConditions(validateRecipientParams) {
36
37
  if ((0, _keyring.isCardanoAddress)(toAddress)) {
37
38
  conditions.push(_types.ValidationCondition.IS_VALID_CARDANO_ADDRESS_FORMAT);
38
39
  }
40
+ if ((0, _validate.isBitcoinAddress)(toAddress)) {
41
+ conditions.push(_types.ValidationCondition.IS_VALID_BITCOIN_ADDRESS_FORMAT);
42
+ }
39
43
  if (srcChain === destChainInfo.slug && isSendAction && !destChainInfo.tonInfo && !destChainInfo.cardanoInfo) {
40
44
  conditions.push(_types.ValidationCondition.IS_NOT_DUPLICATE_ADDRESS);
41
45
  }
@@ -81,6 +85,11 @@ function getValidationFunctions(conditions) {
81
85
  validationFunctions.push(_utils._isValidCardanoAddressFormat);
82
86
  break;
83
87
  }
88
+ case _types.ValidationCondition.IS_VALID_BITCOIN_ADDRESS_FORMAT:
89
+ {
90
+ validationFunctions.push(_utils._isValidBitcoinAddressFormat);
91
+ break;
92
+ }
84
93
  case _types.ValidationCondition.IS_NOT_DUPLICATE_ADDRESS:
85
94
  {
86
95
  validationFunctions.push(_utils._isNotDuplicateAddress);