@btc-vision/bitcoin 6.3.1 → 6.3.2
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/.babelrc +4 -0
- package/.gitattributes +2 -0
- package/.nyc_output/6368a5b2-daa5-4821-8ed0-b742d6fc7eab.json +1 -0
- package/.nyc_output/processinfo/6368a5b2-daa5-4821-8ed0-b742d6fc7eab.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/.prettierrc.json +12 -0
- package/CHANGELOG.md +403 -0
- package/CONTRIBUTING.md +83 -0
- package/browser/address.d.ts +16 -0
- package/{src → browser}/bip66.d.ts +6 -7
- package/{src → browser}/block.d.ts +29 -30
- package/{src → browser}/bufferutils.d.ts +34 -54
- package/browser/crypto/crypto.d.ts +1 -0
- package/{src → browser}/crypto.d.ts +13 -18
- package/browser/ecc_lib.d.ts +3 -0
- package/browser/hooks/AdvancedSignatureManager.d.ts +16 -0
- package/{src → browser}/hooks/HookedSigner.d.ts +4 -4
- package/browser/hooks/SignatureManager.d.ts +13 -0
- package/browser/index.d.ts +58 -0
- package/browser/index.js +2 -0
- package/browser/index.js.LICENSE.txt +14 -0
- package/browser/merkle.d.ts +1 -0
- package/browser/networks.d.ts +23 -0
- package/{src → browser}/ops.d.ts +126 -126
- package/browser/payments/bip341.d.ts +23 -0
- package/browser/payments/embed.d.ts +2 -0
- package/browser/payments/index.d.ts +41 -0
- package/{src → browser}/payments/lazy.d.ts +2 -2
- package/browser/payments/p2ms.d.ts +2 -0
- package/browser/payments/p2pk.d.ts +2 -0
- package/browser/payments/p2pkh.d.ts +2 -0
- package/browser/payments/p2sh.d.ts +2 -0
- package/browser/payments/p2tr.d.ts +2 -0
- package/browser/payments/p2wpkh.d.ts +2 -0
- package/browser/payments/p2wsh.d.ts +2 -0
- package/browser/psbt/bip371.d.ts +16 -0
- package/browser/psbt/psbtutils.d.ts +26 -0
- package/{src → browser}/psbt.d.ts +167 -238
- package/browser/push_data.d.ts +7 -0
- package/browser/script.d.ts +17 -0
- package/browser/script_number.d.ts +2 -0
- package/browser/script_signature.d.ts +7 -0
- package/{src → browser}/transaction.d.ts +48 -60
- package/{src → browser}/types.d.ts +37 -54
- package/build/address.d.ts +16 -0
- package/build/address.js +148 -0
- package/build/bip66.d.ts +6 -0
- package/build/bip66.js +99 -0
- package/build/block.d.ts +29 -0
- package/build/block.js +181 -0
- package/build/bufferutils.d.ts +34 -0
- package/build/bufferutils.js +141 -0
- package/build/crypto/crypto.d.ts +1 -0
- package/build/crypto/crypto.js +1 -0
- package/build/crypto.d.ts +13 -0
- package/build/crypto.js +87 -0
- package/build/ecc_lib.d.ts +3 -0
- package/build/ecc_lib.js +61 -0
- package/build/hooks/AdvancedSignatureManager.d.ts +16 -0
- package/build/hooks/AdvancedSignatureManager.js +52 -0
- package/build/hooks/HookedSigner.d.ts +4 -0
- package/build/hooks/HookedSigner.js +64 -0
- package/build/hooks/SignatureManager.d.ts +13 -0
- package/build/hooks/SignatureManager.js +45 -0
- package/build/index.d.ts +58 -0
- package/build/index.js +32 -0
- package/build/merkle.d.ts +1 -0
- package/build/merkle.js +19 -0
- package/build/networks.d.ts +23 -0
- package/build/networks.js +121 -0
- package/build/ops.d.ts +126 -0
- package/{src → build}/ops.js +127 -131
- package/build/payments/bip341.d.ts +23 -0
- package/build/payments/bip341.js +82 -0
- package/build/payments/embed.d.ts +2 -0
- package/build/payments/embed.js +39 -0
- package/build/payments/index.d.ts +41 -0
- package/build/payments/index.js +10 -0
- package/build/payments/lazy.d.ts +2 -0
- package/{src → build}/payments/lazy.js +28 -32
- package/build/payments/p2ms.d.ts +2 -0
- package/{src → build}/payments/p2ms.js +128 -158
- package/build/payments/p2pk.d.ts +2 -0
- package/build/payments/p2pk.js +68 -0
- package/build/payments/p2pkh.d.ts +2 -0
- package/build/payments/p2pkh.js +135 -0
- package/build/payments/p2sh.d.ts +2 -0
- package/build/payments/p2sh.js +175 -0
- package/build/payments/p2tr.d.ts +2 -0
- package/build/payments/p2tr.js +254 -0
- package/build/payments/p2wpkh.d.ts +2 -0
- package/build/payments/p2wpkh.js +130 -0
- package/build/payments/p2wsh.d.ts +2 -0
- package/build/payments/p2wsh.js +180 -0
- package/build/psbt/bip371.d.ts +16 -0
- package/build/psbt/bip371.js +246 -0
- package/build/psbt/psbtutils.d.ts +26 -0
- package/build/psbt/psbtutils.js +170 -0
- package/build/psbt.d.ts +167 -0
- package/build/psbt.js +1305 -0
- package/build/push_data.d.ts +7 -0
- package/build/push_data.js +57 -0
- package/build/script.d.ts +17 -0
- package/build/script.js +167 -0
- package/build/script_number.d.ts +2 -0
- package/build/script_number.js +49 -0
- package/build/script_signature.d.ts +7 -0
- package/build/script_signature.js +49 -0
- package/build/transaction.d.ts +48 -0
- package/build/transaction.js +445 -0
- package/build/types.d.ts +37 -0
- package/build/types.js +73 -0
- package/cjs/package.json +3 -0
- package/eslint.config.js +56 -0
- package/gulpfile.js +42 -0
- package/package.json +105 -50
- package/src/{address.js → address.ts} +93 -73
- package/src/{bip66.js → bip66.ts} +23 -19
- package/src/{block.js → block.ts} +114 -105
- package/src/{bufferutils.js → bufferutils.ts} +65 -67
- package/src/crypto/crypto-browser.js +75 -0
- package/src/crypto/crypto.ts +1 -0
- package/src/crypto.ts +108 -0
- package/src/{ecc_lib.js → ecc_lib.ts} +25 -53
- package/src/hooks/{AdvancedSignatureManager.js → AdvancedSignatureManager.ts} +34 -18
- package/src/hooks/HookedSigner.ts +108 -0
- package/src/hooks/{SignatureManager.js → SignatureManager.ts} +26 -14
- package/src/index.ts +86 -0
- package/src/{merkle.js → merkle.ts} +8 -7
- package/src/{networks.js → networks.ts} +44 -29
- package/src/ops.ts +282 -0
- package/src/payments/bip341.ts +140 -0
- package/src/payments/embed.ts +55 -0
- package/src/payments/{index.d.ts → index.ts} +20 -10
- package/src/payments/lazy.ts +28 -0
- package/src/payments/p2ms.ts +150 -0
- package/src/payments/{p2pk.js → p2pk.ts} +32 -29
- package/src/payments/{p2pkh.js → p2pkh.ts} +53 -47
- package/src/payments/{p2sh.js → p2sh.ts} +72 -71
- package/src/payments/{p2tr.js → p2tr.ts} +114 -125
- package/src/payments/{p2wpkh.js → p2wpkh.ts} +51 -56
- package/src/payments/{p2wsh.js → p2wsh.ts} +69 -81
- package/src/psbt/{bip371.js → bip371.ts} +191 -174
- package/src/psbt/psbtutils.ts +299 -0
- package/src/{psbt.js → psbt.ts} +1025 -679
- package/src/{push_data.js → push_data.ts} +35 -21
- package/src/{script.js → script.ts} +93 -77
- package/src/{script_number.js → script_number.ts} +15 -21
- package/src/{script_signature.js → script_signature.ts} +26 -14
- package/src/{transaction.js → transaction.ts} +247 -167
- package/src/types.ts +122 -0
- package/test/address.spec.js +124 -0
- package/test/address.spec.ts +177 -0
- package/test/bitcoin.core.spec.js +170 -0
- package/test/bitcoin.core.spec.ts +234 -0
- package/test/block.spec.js +141 -0
- package/test/block.spec.ts +194 -0
- package/test/bufferutils.spec.js +427 -0
- package/test/bufferutils.spec.ts +513 -0
- package/test/crypto.spec.js +41 -0
- package/test/crypto.spec.ts +55 -0
- package/test/fixtures/address.json +329 -0
- package/test/fixtures/block.json +148 -0
- package/test/fixtures/bufferutils.json +102 -0
- package/test/fixtures/core/README.md +26 -0
- package/test/fixtures/core/base58_encode_decode.json +50 -0
- package/test/fixtures/core/base58_keys_invalid.json +152 -0
- package/test/fixtures/core/base58_keys_valid.json +452 -0
- package/test/fixtures/core/blocks.json +27 -0
- package/test/fixtures/core/sig_canonical.json +7 -0
- package/test/fixtures/core/sig_noncanonical.json +33 -0
- package/test/fixtures/core/sighash.json +3505 -0
- package/test/fixtures/core/tx_valid.json +2023 -0
- package/test/fixtures/crypto.json +43 -0
- package/test/fixtures/ecdsa.json +217 -0
- package/test/fixtures/ecpair.json +141 -0
- package/test/fixtures/embed.json +108 -0
- package/test/fixtures/p2ms.json +434 -0
- package/test/fixtures/p2pk.json +179 -0
- package/test/fixtures/p2pkh.json +276 -0
- package/test/fixtures/p2sh.json +508 -0
- package/test/fixtures/p2tr.json +1198 -0
- package/test/fixtures/p2wpkh.json +290 -0
- package/test/fixtures/p2wsh.json +489 -0
- package/test/fixtures/psbt.json +924 -0
- package/test/fixtures/script.json +465 -0
- package/test/fixtures/script_number.json +225 -0
- package/test/fixtures/signature.json +140 -0
- package/test/fixtures/transaction.json +916 -0
- package/test/integration/_regtest.js +7 -0
- package/test/integration/_regtest.ts +6 -0
- package/test/integration/addresses.spec.js +116 -0
- package/test/integration/addresses.spec.ts +154 -0
- package/test/integration/bip32.spec.js +85 -0
- package/test/integration/bip32.spec.ts +151 -0
- package/test/integration/blocks.spec.js +26 -0
- package/test/integration/blocks.spec.ts +28 -0
- package/test/integration/cltv.spec.js +199 -0
- package/test/integration/cltv.spec.ts +283 -0
- package/test/integration/csv.spec.js +362 -0
- package/test/integration/csv.spec.ts +527 -0
- package/test/integration/payments.spec.js +98 -0
- package/test/integration/payments.spec.ts +135 -0
- package/test/integration/taproot.spec.js +532 -0
- package/test/integration/taproot.spec.ts +707 -0
- package/test/integration/transactions.spec.js +561 -0
- package/test/integration/transactions.spec.ts +769 -0
- package/test/payments.spec.js +97 -0
- package/test/payments.spec.ts +125 -0
- package/test/payments.utils.js +190 -0
- package/test/payments.utils.ts +208 -0
- package/test/psbt.spec.js +1044 -0
- package/test/psbt.spec.ts +1414 -0
- package/test/script.spec.js +151 -0
- package/test/script.spec.ts +210 -0
- package/test/script_number.spec.js +24 -0
- package/test/script_number.spec.ts +29 -0
- package/test/script_signature.spec.js +52 -0
- package/test/script_signature.spec.ts +66 -0
- package/test/transaction.spec.js +269 -0
- package/test/transaction.spec.ts +387 -0
- package/test/ts-node-register.js +5 -0
- package/test/tsconfig.json +45 -0
- package/test/types.spec.js +46 -0
- package/test/types.spec.ts +58 -0
- package/tsconfig.base.json +27 -0
- package/tsconfig.json +19 -0
- package/tsconfig.webpack.json +18 -0
- package/webpack.config.js +79 -0
- package/src/address.d.ts +0 -42
- package/src/crypto.js +0 -128
- package/src/ecc_lib.d.ts +0 -17
- package/src/hooks/AdvancedSignatureManager.d.ts +0 -44
- package/src/hooks/HookedSigner.js +0 -90
- package/src/hooks/SignatureManager.d.ts +0 -35
- package/src/index.d.ts +0 -42
- package/src/index.js +0 -87
- package/src/merkle.d.ts +0 -10
- package/src/networks.d.ts +0 -83
- package/src/payments/bip341.d.ts +0 -49
- package/src/payments/bip341.js +0 -124
- package/src/payments/embed.d.ts +0 -9
- package/src/payments/embed.js +0 -54
- package/src/payments/index.js +0 -69
- package/src/payments/p2ms.d.ts +0 -9
- package/src/payments/p2pk.d.ts +0 -10
- package/src/payments/p2pkh.d.ts +0 -10
- package/src/payments/p2sh.d.ts +0 -10
- package/src/payments/p2tr.d.ts +0 -10
- package/src/payments/p2wpkh.d.ts +0 -10
- package/src/payments/p2wsh.d.ts +0 -10
- package/src/psbt/bip371.d.ts +0 -42
- package/src/psbt/psbtutils.d.ts +0 -64
- package/src/psbt/psbtutils.js +0 -191
- package/src/push_data.d.ts +0 -29
- package/src/script.d.ts +0 -42
- package/src/script_number.d.ts +0 -19
- package/src/script_signature.d.ts +0 -21
- package/src/types.js +0 -106
|
@@ -1,238 +1,167 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
export interface HDSigner extends HDSignerBase {
|
|
169
|
-
/**
|
|
170
|
-
* The path string must match /^m(\/\d+'?)+$/
|
|
171
|
-
* ex. m/44'/0'/0'/1/23 levels with ' must be hard derivations
|
|
172
|
-
*/
|
|
173
|
-
derivePath(path: string): HDSigner;
|
|
174
|
-
/**
|
|
175
|
-
* Input hash (the "message digest") for the signature algorithm
|
|
176
|
-
* Return a 64 byte signature (32 byte r and 32 byte s in that order)
|
|
177
|
-
*/
|
|
178
|
-
sign(hash: Buffer): Buffer;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Same as above but with async sign method
|
|
182
|
-
*/
|
|
183
|
-
export interface HDSignerAsync extends HDSignerBase {
|
|
184
|
-
derivePath(path: string): HDSignerAsync;
|
|
185
|
-
sign(hash: Buffer): Promise<Buffer>;
|
|
186
|
-
}
|
|
187
|
-
export interface SignerAlternative {
|
|
188
|
-
publicKey: Buffer;
|
|
189
|
-
lowR: boolean;
|
|
190
|
-
sign(hash: Buffer, lowR?: boolean): Buffer;
|
|
191
|
-
verify(hash: Buffer, signature: Buffer): boolean;
|
|
192
|
-
signSchnorr(hash: Buffer): Buffer;
|
|
193
|
-
verifySchnorr(hash: Buffer, signature: Buffer): boolean;
|
|
194
|
-
}
|
|
195
|
-
export interface Signer {
|
|
196
|
-
publicKey: Buffer;
|
|
197
|
-
network?: Network;
|
|
198
|
-
sign(hash: Buffer, lowR?: boolean): Buffer;
|
|
199
|
-
signSchnorr?(hash: Buffer): Buffer;
|
|
200
|
-
getPublicKey?(): Buffer;
|
|
201
|
-
}
|
|
202
|
-
export interface SignerAsync {
|
|
203
|
-
publicKey: Buffer;
|
|
204
|
-
network?: Network;
|
|
205
|
-
sign(hash: Buffer, lowR?: boolean): Promise<Buffer>;
|
|
206
|
-
signSchnorr?(hash: Buffer): Promise<Buffer>;
|
|
207
|
-
getPublicKey?(): Buffer;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* This function must do two things:
|
|
211
|
-
* 1. Check if the `input` can be finalized. If it can not be finalized, throw.
|
|
212
|
-
* ie. `Can not finalize input #${inputIndex}`
|
|
213
|
-
* 2. Create the finalScriptSig and finalScriptWitness Buffers.
|
|
214
|
-
*/
|
|
215
|
-
type FinalScriptsFunc = (inputIndex: number, // Which input is it?
|
|
216
|
-
input: PsbtInput, // The PSBT input contents
|
|
217
|
-
script: Buffer, // The "meaningful" locking script Buffer (redeemScript for P2SH etc.)
|
|
218
|
-
isSegwit: boolean, // Is it segwit?
|
|
219
|
-
isP2SH: boolean, // Is it P2SH?
|
|
220
|
-
isP2WSH: boolean) => {
|
|
221
|
-
finalScriptSig: Buffer | undefined;
|
|
222
|
-
finalScriptWitness: Buffer | undefined;
|
|
223
|
-
};
|
|
224
|
-
type FinalTaprootScriptsFunc = (inputIndex: number, // Which input is it?
|
|
225
|
-
input: PsbtInput, // The PSBT input contents
|
|
226
|
-
tapLeafHashToFinalize?: Buffer) => {
|
|
227
|
-
finalScriptWitness: Buffer | undefined;
|
|
228
|
-
};
|
|
229
|
-
export declare function getFinalScripts(inputIndex: number, input: PsbtInput, script: Buffer, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean): {
|
|
230
|
-
finalScriptSig: Buffer | undefined;
|
|
231
|
-
finalScriptWitness: Buffer | undefined;
|
|
232
|
-
};
|
|
233
|
-
export declare function prepareFinalScripts(script: Buffer, scriptType: string, partialSig: PartialSig[], isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean): {
|
|
234
|
-
finalScriptSig: Buffer | undefined;
|
|
235
|
-
finalScriptWitness: Buffer | undefined;
|
|
236
|
-
};
|
|
237
|
-
type AllScriptType = 'witnesspubkeyhash' | 'pubkeyhash' | 'multisig' | 'pubkey' | 'nonstandard' | 'p2sh-witnesspubkeyhash' | 'p2sh-pubkeyhash' | 'p2sh-multisig' | 'p2sh-pubkey' | 'p2sh-nonstandard' | 'p2wsh-pubkeyhash' | 'p2wsh-multisig' | 'p2wsh-pubkey' | 'p2wsh-nonstandard' | 'p2sh-p2wsh-pubkeyhash' | 'p2sh-p2wsh-multisig' | 'p2sh-p2wsh-pubkey' | 'p2sh-p2wsh-nonstandard';
|
|
238
|
-
export {};
|
|
1
|
+
import { Psbt as PsbtBase } from 'bip174';
|
|
2
|
+
import { KeyValue, PartialSig, PsbtGlobal, PsbtGlobalUpdate, PsbtInput, PsbtInputUpdate, PsbtOutput, PsbtOutputUpdate } from 'bip174/src/lib/interfaces.js';
|
|
3
|
+
import { BIP32Interface } from 'bip32';
|
|
4
|
+
import { ECPairInterface } from 'ecpair';
|
|
5
|
+
import { Network } from './networks.js';
|
|
6
|
+
import { Transaction } from './transaction.js';
|
|
7
|
+
export interface TransactionInput {
|
|
8
|
+
hash: string | Buffer;
|
|
9
|
+
index: number;
|
|
10
|
+
sequence?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface PsbtTxInput extends TransactionInput {
|
|
13
|
+
hash: Buffer;
|
|
14
|
+
}
|
|
15
|
+
export interface TransactionOutput {
|
|
16
|
+
script: Buffer;
|
|
17
|
+
value: number;
|
|
18
|
+
}
|
|
19
|
+
export interface PsbtTxOutput extends TransactionOutput {
|
|
20
|
+
address: string | undefined;
|
|
21
|
+
}
|
|
22
|
+
export type ValidateSigFunction = (pubkey: Buffer, msghash: Buffer, signature: Buffer) => boolean;
|
|
23
|
+
export interface PsbtBaseExtended extends Omit<PsbtBase, 'inputs'> {
|
|
24
|
+
inputs: PsbtInput[];
|
|
25
|
+
globalMap: PsbtGlobal;
|
|
26
|
+
}
|
|
27
|
+
export declare class Psbt {
|
|
28
|
+
data: PsbtBaseExtended;
|
|
29
|
+
private readonly __CACHE;
|
|
30
|
+
private readonly opts;
|
|
31
|
+
constructor(opts?: PsbtOptsOptional, data?: PsbtBaseExtended);
|
|
32
|
+
get inputCount(): number;
|
|
33
|
+
get version(): number;
|
|
34
|
+
set version(version: number);
|
|
35
|
+
get locktime(): number;
|
|
36
|
+
set locktime(locktime: number);
|
|
37
|
+
get txInputs(): PsbtTxInput[];
|
|
38
|
+
get txOutputs(): PsbtTxOutput[];
|
|
39
|
+
static fromBase64(data: string, opts?: PsbtOptsOptional): Psbt;
|
|
40
|
+
static fromHex(data: string, opts?: PsbtOptsOptional): Psbt;
|
|
41
|
+
static fromBuffer(buffer: Buffer, opts?: PsbtOptsOptional): Psbt;
|
|
42
|
+
combine(...those: Psbt[]): this;
|
|
43
|
+
clone(): Psbt;
|
|
44
|
+
setMaximumFeeRate(satoshiPerByte: number): void;
|
|
45
|
+
setVersion(version: number): this;
|
|
46
|
+
setLocktime(locktime: number): this;
|
|
47
|
+
setInputSequence(inputIndex: number, sequence: number): this;
|
|
48
|
+
addInputs(inputDatas: PsbtInputExtended[], checkPartialSigs?: boolean): this;
|
|
49
|
+
addInput(inputData: PsbtInputExtended, checkPartialSigs?: boolean): this;
|
|
50
|
+
addOutputs(outputDatas: PsbtOutputExtended[]): this;
|
|
51
|
+
addOutput(outputData: PsbtOutputExtended): this;
|
|
52
|
+
extractTransaction(disableFeeCheck?: boolean, disableOutputChecks?: boolean): Transaction;
|
|
53
|
+
getFeeRate(disableOutputChecks?: boolean): number;
|
|
54
|
+
getFee(disableOutputChecks?: boolean): number;
|
|
55
|
+
finalizeAllInputs(): this;
|
|
56
|
+
finalizeInput(inputIndex: number, finalScriptsFunc?: FinalScriptsFunc | FinalTaprootScriptsFunc): this;
|
|
57
|
+
finalizeTaprootInput(inputIndex: number, tapLeafHashToFinalize?: Buffer, finalScriptsFunc?: FinalTaprootScriptsFunc): this;
|
|
58
|
+
getInputType(inputIndex: number): AllScriptType;
|
|
59
|
+
inputHasPubkey(inputIndex: number, pubkey: Buffer): boolean;
|
|
60
|
+
inputHasHDKey(inputIndex: number, root: HDSigner): boolean;
|
|
61
|
+
outputHasPubkey(outputIndex: number, pubkey: Buffer): boolean;
|
|
62
|
+
outputHasHDKey(outputIndex: number, root: HDSigner): boolean;
|
|
63
|
+
validateSignaturesOfAllInputs(validator: ValidateSigFunction): boolean;
|
|
64
|
+
validateSignaturesOfInput(inputIndex: number, validator: ValidateSigFunction, pubkey?: Buffer): boolean;
|
|
65
|
+
signAllInputsHD(hdKeyPair: HDSigner, sighashTypes?: number[]): this;
|
|
66
|
+
signAllInputsHDAsync(hdKeyPair: HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
|
|
67
|
+
signInputHD(inputIndex: number, hdKeyPair: HDSigner, sighashTypes?: number[]): this;
|
|
68
|
+
signInputHDAsync(inputIndex: number, hdKeyPair: HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
|
|
69
|
+
signAllInputs(keyPair: Signer | SignerAlternative | BIP32Interface | ECPairInterface, sighashTypes?: number[]): this;
|
|
70
|
+
signAllInputsAsync(keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, sighashTypes?: number[]): Promise<void>;
|
|
71
|
+
signInput(inputIndex: number, keyPair: Signer | SignerAlternative | BIP32Interface | ECPairInterface, sighashTypes?: number[]): this;
|
|
72
|
+
signTaprootInput(inputIndex: number, keyPair: Signer | SignerAlternative | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Buffer, sighashTypes?: number[]): this;
|
|
73
|
+
signInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, sighashTypes?: number[]): Promise<void>;
|
|
74
|
+
signTaprootInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, tapLeafHash?: Buffer, sighashTypes?: number[]): Promise<void>;
|
|
75
|
+
toBuffer(): Buffer;
|
|
76
|
+
toHex(): string;
|
|
77
|
+
toBase64(): string;
|
|
78
|
+
updateGlobal(updateData: PsbtGlobalUpdate): this;
|
|
79
|
+
updateInput(inputIndex: number, updateData: PsbtInputUpdate): this;
|
|
80
|
+
updateOutput(outputIndex: number, updateData: PsbtOutputUpdate): this;
|
|
81
|
+
addUnknownKeyValToGlobal(keyVal: KeyValue): this;
|
|
82
|
+
addUnknownKeyValToInput(inputIndex: number, keyVal: KeyValue): this;
|
|
83
|
+
addUnknownKeyValToOutput(outputIndex: number, keyVal: KeyValue): this;
|
|
84
|
+
clearFinalizedInput(inputIndex: number): this;
|
|
85
|
+
checkTaprootHashesForSig(inputIndex: number, input: PsbtInput, keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Buffer, allowedSighashTypes?: number[]): {
|
|
86
|
+
hash: Buffer;
|
|
87
|
+
leafHash?: Buffer;
|
|
88
|
+
}[];
|
|
89
|
+
private _finalizeInput;
|
|
90
|
+
private _finalizeTaprootInput;
|
|
91
|
+
private _validateSignaturesOfInput;
|
|
92
|
+
private validateSignaturesOfTaprootInput;
|
|
93
|
+
private _signInput;
|
|
94
|
+
private _signTaprootInput;
|
|
95
|
+
private _signInputAsync;
|
|
96
|
+
private _signTaprootInputAsync;
|
|
97
|
+
}
|
|
98
|
+
export interface PsbtOptsOptional {
|
|
99
|
+
network?: Network;
|
|
100
|
+
maximumFeeRate?: number;
|
|
101
|
+
}
|
|
102
|
+
export interface PsbtOpts {
|
|
103
|
+
network: Network;
|
|
104
|
+
maximumFeeRate: number;
|
|
105
|
+
}
|
|
106
|
+
export interface PsbtInputExtended extends PsbtInput, TransactionInput {
|
|
107
|
+
}
|
|
108
|
+
export type PsbtOutputExtended = PsbtOutputExtendedAddress | PsbtOutputExtendedScript;
|
|
109
|
+
export interface PsbtOutputExtendedAddress extends PsbtOutput {
|
|
110
|
+
address: string;
|
|
111
|
+
value: number;
|
|
112
|
+
}
|
|
113
|
+
export interface PsbtOutputExtendedScript extends PsbtOutput {
|
|
114
|
+
script: Buffer;
|
|
115
|
+
value: number;
|
|
116
|
+
}
|
|
117
|
+
interface HDSignerBase {
|
|
118
|
+
publicKey: Buffer;
|
|
119
|
+
fingerprint: Buffer;
|
|
120
|
+
}
|
|
121
|
+
export interface HDSigner extends HDSignerBase {
|
|
122
|
+
derivePath(path: string): HDSigner;
|
|
123
|
+
sign(hash: Buffer): Buffer;
|
|
124
|
+
}
|
|
125
|
+
export interface HDSignerAsync extends HDSignerBase {
|
|
126
|
+
derivePath(path: string): HDSignerAsync;
|
|
127
|
+
sign(hash: Buffer): Promise<Buffer>;
|
|
128
|
+
}
|
|
129
|
+
export interface SignerAlternative {
|
|
130
|
+
publicKey: Buffer;
|
|
131
|
+
lowR: boolean;
|
|
132
|
+
sign(hash: Buffer, lowR?: boolean): Buffer;
|
|
133
|
+
verify(hash: Buffer, signature: Buffer): boolean;
|
|
134
|
+
signSchnorr(hash: Buffer): Buffer;
|
|
135
|
+
verifySchnorr(hash: Buffer, signature: Buffer): boolean;
|
|
136
|
+
}
|
|
137
|
+
export interface Signer {
|
|
138
|
+
publicKey: Buffer;
|
|
139
|
+
network?: Network;
|
|
140
|
+
sign(hash: Buffer, lowR?: boolean): Buffer;
|
|
141
|
+
signSchnorr?(hash: Buffer): Buffer;
|
|
142
|
+
getPublicKey?(): Buffer;
|
|
143
|
+
}
|
|
144
|
+
export interface SignerAsync {
|
|
145
|
+
publicKey: Buffer;
|
|
146
|
+
network?: Network;
|
|
147
|
+
sign(hash: Buffer, lowR?: boolean): Promise<Buffer>;
|
|
148
|
+
signSchnorr?(hash: Buffer): Promise<Buffer>;
|
|
149
|
+
getPublicKey?(): Buffer;
|
|
150
|
+
}
|
|
151
|
+
type FinalScriptsFunc = (inputIndex: number, input: PsbtInput, script: Buffer, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean) => {
|
|
152
|
+
finalScriptSig: Buffer | undefined;
|
|
153
|
+
finalScriptWitness: Buffer | undefined;
|
|
154
|
+
};
|
|
155
|
+
type FinalTaprootScriptsFunc = (inputIndex: number, input: PsbtInput, tapLeafHashToFinalize?: Buffer) => {
|
|
156
|
+
finalScriptWitness: Buffer | undefined;
|
|
157
|
+
};
|
|
158
|
+
export declare function getFinalScripts(inputIndex: number, input: PsbtInput, script: Buffer, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean): {
|
|
159
|
+
finalScriptSig: Buffer | undefined;
|
|
160
|
+
finalScriptWitness: Buffer | undefined;
|
|
161
|
+
};
|
|
162
|
+
export declare function prepareFinalScripts(script: Buffer, scriptType: string, partialSig: PartialSig[], isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean): {
|
|
163
|
+
finalScriptSig: Buffer | undefined;
|
|
164
|
+
finalScriptWitness: Buffer | undefined;
|
|
165
|
+
};
|
|
166
|
+
type AllScriptType = 'witnesspubkeyhash' | 'pubkeyhash' | 'multisig' | 'pubkey' | 'nonstandard' | 'p2sh-witnesspubkeyhash' | 'p2sh-pubkeyhash' | 'p2sh-multisig' | 'p2sh-pubkey' | 'p2sh-nonstandard' | 'p2wsh-pubkeyhash' | 'p2wsh-multisig' | 'p2wsh-pubkey' | 'p2wsh-nonstandard' | 'p2sh-p2wsh-pubkeyhash' | 'p2sh-p2wsh-multisig' | 'p2sh-p2wsh-pubkey' | 'p2sh-p2wsh-nonstandard';
|
|
167
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function encodingLength(i: number): number;
|
|
2
|
+
export declare function encode(buffer: Buffer, num: number, offset: number): number;
|
|
3
|
+
export declare function decode(buffer: Buffer, offset: number): {
|
|
4
|
+
opcode: number;
|
|
5
|
+
number: number;
|
|
6
|
+
size: number;
|
|
7
|
+
} | null;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OPS } from './ops.js';
|
|
2
|
+
import { Stack } from './payments/index.js';
|
|
3
|
+
import * as scriptNumber from './script_number.js';
|
|
4
|
+
import * as scriptSignature from './script_signature.js';
|
|
5
|
+
export { OPS };
|
|
6
|
+
export declare function isPushOnly(value: Stack): boolean;
|
|
7
|
+
export declare function countNonPushOnlyOPs(value: Stack): number;
|
|
8
|
+
export declare function compile(chunks: Buffer | Stack): Buffer;
|
|
9
|
+
export declare function decompile(buffer: Buffer | Array<number | Buffer>): Array<number | Buffer> | null;
|
|
10
|
+
export declare function toASM(chunks: Buffer | Array<number | Buffer>): string;
|
|
11
|
+
export declare function fromASM(asm: string): Buffer;
|
|
12
|
+
export declare function toStack(chunks: Buffer | Array<number | Buffer>): Buffer[];
|
|
13
|
+
export declare function isCanonicalPubKey(buffer: Buffer): boolean;
|
|
14
|
+
export declare function isDefinedHashType(hashType: number): boolean;
|
|
15
|
+
export declare function isCanonicalScriptSignature(buffer: Buffer): boolean;
|
|
16
|
+
export declare const number: typeof scriptNumber;
|
|
17
|
+
export declare const signature: typeof scriptSignature;
|
|
@@ -1,60 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
static readonly
|
|
18
|
-
static readonly
|
|
19
|
-
static readonly
|
|
20
|
-
static readonly
|
|
21
|
-
static readonly
|
|
22
|
-
static readonly
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
*/
|
|
50
|
-
hashForSignature(inIndex: number, prevOutScript: Buffer, hashType: number): Buffer;
|
|
51
|
-
hashForWitnessV1(inIndex: number, prevOutScripts: Buffer[], values: number[], hashType: number, leafHash?: Buffer, annex?: Buffer): Buffer;
|
|
52
|
-
hashForWitnessV0(inIndex: number, prevOutScript: Buffer, value: number, hashType: number): Buffer;
|
|
53
|
-
getHash(forWitness?: boolean): Buffer;
|
|
54
|
-
getId(): string;
|
|
55
|
-
toBuffer(buffer?: Buffer, initialOffset?: number): Buffer;
|
|
56
|
-
toHex(): string;
|
|
57
|
-
setInputScript(index: number, scriptSig: Buffer): void;
|
|
58
|
-
setWitness(index: number, witness: Buffer[]): void;
|
|
59
|
-
private __toBuffer;
|
|
60
|
-
}
|
|
1
|
+
export interface Output {
|
|
2
|
+
script: Buffer;
|
|
3
|
+
value: number;
|
|
4
|
+
}
|
|
5
|
+
export interface Input {
|
|
6
|
+
hash: Buffer;
|
|
7
|
+
index: number;
|
|
8
|
+
script: Buffer;
|
|
9
|
+
sequence: number;
|
|
10
|
+
witness: Buffer[];
|
|
11
|
+
}
|
|
12
|
+
export declare class Transaction {
|
|
13
|
+
static readonly DEFAULT_SEQUENCE = 4294967295;
|
|
14
|
+
static readonly SIGHASH_DEFAULT = 0;
|
|
15
|
+
static readonly SIGHASH_ALL = 1;
|
|
16
|
+
static readonly SIGHASH_NONE = 2;
|
|
17
|
+
static readonly SIGHASH_SINGLE = 3;
|
|
18
|
+
static readonly SIGHASH_ANYONECANPAY = 128;
|
|
19
|
+
static readonly SIGHASH_OUTPUT_MASK = 3;
|
|
20
|
+
static readonly SIGHASH_INPUT_MASK = 128;
|
|
21
|
+
static readonly ADVANCED_TRANSACTION_MARKER = 0;
|
|
22
|
+
static readonly ADVANCED_TRANSACTION_FLAG = 1;
|
|
23
|
+
version: number;
|
|
24
|
+
locktime: number;
|
|
25
|
+
ins: Input[];
|
|
26
|
+
outs: Output[];
|
|
27
|
+
static fromBuffer(buffer: Buffer, _NO_STRICT?: boolean): Transaction;
|
|
28
|
+
static fromHex(hex: string): Transaction;
|
|
29
|
+
static isCoinbaseHash(buffer: Buffer): boolean;
|
|
30
|
+
isCoinbase(): boolean;
|
|
31
|
+
addInput(hash: Buffer, index: number, sequence?: number, scriptSig?: Buffer): number;
|
|
32
|
+
addOutput(scriptPubKey: Buffer, value: number): number;
|
|
33
|
+
hasWitnesses(): boolean;
|
|
34
|
+
weight(): number;
|
|
35
|
+
virtualSize(): number;
|
|
36
|
+
byteLength(_ALLOW_WITNESS?: boolean): number;
|
|
37
|
+
clone(): Transaction;
|
|
38
|
+
hashForSignature(inIndex: number, prevOutScript: Buffer, hashType: number): Buffer;
|
|
39
|
+
hashForWitnessV1(inIndex: number, prevOutScripts: Buffer[], values: number[], hashType: number, leafHash?: Buffer, annex?: Buffer): Buffer;
|
|
40
|
+
hashForWitnessV0(inIndex: number, prevOutScript: Buffer, value: number, hashType: number): Buffer;
|
|
41
|
+
getHash(forWitness?: boolean): Buffer;
|
|
42
|
+
getId(): string;
|
|
43
|
+
toBuffer(buffer?: Buffer, initialOffset?: number): Buffer;
|
|
44
|
+
toHex(): string;
|
|
45
|
+
setInputScript(index: number, scriptSig: Buffer): void;
|
|
46
|
+
setWitness(index: number, witness: Buffer[]): void;
|
|
47
|
+
private __toBuffer;
|
|
48
|
+
}
|