@wallfree-dev/bitcoin 0.13.42

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 (167) hide show
  1. package/LICENSE.md +7 -0
  2. package/index.d.ts +1 -0
  3. package/index.js +18 -0
  4. package/index.js.map +1 -0
  5. package/package.json +66 -0
  6. package/readme.md +121 -0
  7. package/v0/index.d.ts +14 -0
  8. package/v0/index.js +34 -0
  9. package/v0/index.js.map +1 -0
  10. package/v0/protocol/BitcoinAddress.d.ts +9 -0
  11. package/v0/protocol/BitcoinAddress.js +23 -0
  12. package/v0/protocol/BitcoinAddress.js.map +1 -0
  13. package/v0/protocol/BitcoinCryptoClient.d.ts +11 -0
  14. package/v0/protocol/BitcoinCryptoClient.js +91 -0
  15. package/v0/protocol/BitcoinCryptoClient.js.map +1 -0
  16. package/v0/protocol/BitcoinProtocol.d.ts +168 -0
  17. package/v0/protocol/BitcoinProtocol.js +1070 -0
  18. package/v0/protocol/BitcoinProtocol.js.map +1 -0
  19. package/v0/protocol/BitcoinProtocolOptions.d.ts +26 -0
  20. package/v0/protocol/BitcoinProtocolOptions.js +148 -0
  21. package/v0/protocol/BitcoinProtocolOptions.js.map +1 -0
  22. package/v0/protocol/BitcoinSegwitAddress.d.ts +7 -0
  23. package/v0/protocol/BitcoinSegwitAddress.js +41 -0
  24. package/v0/protocol/BitcoinSegwitAddress.js.map +1 -0
  25. package/v0/protocol/BitcoinSegwitProtocol.d.ts +29 -0
  26. package/v0/protocol/BitcoinSegwitProtocol.js +548 -0
  27. package/v0/protocol/BitcoinSegwitProtocol.js.map +1 -0
  28. package/v0/protocol/BitcoinTestnetProtocol.d.ts +7 -0
  29. package/v0/protocol/BitcoinTestnetProtocol.js +58 -0
  30. package/v0/protocol/BitcoinTestnetProtocol.js.map +1 -0
  31. package/v0/protocol/BitcoinTypes.d.ts +21 -0
  32. package/v0/protocol/BitcoinTypes.js +3 -0
  33. package/v0/protocol/BitcoinTypes.js.map +1 -0
  34. package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin-segwit.json +0 -0
  35. package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin.json +73 -0
  36. package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin-segwit.json +0 -0
  37. package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin.json +37 -0
  38. package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin-segwit.json +29 -0
  39. package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin.json +73 -0
  40. package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin-segwit.json +19 -0
  41. package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin.json +37 -0
  42. package/v0/serializer/validators/transaction-validator.d.ts +15 -0
  43. package/v0/serializer/validators/transaction-validator.js +81 -0
  44. package/v0/serializer/validators/transaction-validator.js.map +1 -0
  45. package/v0/serializer/validators/validators.d.ts +1 -0
  46. package/v0/serializer/validators/validators.js +151 -0
  47. package/v0/serializer/validators/validators.js.map +1 -0
  48. package/v0/types/signed-transaction-bitcoin-segwit.d.ts +5 -0
  49. package/v0/types/signed-transaction-bitcoin-segwit.js +3 -0
  50. package/v0/types/signed-transaction-bitcoin-segwit.js.map +1 -0
  51. package/v0/types/signed-transaction-bitcoin.d.ts +9 -0
  52. package/v0/types/signed-transaction-bitcoin.js +3 -0
  53. package/v0/types/signed-transaction-bitcoin.js.map +1 -0
  54. package/v0/types/transaction-bitcoin.d.ts +20 -0
  55. package/v0/types/transaction-bitcoin.js +3 -0
  56. package/v0/types/transaction-bitcoin.js.map +1 -0
  57. package/v0/types/unsigned-transaction-bitcoin-segwit.d.ts +7 -0
  58. package/v0/types/unsigned-transaction-bitcoin-segwit.js +3 -0
  59. package/v0/types/unsigned-transaction-bitcoin-segwit.js.map +1 -0
  60. package/v0/types/unsigned-transaction-bitcoin.d.ts +22 -0
  61. package/v0/types/unsigned-transaction-bitcoin.js +3 -0
  62. package/v0/types/unsigned-transaction-bitcoin.js.map +1 -0
  63. package/v1/block-explorer/BlockCypherBlockExplorer.d.ts +9 -0
  64. package/v1/block-explorer/BlockCypherBlockExplorer.js +72 -0
  65. package/v1/block-explorer/BlockCypherBlockExplorer.js.map +1 -0
  66. package/v1/data/BitcoinAddress.d.ts +7 -0
  67. package/v1/data/BitcoinAddress.js +20 -0
  68. package/v1/data/BitcoinAddress.js.map +1 -0
  69. package/v1/data/BitcoinSegwitAddress.d.ts +9 -0
  70. package/v1/data/BitcoinSegwitAddress.js +25 -0
  71. package/v1/data/BitcoinSegwitAddress.js.map +1 -0
  72. package/v1/data/BitcoinTaprootAddress.d.ts +9 -0
  73. package/v1/data/BitcoinTaprootAddress.js +57 -0
  74. package/v1/data/BitcoinTaprootAddress.js.map +1 -0
  75. package/v1/index.d.ts +25 -0
  76. package/v1/index.js +30 -0
  77. package/v1/index.js.map +1 -0
  78. package/v1/module/BitcoinModule.d.ts +18 -0
  79. package/v1/module/BitcoinModule.js +116 -0
  80. package/v1/module/BitcoinModule.js.map +1 -0
  81. package/v1/module.d.ts +3 -0
  82. package/v1/module.js +24 -0
  83. package/v1/module.js.map +1 -0
  84. package/v1/protocol/BitcoinCryptoClient.d.ts +12 -0
  85. package/v1/protocol/BitcoinCryptoClient.js +96 -0
  86. package/v1/protocol/BitcoinCryptoClient.js.map +1 -0
  87. package/v1/protocol/BitcoinProtocol.d.ts +84 -0
  88. package/v1/protocol/BitcoinProtocol.js +1312 -0
  89. package/v1/protocol/BitcoinProtocol.js.map +1 -0
  90. package/v1/protocol/BitcoinSegwitProtocol.d.ts +56 -0
  91. package/v1/protocol/BitcoinSegwitProtocol.js +863 -0
  92. package/v1/protocol/BitcoinSegwitProtocol.js.map +1 -0
  93. package/v1/protocol/BitcoinTaprootProtocol.d.ts +60 -0
  94. package/v1/protocol/BitcoinTaprootProtocol.js +1079 -0
  95. package/v1/protocol/BitcoinTaprootProtocol.js.map +1 -0
  96. package/v1/protocol/BitcoinTestnetProtocol.d.ts +10 -0
  97. package/v1/protocol/BitcoinTestnetProtocol.js +70 -0
  98. package/v1/protocol/BitcoinTestnetProtocol.js.map +1 -0
  99. package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +19 -0
  100. package/v1/serializer/v3/schemas/converter/transaction-converter.js +96 -0
  101. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
  102. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.d.ts +4 -0
  103. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js +3 -0
  104. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js.map +1 -0
  105. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.d.ts +4 -0
  106. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js +3 -0
  107. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js.map +1 -0
  108. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.d.ts +4 -0
  109. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js +3 -0
  110. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js.map +1 -0
  111. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.d.ts +3 -0
  112. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js +3 -0
  113. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js.map +1 -0
  114. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.d.ts +3 -0
  115. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js +3 -0
  116. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js.map +1 -0
  117. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.d.ts +7 -0
  118. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js +3 -0
  119. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js.map +1 -0
  120. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-segwit.json +29 -0
  121. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-taproot.json +29 -0
  122. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin.json +79 -0
  123. package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-segwit.json +19 -0
  124. package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-taproot.json +19 -0
  125. package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin.json +37 -0
  126. package/v1/serializer/v3/serializer-companion.d.ts +14 -0
  127. package/v1/serializer/v3/serializer-companion.js +219 -0
  128. package/v1/serializer/v3/serializer-companion.js.map +1 -0
  129. package/v1/serializer/v3/validators/transaction-validator.d.ts +7 -0
  130. package/v1/serializer/v3/validators/transaction-validator.js +56 -0
  131. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
  132. package/v1/serializer/v3/validators/validators.d.ts +7 -0
  133. package/v1/serializer/v3/validators/validators.js +238 -0
  134. package/v1/serializer/v3/validators/validators.js.map +1 -0
  135. package/v1/types/bitcoinjs.d.ts +20 -0
  136. package/v1/types/bitcoinjs.js +3 -0
  137. package/v1/types/bitcoinjs.js.map +1 -0
  138. package/v1/types/crypto.d.ts +2 -0
  139. package/v1/types/crypto.js +3 -0
  140. package/v1/types/crypto.js.map +1 -0
  141. package/v1/types/indexer.d.ts +81 -0
  142. package/v1/types/indexer.js +3 -0
  143. package/v1/types/indexer.js.map +1 -0
  144. package/v1/types/key.d.ts +6 -0
  145. package/v1/types/key.js +3 -0
  146. package/v1/types/key.js.map +1 -0
  147. package/v1/types/protocol.d.ts +17 -0
  148. package/v1/types/protocol.js +3 -0
  149. package/v1/types/protocol.js.map +1 -0
  150. package/v1/types/transaction.d.ts +49 -0
  151. package/v1/types/transaction.js +3 -0
  152. package/v1/types/transaction.js.map +1 -0
  153. package/v1/utils/common.d.ts +2 -0
  154. package/v1/utils/common.js +28 -0
  155. package/v1/utils/common.js.map +1 -0
  156. package/v1/utils/key.d.ts +34 -0
  157. package/v1/utils/key.js +190 -0
  158. package/v1/utils/key.js.map +1 -0
  159. package/v1/utils/network.d.ts +2 -0
  160. package/v1/utils/network.js +22 -0
  161. package/v1/utils/network.js.map +1 -0
  162. package/v1/utils/protocol.d.ts +10 -0
  163. package/v1/utils/protocol.js +33 -0
  164. package/v1/utils/protocol.js.map +1 -0
  165. package/v1/utils/signature.d.ts +2 -0
  166. package/v1/utils/signature.js +34 -0
  167. package/v1/utils/signature.js.map +1 -0
