@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.
- package/background/KoniTypes.d.ts +134 -5
- package/background/KoniTypes.js +18 -0
- package/background/errors/BitcoinProviderError.d.ts +6 -0
- package/background/errors/BitcoinProviderError.js +47 -0
- package/background/types.d.ts +1 -1
- package/cjs/background/KoniTypes.js +20 -1
- package/cjs/background/errors/BitcoinProviderError.js +54 -0
- package/cjs/constants/bitcoin.js +22 -0
- package/cjs/constants/index.js +16 -1
- package/cjs/core/logic-validation/recipientAddress.js +9 -0
- package/cjs/core/logic-validation/request.js +316 -3
- package/cjs/core/logic-validation/transfer.js +25 -5
- package/cjs/core/types.js +1 -0
- package/cjs/core/utils.js +15 -1
- package/cjs/koni/background/handlers/Extension.js +477 -93
- package/cjs/koni/background/handlers/State.js +249 -16
- package/cjs/koni/background/handlers/Tabs.js +119 -6
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/bitcoin/index.js +67 -0
- package/cjs/page/index.js +5 -0
- package/cjs/services/balance-service/helpers/subscribe/bitcoin.js +94 -0
- package/cjs/services/balance-service/helpers/subscribe/index.js +19 -7
- package/cjs/services/balance-service/index.js +32 -4
- package/cjs/services/balance-service/transfer/bitcoin-transfer.js +119 -0
- package/cjs/services/balance-service/transfer/token.js +2 -0
- package/cjs/services/base/types.js +2 -0
- package/cjs/services/buy-service/index.js +17 -2
- package/cjs/services/chain-service/constants.js +14 -3
- package/cjs/services/chain-service/handler/bitcoin/BitcoinApi.js +105 -0
- package/cjs/services/chain-service/handler/bitcoin/BitcoinChainHandler.js +78 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.js +371 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.js +19 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.js +368 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.js +302 -0
- package/cjs/services/chain-service/handler/bitcoin/strategy/types.js +1 -0
- package/cjs/services/chain-service/index.js +27 -3
- package/cjs/services/chain-service/utils/index.js +57 -4
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +27 -5
- package/cjs/services/event-service/index.js +4 -0
- package/cjs/services/fee-service/service.js +8 -3
- package/cjs/services/hiro-service/index.js +96 -0
- package/cjs/services/hiro-service/utils/index.js +85 -0
- package/cjs/services/history-service/bitcoin-history.js +58 -0
- package/cjs/services/history-service/helpers/recoverHistoryStatus.js +96 -4
- package/cjs/services/history-service/index.js +41 -3
- package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
- package/cjs/services/keyring-service/context/handlers/Migration.js +2 -2
- package/cjs/services/keyring-service/context/handlers/Mnemonic.js +4 -3
- package/cjs/services/migration-service/scripts/MigrateNewUnifiedAccount.js +29 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/request-service/handler/AuthRequestHandler.js +18 -0
- package/cjs/services/request-service/handler/BitcoinRequestHandler.js +427 -0
- package/cjs/services/request-service/index.js +29 -3
- package/cjs/services/rune-service/index.js +105 -0
- package/cjs/services/transaction-service/helpers/index.js +7 -1
- package/cjs/services/transaction-service/index.js +206 -16
- package/cjs/services/transaction-service/utils.js +6 -3
- package/cjs/strategy/api-request-strategy/context/base.js +31 -0
- package/cjs/strategy/api-request-strategy/index.js +90 -0
- package/cjs/strategy/api-request-strategy/types.js +1 -0
- package/cjs/strategy/api-request-strategy/utils/index.js +33 -0
- package/cjs/types/account/info/keyring.js +1 -1
- package/cjs/types/bitcoin.js +24 -0
- package/cjs/types/fee/bitcoin.js +1 -0
- package/cjs/types/fee/index.js +11 -0
- package/cjs/types/index.js +11 -0
- package/cjs/utils/account/analyze.js +3 -3
- package/cjs/utils/account/common.js +16 -6
- package/cjs/utils/account/derive/info/solo.js +68 -19
- package/cjs/utils/account/derive/info/unified.js +2 -0
- package/cjs/utils/account/derive/validate.js +70 -2
- package/cjs/utils/account/transform.js +11 -5
- package/cjs/utils/auth.js +2 -1
- package/cjs/utils/bitcoin/common.js +98 -0
- package/cjs/utils/bitcoin/fee.js +21 -0
- package/cjs/utils/bitcoin/index.js +38 -0
- package/cjs/utils/bitcoin/utxo-management.js +281 -0
- package/cjs/utils/fee/transfer.js +48 -0
- package/cjs/utils/index.js +15 -1
- package/constants/bitcoin.d.ts +3 -0
- package/constants/bitcoin.js +13 -0
- package/constants/index.d.ts +2 -0
- package/constants/index.js +3 -1
- package/core/logic-validation/recipientAddress.js +10 -1
- package/core/logic-validation/request.d.ts +6 -2
- package/core/logic-validation/request.js +309 -3
- package/core/logic-validation/transfer.d.ts +2 -2
- package/core/logic-validation/transfer.js +27 -7
- package/core/types.d.ts +1 -0
- package/core/types.js +1 -0
- package/core/utils.d.ts +1 -0
- package/core/utils.js +15 -2
- package/koni/background/handlers/Extension.d.ts +5 -0
- package/koni/background/handlers/Extension.js +387 -9
- package/koni/background/handlers/State.d.ts +10 -3
- package/koni/background/handlers/State.js +240 -15
- package/koni/background/handlers/Tabs.d.ts +7 -2
- package/koni/background/handlers/Tabs.js +119 -9
- package/package.json +149 -8
- package/packageInfo.js +1 -1
- package/page/bitcoin/index.d.ts +17 -0
- package/page/bitcoin/index.js +60 -0
- package/page/index.d.ts +2 -1
- package/page/index.js +4 -0
- package/services/balance-service/helpers/subscribe/bitcoin.d.ts +2 -0
- package/services/balance-service/helpers/subscribe/bitcoin.js +87 -0
- package/services/balance-service/helpers/subscribe/index.d.ts +2 -2
- package/services/balance-service/helpers/subscribe/index.js +20 -8
- package/services/balance-service/index.d.ts +2 -0
- package/services/balance-service/index.js +32 -4
- package/services/balance-service/transfer/bitcoin-transfer.d.ts +14 -0
- package/services/balance-service/transfer/bitcoin-transfer.js +112 -0
- package/services/balance-service/transfer/cardano-transfer.d.ts +2 -0
- package/services/balance-service/transfer/token.js +2 -0
- package/services/base/types.d.ts +2 -0
- package/services/base/types.js +2 -0
- package/services/buy-service/index.js +17 -2
- package/services/chain-service/constants.d.ts +6 -0
- package/services/chain-service/constants.js +8 -2
- package/services/chain-service/handler/bitcoin/BitcoinApi.d.ts +31 -0
- package/services/chain-service/handler/bitcoin/BitcoinApi.js +98 -0
- package/services/chain-service/handler/bitcoin/BitcoinChainHandler.d.ts +16 -0
- package/services/chain-service/handler/bitcoin/BitcoinChainHandler.js +70 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.d.ts +28 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/blockstream-testnet-strategy.js +362 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.d.ts +2 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/index.js +5 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.d.ts +28 -0
- package/services/chain-service/handler/bitcoin/strategy/BlockStreamTestnet/mempool-testnet-strategy.js +359 -0
- package/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.d.ts +28 -0
- package/services/chain-service/handler/bitcoin/strategy/SubWalletMainnet/index.js +293 -0
- package/services/chain-service/handler/bitcoin/strategy/types.d.ts +291 -0
- package/services/chain-service/handler/bitcoin/strategy/types.js +1 -0
- package/services/chain-service/index.d.ts +3 -0
- package/services/chain-service/index.js +31 -5
- package/services/chain-service/types.d.ts +20 -0
- package/services/chain-service/utils/index.d.ts +4 -0
- package/services/chain-service/utils/index.js +50 -4
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/native-staking/para-chain.js +27 -5
- package/services/event-service/index.d.ts +3 -0
- package/services/event-service/index.js +4 -0
- package/services/event-service/types.d.ts +3 -0
- package/services/fee-service/service.js +8 -3
- package/services/hiro-service/index.d.ts +17 -0
- package/services/hiro-service/index.js +88 -0
- package/services/hiro-service/utils/index.d.ts +6 -0
- package/services/hiro-service/utils/index.js +72 -0
- package/services/history-service/bitcoin-history.d.ts +4 -0
- package/services/history-service/bitcoin-history.js +52 -0
- package/services/history-service/helpers/recoverHistoryStatus.d.ts +3 -1
- package/services/history-service/helpers/recoverHistoryStatus.js +96 -4
- package/services/history-service/index.d.ts +1 -0
- package/services/history-service/index.js +42 -4
- package/services/keyring-service/context/handlers/Derive.js +2 -2
- package/services/keyring-service/context/handlers/Migration.js +2 -2
- package/services/keyring-service/context/handlers/Mnemonic.js +4 -3
- package/services/migration-service/scripts/MigrateNewUnifiedAccount.d.ts +4 -0
- package/services/migration-service/scripts/MigrateNewUnifiedAccount.js +21 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/request-service/handler/AuthRequestHandler.js +19 -1
- package/services/request-service/handler/BitcoinRequestHandler.d.ts +22 -0
- package/services/request-service/handler/BitcoinRequestHandler.js +414 -0
- package/services/request-service/index.d.ts +8 -2
- package/services/request-service/index.js +25 -3
- package/services/rune-service/index.d.ts +17 -0
- package/services/rune-service/index.js +97 -0
- package/services/transaction-service/helpers/index.d.ts +3 -1
- package/services/transaction-service/helpers/index.js +5 -0
- package/services/transaction-service/index.d.ts +4 -5
- package/services/transaction-service/index.js +205 -17
- package/services/transaction-service/types.d.ts +13 -2
- package/services/transaction-service/utils.js +7 -4
- package/strategy/api-request-strategy/context/base.d.ts +15 -0
- package/strategy/api-request-strategy/context/base.js +24 -0
- package/strategy/api-request-strategy/index.d.ts +15 -0
- package/strategy/api-request-strategy/index.js +83 -0
- package/strategy/api-request-strategy/types.d.ts +22 -0
- package/strategy/api-request-strategy/types.js +1 -0
- package/strategy/api-request-strategy/utils/index.d.ts +2 -0
- package/strategy/api-request-strategy/utils/index.js +23 -0
- package/types/account/info/keyring.d.ts +1 -1
- package/types/account/info/keyring.js +1 -1
- package/types/balance/index.d.ts +4 -1
- package/types/balance/transfer.d.ts +19 -0
- package/types/bitcoin.d.ts +93 -0
- package/types/bitcoin.js +17 -0
- package/types/buy.d.ts +1 -1
- package/types/fee/base.d.ts +4 -1
- package/types/fee/bitcoin.d.ts +18 -0
- package/types/fee/bitcoin.js +1 -0
- package/types/fee/index.d.ts +1 -0
- package/types/fee/index.js +2 -1
- package/types/fee/subscription.d.ts +4 -3
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/utils/account/analyze.js +4 -4
- package/utils/account/common.d.ts +7 -8
- package/utils/account/common.js +16 -6
- package/utils/account/derive/info/solo.js +70 -21
- package/utils/account/derive/info/unified.js +2 -0
- package/utils/account/derive/validate.d.ts +1 -0
- package/utils/account/derive/validate.js +68 -1
- package/utils/account/transform.d.ts +1 -1
- package/utils/account/transform.js +11 -5
- package/utils/auth.js +3 -2
- package/utils/bitcoin/common.d.ts +22 -0
- package/utils/bitcoin/common.js +88 -0
- package/utils/bitcoin/fee.d.ts +2 -0
- package/utils/bitcoin/fee.js +14 -0
- package/utils/bitcoin/index.d.ts +3 -0
- package/utils/bitcoin/index.js +6 -0
- package/utils/bitcoin/utxo-management.d.ts +33 -0
- package/utils/bitcoin/utxo-management.js +266 -0
- package/utils/fee/transfer.d.ts +3 -1
- package/utils/fee/transfer.js +47 -1
- package/utils/index.d.ts +1 -0
- 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];
|
package/background/KoniTypes.js
CHANGED
|
@@ -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
|
+
}
|
package/background/types.d.ts
CHANGED
|
@@ -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;
|
package/cjs/constants/index.js
CHANGED
|
@@ -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);
|