@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.
- package/LICENSE.md +7 -0
- package/index.d.ts +1 -0
- package/index.js +18 -0
- package/index.js.map +1 -0
- package/package.json +66 -0
- package/readme.md +121 -0
- package/v0/index.d.ts +14 -0
- package/v0/index.js +34 -0
- package/v0/index.js.map +1 -0
- package/v0/protocol/BitcoinAddress.d.ts +9 -0
- package/v0/protocol/BitcoinAddress.js +23 -0
- package/v0/protocol/BitcoinAddress.js.map +1 -0
- package/v0/protocol/BitcoinCryptoClient.d.ts +11 -0
- package/v0/protocol/BitcoinCryptoClient.js +91 -0
- package/v0/protocol/BitcoinCryptoClient.js.map +1 -0
- package/v0/protocol/BitcoinProtocol.d.ts +168 -0
- package/v0/protocol/BitcoinProtocol.js +1070 -0
- package/v0/protocol/BitcoinProtocol.js.map +1 -0
- package/v0/protocol/BitcoinProtocolOptions.d.ts +26 -0
- package/v0/protocol/BitcoinProtocolOptions.js +148 -0
- package/v0/protocol/BitcoinProtocolOptions.js.map +1 -0
- package/v0/protocol/BitcoinSegwitAddress.d.ts +7 -0
- package/v0/protocol/BitcoinSegwitAddress.js +41 -0
- package/v0/protocol/BitcoinSegwitAddress.js.map +1 -0
- package/v0/protocol/BitcoinSegwitProtocol.d.ts +29 -0
- package/v0/protocol/BitcoinSegwitProtocol.js +548 -0
- package/v0/protocol/BitcoinSegwitProtocol.js.map +1 -0
- package/v0/protocol/BitcoinTestnetProtocol.d.ts +7 -0
- package/v0/protocol/BitcoinTestnetProtocol.js +58 -0
- package/v0/protocol/BitcoinTestnetProtocol.js.map +1 -0
- package/v0/protocol/BitcoinTypes.d.ts +21 -0
- package/v0/protocol/BitcoinTypes.js +3 -0
- package/v0/protocol/BitcoinTypes.js.map +1 -0
- package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin-segwit.json +0 -0
- package/v0/serializer/schemas/v2/transaction-sign-request-bitcoin.json +73 -0
- package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin-segwit.json +0 -0
- package/v0/serializer/schemas/v2/transaction-sign-response-bitcoin.json +37 -0
- package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin-segwit.json +29 -0
- package/v0/serializer/schemas/v3/transaction-sign-request-bitcoin.json +73 -0
- package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin-segwit.json +19 -0
- package/v0/serializer/schemas/v3/transaction-sign-response-bitcoin.json +37 -0
- package/v0/serializer/validators/transaction-validator.d.ts +15 -0
- package/v0/serializer/validators/transaction-validator.js +81 -0
- package/v0/serializer/validators/transaction-validator.js.map +1 -0
- package/v0/serializer/validators/validators.d.ts +1 -0
- package/v0/serializer/validators/validators.js +151 -0
- package/v0/serializer/validators/validators.js.map +1 -0
- package/v0/types/signed-transaction-bitcoin-segwit.d.ts +5 -0
- package/v0/types/signed-transaction-bitcoin-segwit.js +3 -0
- package/v0/types/signed-transaction-bitcoin-segwit.js.map +1 -0
- package/v0/types/signed-transaction-bitcoin.d.ts +9 -0
- package/v0/types/signed-transaction-bitcoin.js +3 -0
- package/v0/types/signed-transaction-bitcoin.js.map +1 -0
- package/v0/types/transaction-bitcoin.d.ts +20 -0
- package/v0/types/transaction-bitcoin.js +3 -0
- package/v0/types/transaction-bitcoin.js.map +1 -0
- package/v0/types/unsigned-transaction-bitcoin-segwit.d.ts +7 -0
- package/v0/types/unsigned-transaction-bitcoin-segwit.js +3 -0
- package/v0/types/unsigned-transaction-bitcoin-segwit.js.map +1 -0
- package/v0/types/unsigned-transaction-bitcoin.d.ts +22 -0
- package/v0/types/unsigned-transaction-bitcoin.js +3 -0
- package/v0/types/unsigned-transaction-bitcoin.js.map +1 -0
- package/v1/block-explorer/BlockCypherBlockExplorer.d.ts +9 -0
- package/v1/block-explorer/BlockCypherBlockExplorer.js +72 -0
- package/v1/block-explorer/BlockCypherBlockExplorer.js.map +1 -0
- package/v1/data/BitcoinAddress.d.ts +7 -0
- package/v1/data/BitcoinAddress.js +20 -0
- package/v1/data/BitcoinAddress.js.map +1 -0
- package/v1/data/BitcoinSegwitAddress.d.ts +9 -0
- package/v1/data/BitcoinSegwitAddress.js +25 -0
- package/v1/data/BitcoinSegwitAddress.js.map +1 -0
- package/v1/data/BitcoinTaprootAddress.d.ts +9 -0
- package/v1/data/BitcoinTaprootAddress.js +57 -0
- package/v1/data/BitcoinTaprootAddress.js.map +1 -0
- package/v1/index.d.ts +25 -0
- package/v1/index.js +30 -0
- package/v1/index.js.map +1 -0
- package/v1/module/BitcoinModule.d.ts +18 -0
- package/v1/module/BitcoinModule.js +116 -0
- package/v1/module/BitcoinModule.js.map +1 -0
- package/v1/module.d.ts +3 -0
- package/v1/module.js +24 -0
- package/v1/module.js.map +1 -0
- package/v1/protocol/BitcoinCryptoClient.d.ts +12 -0
- package/v1/protocol/BitcoinCryptoClient.js +96 -0
- package/v1/protocol/BitcoinCryptoClient.js.map +1 -0
- package/v1/protocol/BitcoinProtocol.d.ts +84 -0
- package/v1/protocol/BitcoinProtocol.js +1312 -0
- package/v1/protocol/BitcoinProtocol.js.map +1 -0
- package/v1/protocol/BitcoinSegwitProtocol.d.ts +56 -0
- package/v1/protocol/BitcoinSegwitProtocol.js +863 -0
- package/v1/protocol/BitcoinSegwitProtocol.js.map +1 -0
- package/v1/protocol/BitcoinTaprootProtocol.d.ts +60 -0
- package/v1/protocol/BitcoinTaprootProtocol.js +1079 -0
- package/v1/protocol/BitcoinTaprootProtocol.js.map +1 -0
- package/v1/protocol/BitcoinTestnetProtocol.d.ts +10 -0
- package/v1/protocol/BitcoinTestnetProtocol.js +70 -0
- package/v1/protocol/BitcoinTestnetProtocol.js.map +1 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +19 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.js +96 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.d.ts +4 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.d.ts +4 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.d.ts +4 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.d.ts +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.d.ts +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.d.ts +7 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin.js.map +1 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-segwit.json +29 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-taproot.json +29 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin.json +79 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-segwit.json +19 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-taproot.json +19 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin.json +37 -0
- package/v1/serializer/v3/serializer-companion.d.ts +14 -0
- package/v1/serializer/v3/serializer-companion.js +219 -0
- package/v1/serializer/v3/serializer-companion.js.map +1 -0
- package/v1/serializer/v3/validators/transaction-validator.d.ts +7 -0
- package/v1/serializer/v3/validators/transaction-validator.js +56 -0
- package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
- package/v1/serializer/v3/validators/validators.d.ts +7 -0
- package/v1/serializer/v3/validators/validators.js +238 -0
- package/v1/serializer/v3/validators/validators.js.map +1 -0
- package/v1/types/bitcoinjs.d.ts +20 -0
- package/v1/types/bitcoinjs.js +3 -0
- package/v1/types/bitcoinjs.js.map +1 -0
- package/v1/types/crypto.d.ts +2 -0
- package/v1/types/crypto.js +3 -0
- package/v1/types/crypto.js.map +1 -0
- package/v1/types/indexer.d.ts +81 -0
- package/v1/types/indexer.js +3 -0
- package/v1/types/indexer.js.map +1 -0
- package/v1/types/key.d.ts +6 -0
- package/v1/types/key.js +3 -0
- package/v1/types/key.js.map +1 -0
- package/v1/types/protocol.d.ts +17 -0
- package/v1/types/protocol.js +3 -0
- package/v1/types/protocol.js.map +1 -0
- package/v1/types/transaction.d.ts +49 -0
- package/v1/types/transaction.js +3 -0
- package/v1/types/transaction.js.map +1 -0
- package/v1/utils/common.d.ts +2 -0
- package/v1/utils/common.js +28 -0
- package/v1/utils/common.js.map +1 -0
- package/v1/utils/key.d.ts +34 -0
- package/v1/utils/key.js +190 -0
- package/v1/utils/key.js.map +1 -0
- package/v1/utils/network.d.ts +2 -0
- package/v1/utils/network.js +22 -0
- package/v1/utils/network.js.map +1 -0
- package/v1/utils/protocol.d.ts +10 -0
- package/v1/utils/protocol.js +33 -0
- package/v1/utils/protocol.js.map +1 -0
- package/v1/utils/signature.d.ts +2 -0
- package/v1/utils/signature.js +34 -0
- 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;
|