@@ -0,0 +1,84 @@
1
+ import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, ExtendedKeyPair, ExtendedPublicKey, ExtendedSecretKey, FeeDefaults, KeyPair, ProtocolMetadata, ProtocolUnitsMetadata, PublicKey, RecursivePartial, SecretKey, Signature, SignedTransaction, TransactionFullConfiguration, TransactionDetails, UnsignedTransaction, TransactionSimpleConfiguration } from '@wallfree-dev/module-kit';
2
+ import { BitcoinJS } from '../types/bitcoinjs';
3
+ import { BitcoinCryptoConfiguration } from '../types/crypto';
4
+ import { BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinStandardProtocolNetwork, BitcoinUnits } from '../types/protocol';
5
+ import { BitcoinSignedTransaction, BitcoinTransactionCursor, BitcoinUnsignedTransaction } from '../types/transaction';
6
+ import { ExtendedPublicKeyEncoding, ExtendedSecretKeyEncoding } from '../utils/key';
7
+ export interface BitcoinProtocol<_SignedTransaction extends SignedTransaction = BitcoinSignedTransaction, _UnsignedTransaction extends UnsignedTransaction = BitcoinUnsignedTransaction> extends AirGapProtocol<{
8
+ AddressResult: Address;
9
+ ProtocolNetwork: BitcoinProtocolNetwork;
10
+ CryptoConfiguration: BitcoinCryptoConfiguration;
11
+ SignedTransaction: _SignedTransaction;
12
+ TransactionCursor: BitcoinTransactionCursor;
13
+ Units: BitcoinUnits;
14
+ FeeEstimation: FeeDefaults<BitcoinUnits>;
15
+ UnsignedTransaction: _UnsignedTransaction;
16
+ }, 'Bip32', 'Crypto', 'FetchDataForAddress', 'FetchDataForMultipleAddresses'> {
17
+ _isBitcoinProtocol: true;
18
+ }
19
+ export interface BitcoinKeyConfiguration {
20
+ xpriv: {
21
+ type: ExtendedSecretKeyEncoding;
22
+ };
23
+ xpub: {
24
+ type: ExtendedPublicKeyEncoding;
25
+ };
26
+ }
27
+ export declare class BitcoinProtocolImpl implements BitcoinProtocol {
28
+ readonly _isBitcoinProtocol: true;
29
+ private readonly options;
30
+ private readonly keyConfiguration;
31
+ private readonly cryptoClient;
32
+ readonly bitcoinJS: BitcoinJS;
33
+ constructor(options?: RecursivePartial<BitcoinProtocolOptions>, keyConfiguration?: BitcoinKeyConfiguration, bitcoinJS?: any, bitcoinJSMessage?: any);
34
+ readonly units: ProtocolUnitsMetadata<BitcoinUnits>;
35
+ readonly feeDefaults: FeeDefaults<BitcoinUnits>;
36
+ readonly metadata: ProtocolMetadata<BitcoinUnits>;
37
+ getMetadata(): Promise<ProtocolMetadata<BitcoinUnits>>;
38
+ getAddressFromPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise<string>;
39
+ private getAddressFromNonExtendedPublicKey;
40
+ private getAddressFromExtendedPublicKey;
41
+ deriveFromExtendedPublicKey(extendedPublicKey: ExtendedPublicKey, visibilityIndex: number, addressIndex: number): Promise<PublicKey>;
42
+ getDetailsFromTransaction(transaction: BitcoinSignedTransaction | BitcoinUnsignedTransaction, _publicKey: PublicKey | ExtendedPublicKey): Promise<AirGapTransaction<BitcoinUnits>[]>;
43
+ private getDetailsFromSignedTransaction;
44
+ private getDetailsFromUnsignedTransaction;
45
+ verifyMessageWithPublicKey(message: string, signature: Signature, publicKey: ExtendedPublicKey | PublicKey): Promise<boolean>;
46
+ encryptAsymmetricWithPublicKey(payload: string, publicKey: ExtendedPublicKey | PublicKey): Promise<string>;
47
+ private readonly cryptoConfiguration;
48
+ getCryptoConfiguration(): Promise<BitcoinCryptoConfiguration>;
49
+ getKeyPairFromDerivative(derivative: CryptoDerivative): Promise<KeyPair>;
50
+ getExtendedKeyPairFromDerivative(derivative: CryptoDerivative): Promise<ExtendedKeyPair>;
51
+ deriveFromExtendedSecretKey(extendedSecretKey: ExtendedSecretKey, visibilityIndex: number, addressIndex: number): Promise<SecretKey>;
52
+ signTransactionWithSecretKey(transaction: BitcoinUnsignedTransaction, secretKey: SecretKey | ExtendedSecretKey): Promise<BitcoinSignedTransaction>;
53
+ private signTransactionWithNonExtendedSecretKey;
54
+ private signTransactionWithExtendedSecretKey;
55
+ private createSignedTransaction;
56
+ signMessageWithKeyPair(message: string, keyPair: ExtendedKeyPair | KeyPair): Promise<Signature>;
57
+ decryptAsymmetricWithKeyPair(payload: string, keyPair: ExtendedKeyPair | KeyPair): Promise<string>;
58
+ encryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise<string>;
59
+ decryptAESWithSecretKey(payload: string, secretKey: SecretKey | ExtendedSecretKey): Promise<string>;
60
+ getNetwork(): Promise<BitcoinProtocolNetwork>;
61
+ getTransactionsForPublicKey(publicKey: ExtendedPublicKey | PublicKey, limit: number, cursor?: BitcoinTransactionCursor): Promise<AirGapTransactionsWithCursor<BitcoinTransactionCursor, BitcoinUnits>>;
62
+ private getTransactionsForNonExtendedPublicKey;
63
+ private getTransactionsForExtendedPublicKey;
64
+ getTransactionsForAddress(address: string, limit: number, cursor?: BitcoinTransactionCursor): Promise<AirGapTransactionsWithCursor<BitcoinTransactionCursor, BitcoinUnits>>;
65
+ getTransactionsForAddresses(addresses: string[], limit: number, cursor?: BitcoinTransactionCursor): Promise<AirGapTransactionsWithCursor<BitcoinTransactionCursor, BitcoinUnits>>;
66
+ getBalanceOfPublicKey(publicKey: ExtendedPublicKey | PublicKey): Promise<Balance<BitcoinUnits>>;
67
+ private getBalanceOfNonExtendedPublicKey;
68
+ private getBalanceOfExtendedPublicKey;
69
+ getBalanceOfAddress(address: string): Promise<Balance<BitcoinUnits>>;
70
+ getBalanceOfAddresses(addresses: string[]): Promise<Balance<BitcoinUnits>>;
71
+ getTransactionMaxAmountWithPublicKey(publicKey: ExtendedPublicKey | PublicKey, to: string[], configuration?: TransactionFullConfiguration<BitcoinUnits>): Promise<Amount<BitcoinUnits>>;
72
+ getTransactionFeeWithPublicKey(_publicKey: ExtendedPublicKey | PublicKey, _details: TransactionDetails<BitcoinUnits>[], _configuration?: TransactionSimpleConfiguration): Promise<FeeDefaults<BitcoinUnits>>;
73
+ prepareTransactionWithPublicKey(publicKey: ExtendedPublicKey | PublicKey, details: TransactionDetails<BitcoinUnits>[], configuration?: TransactionFullConfiguration<BitcoinUnits>): Promise<BitcoinUnsignedTransaction>;
74
+ private prepareTransactionWithNonExtendedPublicKey;
75
+ private prepareTransactionWithExtendedPublicKey;
76
+ broadcastTransaction(transaction: BitcoinSignedTransaction): Promise<string>;
77
+ private convertExtendedSecretKey;
78
+ private convertExtendedPublicKey;
79
+ private convertCryptoDerivative;
80
+ private derivativeToBip32Node;
81
+ }
82
+ export declare function createBitcoinProtocol(options?: RecursivePartial<BitcoinProtocolOptions>): BitcoinProtocol;
83
+ export declare const BITCOIN_MAINNET_PROTOCOL_NETWORK: BitcoinStandardProtocolNetwork;
84
+ export declare function createBitcoinProtocolOptions(network?: Partial<BitcoinProtocolNetwork>): BitcoinProtocolOptions;