@btc-vision/bitcoin 7.0.0-alpha.0 → 7.0.0-alpha.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/browser/address.d.ts +6 -2
- package/browser/address.d.ts.map +1 -1
- package/browser/block.d.ts.map +1 -1
- package/browser/branded.d.ts +3 -14
- package/browser/branded.d.ts.map +1 -1
- package/browser/crypto.d.ts +1 -1
- package/browser/ecc/context.d.ts +4 -4
- package/browser/ecc/context.d.ts.map +1 -1
- package/browser/ecc/types.d.ts +1 -1
- package/browser/ecc/types.d.ts.map +1 -1
- package/browser/index.d.ts +3 -2
- package/browser/index.d.ts.map +1 -1
- package/browser/index.js +3579 -3539
- package/browser/io/BinaryReader.d.ts +15 -15
- package/browser/io/BinaryReader.d.ts.map +1 -1
- package/browser/io/BinaryWriter.d.ts +17 -17
- package/browser/io/BinaryWriter.d.ts.map +1 -1
- package/browser/io/MemoryPool.d.ts +20 -20
- package/browser/io/MemoryPool.d.ts.map +1 -1
- package/browser/opcodes.d.ts +11 -0
- package/browser/opcodes.d.ts.map +1 -1
- package/browser/payments/bip341.d.ts +1 -1
- package/browser/payments/bip341.d.ts.map +1 -1
- package/browser/payments/embed.d.ts +1 -1
- package/browser/payments/embed.d.ts.map +1 -1
- package/browser/payments/p2ms.d.ts.map +1 -1
- package/browser/payments/p2op.d.ts +1 -1
- package/browser/payments/p2op.d.ts.map +1 -1
- package/browser/payments/p2pk.d.ts +1 -1
- package/browser/payments/p2pk.d.ts.map +1 -1
- package/browser/payments/p2pkh.d.ts +1 -1
- package/browser/payments/p2pkh.d.ts.map +1 -1
- package/browser/payments/p2sh.d.ts.map +1 -1
- package/browser/payments/p2tr.d.ts +2 -2
- package/browser/payments/p2tr.d.ts.map +1 -1
- package/browser/payments/p2wpkh.d.ts +1 -1
- package/browser/payments/p2wpkh.d.ts.map +1 -1
- package/browser/payments/p2wsh.d.ts.map +1 -1
- package/browser/payments/types.d.ts +1 -1
- package/browser/payments/types.d.ts.map +1 -1
- package/browser/psbt/PsbtCache.d.ts +54 -0
- package/browser/psbt/PsbtCache.d.ts.map +1 -0
- package/browser/psbt/PsbtFinalizer.d.ts +21 -0
- package/browser/psbt/PsbtFinalizer.d.ts.map +1 -0
- package/browser/psbt/PsbtSigner.d.ts +32 -0
- package/browser/psbt/PsbtSigner.d.ts.map +1 -0
- package/browser/psbt/PsbtTransaction.d.ts +25 -0
- package/browser/psbt/PsbtTransaction.d.ts.map +1 -0
- package/browser/psbt/bip371.d.ts.map +1 -1
- package/browser/psbt/types.d.ts +14 -14
- package/browser/psbt/types.d.ts.map +1 -1
- package/browser/psbt/validation.d.ts +1 -1
- package/browser/psbt/validation.d.ts.map +1 -1
- package/browser/psbt.d.ts +27 -39
- package/browser/psbt.d.ts.map +1 -1
- package/browser/script.d.ts.map +1 -1
- package/browser/transaction.d.ts +4 -4
- package/browser/transaction.d.ts.map +1 -1
- package/browser/types.d.ts +4 -2
- package/browser/types.d.ts.map +1 -1
- package/browser/workers/WorkerSigningPool.d.ts +17 -17
- package/browser/workers/WorkerSigningPool.d.ts.map +1 -1
- package/browser/workers/WorkerSigningPool.node.d.ts +12 -12
- package/browser/workers/WorkerSigningPool.node.d.ts.map +1 -1
- package/browser/workers/index.d.ts +3 -50
- package/browser/workers/index.d.ts.map +1 -1
- package/browser/workers/index.node.d.ts +24 -0
- package/browser/workers/index.node.d.ts.map +1 -0
- package/browser/workers/psbt-parallel.d.ts +1 -1
- package/browser/workers/psbt-parallel.d.ts.map +1 -1
- package/browser/workers/types.d.ts.map +1 -1
- package/build/address.d.ts +6 -2
- package/build/address.d.ts.map +1 -1
- package/build/address.js +32 -19
- package/build/address.js.map +1 -1
- package/build/block.d.ts.map +1 -1
- package/build/block.js +2 -4
- package/build/block.js.map +1 -1
- package/build/branded.d.ts +3 -14
- package/build/branded.d.ts.map +1 -1
- package/build/branded.js +0 -5
- package/build/branded.js.map +1 -1
- package/build/crypto.d.ts +1 -1
- package/build/ecc/context.d.ts +4 -4
- package/build/ecc/context.d.ts.map +1 -1
- package/build/ecc/context.js +75 -52
- package/build/ecc/context.js.map +1 -1
- package/build/ecc/types.d.ts +1 -1
- package/build/ecc/types.d.ts.map +1 -1
- package/build/index.d.ts +3 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -3
- package/build/index.js.map +1 -1
- package/build/io/BinaryReader.d.ts +15 -15
- package/build/io/BinaryReader.d.ts.map +1 -1
- package/build/io/BinaryReader.js +17 -17
- package/build/io/BinaryReader.js.map +1 -1
- package/build/io/BinaryWriter.d.ts +17 -17
- package/build/io/BinaryWriter.d.ts.map +1 -1
- package/build/io/BinaryWriter.js +39 -39
- package/build/io/BinaryWriter.js.map +1 -1
- package/build/io/MemoryPool.d.ts +20 -20
- package/build/io/MemoryPool.d.ts.map +1 -1
- package/build/io/MemoryPool.js +28 -28
- package/build/io/MemoryPool.js.map +1 -1
- package/build/opcodes.d.ts +11 -0
- package/build/opcodes.d.ts.map +1 -1
- package/build/opcodes.js +19 -4
- package/build/opcodes.js.map +1 -1
- package/build/payments/bip341.d.ts +1 -2
- package/build/payments/bip341.d.ts.map +1 -1
- package/build/payments/bip341.js +1 -2
- package/build/payments/bip341.js.map +1 -1
- package/build/payments/embed.d.ts +1 -1
- package/build/payments/embed.d.ts.map +1 -1
- package/build/payments/embed.js +14 -14
- package/build/payments/embed.js.map +1 -1
- package/build/payments/p2ms.d.ts.map +1 -1
- package/build/payments/p2ms.js +21 -21
- package/build/payments/p2ms.js.map +1 -1
- package/build/payments/p2op.d.ts +1 -1
- package/build/payments/p2op.d.ts.map +1 -1
- package/build/payments/p2op.js +18 -18
- package/build/payments/p2op.js.map +1 -1
- package/build/payments/p2pk.d.ts +1 -1
- package/build/payments/p2pk.d.ts.map +1 -1
- package/build/payments/p2pk.js +17 -17
- package/build/payments/p2pk.js.map +1 -1
- package/build/payments/p2pkh.d.ts +1 -1
- package/build/payments/p2pkh.d.ts.map +1 -1
- package/build/payments/p2pkh.js +20 -20
- package/build/payments/p2pkh.js.map +1 -1
- package/build/payments/p2sh.d.ts.map +1 -1
- package/build/payments/p2sh.js +22 -20
- package/build/payments/p2sh.js.map +1 -1
- package/build/payments/p2tr.d.ts +2 -2
- package/build/payments/p2tr.d.ts.map +1 -1
- package/build/payments/p2tr.js +23 -23
- package/build/payments/p2tr.js.map +1 -1
- package/build/payments/p2wpkh.d.ts +1 -1
- package/build/payments/p2wpkh.d.ts.map +1 -1
- package/build/payments/p2wpkh.js +20 -20
- package/build/payments/p2wpkh.js.map +1 -1
- package/build/payments/p2wsh.d.ts.map +1 -1
- package/build/payments/p2wsh.js +22 -22
- package/build/payments/p2wsh.js.map +1 -1
- package/build/payments/types.d.ts +1 -1
- package/build/payments/types.d.ts.map +1 -1
- package/build/psbt/PsbtCache.d.ts +54 -0
- package/build/psbt/PsbtCache.d.ts.map +1 -0
- package/build/psbt/PsbtCache.js +249 -0
- package/build/psbt/PsbtCache.js.map +1 -0
- package/build/psbt/PsbtFinalizer.d.ts +21 -0
- package/build/psbt/PsbtFinalizer.d.ts.map +1 -0
- package/build/psbt/PsbtFinalizer.js +157 -0
- package/build/psbt/PsbtFinalizer.js.map +1 -0
- package/build/psbt/PsbtSigner.d.ts +32 -0
- package/build/psbt/PsbtSigner.d.ts.map +1 -0
- package/build/psbt/PsbtSigner.js +192 -0
- package/build/psbt/PsbtSigner.js.map +1 -0
- package/build/psbt/PsbtTransaction.d.ts +25 -0
- package/build/psbt/PsbtTransaction.d.ts.map +1 -0
- package/build/psbt/PsbtTransaction.js +61 -0
- package/build/psbt/PsbtTransaction.js.map +1 -0
- package/build/psbt/bip371.d.ts.map +1 -1
- package/build/psbt/bip371.js +6 -2
- package/build/psbt/bip371.js.map +1 -1
- package/build/psbt/psbtutils.js +1 -1
- package/build/psbt/psbtutils.js.map +1 -1
- package/build/psbt/types.d.ts +14 -14
- package/build/psbt/types.d.ts.map +1 -1
- package/build/psbt/validation.d.ts +1 -1
- package/build/psbt/validation.d.ts.map +1 -1
- package/build/psbt/validation.js +1 -1
- package/build/psbt/validation.js.map +1 -1
- package/build/psbt.d.ts +27 -39
- package/build/psbt.d.ts.map +1 -1
- package/build/psbt.js +142 -755
- package/build/psbt.js.map +1 -1
- package/build/script.d.ts.map +1 -1
- package/build/script.js +4 -4
- package/build/script.js.map +1 -1
- package/build/transaction.d.ts +4 -4
- package/build/transaction.d.ts.map +1 -1
- package/build/transaction.js +6 -5
- package/build/transaction.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/types.d.ts +4 -2
- package/build/types.d.ts.map +1 -1
- package/build/types.js +12 -9
- package/build/types.js.map +1 -1
- package/build/workers/WorkerSigningPool.d.ts +17 -17
- package/build/workers/WorkerSigningPool.d.ts.map +1 -1
- package/build/workers/WorkerSigningPool.js +25 -25
- package/build/workers/WorkerSigningPool.js.map +1 -1
- package/build/workers/WorkerSigningPool.node.d.ts +12 -12
- package/build/workers/WorkerSigningPool.node.d.ts.map +1 -1
- package/build/workers/WorkerSigningPool.node.js +23 -23
- package/build/workers/WorkerSigningPool.node.js.map +1 -1
- package/build/workers/index.d.ts +3 -3
- package/build/workers/index.d.ts.map +1 -1
- package/build/workers/index.js +0 -3
- package/build/workers/index.js.map +1 -1
- package/build/workers/index.node.d.ts +24 -0
- package/build/workers/index.node.d.ts.map +1 -0
- package/build/workers/index.node.js +26 -0
- package/build/workers/index.node.js.map +1 -0
- package/build/workers/psbt-parallel.d.ts +1 -1
- package/build/workers/psbt-parallel.d.ts.map +1 -1
- package/build/workers/psbt-parallel.js.map +1 -1
- package/build/workers/types.d.ts.map +1 -1
- package/build/workers/types.js.map +1 -1
- package/package.json +30 -10
- package/src/address.ts +53 -21
- package/src/block.ts +15 -8
- package/src/branded.ts +15 -13
- package/src/crypto.ts +1 -1
- package/src/ecc/context.ts +85 -64
- package/src/ecc/types.ts +1 -8
- package/src/index.ts +48 -14
- package/src/io/BinaryReader.ts +18 -18
- package/src/io/BinaryWriter.ts +43 -43
- package/src/io/MemoryPool.ts +32 -32
- package/src/opcodes.ts +21 -4
- package/src/payments/bip341.ts +2 -4
- package/src/payments/embed.ts +18 -18
- package/src/payments/p2ms.ts +32 -25
- package/src/payments/p2op.ts +22 -22
- package/src/payments/p2pk.ts +20 -20
- package/src/payments/p2pkh.ts +25 -25
- package/src/payments/p2sh.ts +30 -27
- package/src/payments/p2tr.ts +31 -31
- package/src/payments/p2wpkh.ts +25 -25
- package/src/payments/p2wsh.ts +27 -27
- package/src/payments/types.ts +1 -1
- package/src/psbt/PsbtCache.ts +325 -0
- package/src/psbt/PsbtFinalizer.ts +213 -0
- package/src/psbt/PsbtSigner.ts +302 -0
- package/src/psbt/PsbtTransaction.ts +82 -0
- package/src/psbt/bip371.ts +7 -3
- package/src/psbt/psbtutils.ts +1 -1
- package/src/psbt/types.ts +14 -21
- package/src/psbt/validation.ts +5 -12
- package/src/psbt.ts +363 -1130
- package/src/script.ts +6 -9
- package/src/transaction.ts +18 -14
- package/src/types.ts +28 -17
- package/src/workers/WorkerSigningPool.node.ts +31 -31
- package/src/workers/WorkerSigningPool.ts +35 -39
- package/src/workers/index.node.ts +27 -0
- package/src/workers/index.ts +7 -9
- package/src/workers/psbt-parallel.ts +2 -7
- package/src/workers/types.ts +5 -1
- package/test/address.spec.ts +2 -2
- package/test/bitcoin.core.spec.ts +5 -2
- package/test/browser/payments.spec.ts +151 -0
- package/test/browser/psbt.spec.ts +1510 -0
- package/test/browser/script.spec.ts +223 -0
- package/test/browser/setup.ts +13 -0
- package/test/browser/workers-signing.spec.ts +537 -0
- package/test/crypto.spec.ts +2 -2
- package/test/fixtures/core/base58_encode_decode.json +12 -48
- package/test/fixtures/core/base58_keys_invalid.json +50 -150
- package/test/fixtures/core/sighash.json +1 -3
- package/test/fixtures/core/tx_valid.json +133 -501
- package/test/fixtures/embed.json +3 -11
- package/test/fixtures/p2ms.json +21 -91
- package/test/fixtures/p2pk.json +5 -24
- package/test/fixtures/p2pkh.json +7 -36
- package/test/fixtures/p2sh.json +8 -54
- package/test/fixtures/p2tr.json +2 -6
- package/test/fixtures/p2wpkh.json +7 -36
- package/test/fixtures/p2wsh.json +14 -59
- package/test/fixtures/psbt.json +2 -6
- package/test/fixtures/script.json +12 -48
- package/test/integration/addresses.spec.ts +11 -5
- package/test/integration/bip32.spec.ts +1 -1
- package/test/integration/cltv.spec.ts +10 -6
- package/test/integration/csv.spec.ts +10 -9
- package/test/integration/payments.spec.ts +8 -4
- package/test/integration/taproot.spec.ts +26 -6
- package/test/integration/transactions.spec.ts +22 -8
- package/test/payments.spec.ts +1 -1
- package/test/payments.utils.ts +1 -1
- package/test/psbt.spec.ts +250 -64
- package/test/script_signature.spec.ts +1 -1
- package/test/transaction.spec.ts +18 -5
- package/test/tsconfig.json +6 -20
- package/test/workers-pool.spec.ts +22 -23
- package/test/workers-signing.spec.ts +7 -3
- package/test/workers.spec.ts +6 -7
- package/typedoc.json +39 -0
- package/vitest.config.browser.ts +68 -0
- package/browser/ecpair.d.ts +0 -99
- package/src/ecpair.d.ts +0 -99
- package/test/taproot-cache.spec.ts +0 -694
package/src/psbt/types.ts
CHANGED
|
@@ -5,15 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import type { Psbt as PsbtBase, PsbtGlobal, PsbtInput, PsbtOutput } from 'bip174';
|
|
7
7
|
import type { Network } from '../networks.js';
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
10
|
-
Bytes32,
|
|
11
|
-
PublicKey,
|
|
12
|
-
Satoshi,
|
|
13
|
-
Script,
|
|
14
|
-
Signature,
|
|
15
|
-
SchnorrSignature,
|
|
16
|
-
} from '../types.js';
|
|
8
|
+
import type { TaprootHashCache, Transaction } from '../transaction.js';
|
|
9
|
+
import type { Bytes32, MessageHash, PublicKey, Satoshi, SchnorrSignature, Script, Signature } from '../types.js';
|
|
17
10
|
|
|
18
11
|
/**
|
|
19
12
|
* Transaction input interface for PSBT.
|
|
@@ -52,7 +45,7 @@ export interface PsbtTxOutput extends TransactionOutput {
|
|
|
52
45
|
*/
|
|
53
46
|
export type ValidateSigFunction = (
|
|
54
47
|
pubkey: PublicKey,
|
|
55
|
-
msghash:
|
|
48
|
+
msghash: MessageHash,
|
|
56
49
|
signature: Uint8Array,
|
|
57
50
|
) => boolean;
|
|
58
51
|
|
|
@@ -137,7 +130,7 @@ export interface HDSigner extends HDSignerBase {
|
|
|
137
130
|
* Input hash (the "message digest") for the signature algorithm
|
|
138
131
|
* Return a 64 byte signature (32 byte r and 32 byte s in that order)
|
|
139
132
|
*/
|
|
140
|
-
sign(hash:
|
|
133
|
+
sign(hash: MessageHash): Uint8Array;
|
|
141
134
|
}
|
|
142
135
|
|
|
143
136
|
/**
|
|
@@ -146,7 +139,7 @@ export interface HDSigner extends HDSignerBase {
|
|
|
146
139
|
export interface HDSignerAsync extends HDSignerBase {
|
|
147
140
|
derivePath(path: string): HDSignerAsync;
|
|
148
141
|
|
|
149
|
-
sign(hash:
|
|
142
|
+
sign(hash: MessageHash): Promise<Uint8Array>;
|
|
150
143
|
}
|
|
151
144
|
|
|
152
145
|
/**
|
|
@@ -156,13 +149,13 @@ export interface SignerAlternative {
|
|
|
156
149
|
readonly publicKey: PublicKey;
|
|
157
150
|
readonly lowR: boolean;
|
|
158
151
|
|
|
159
|
-
sign(hash:
|
|
152
|
+
sign(hash: MessageHash, lowR?: boolean): Signature;
|
|
160
153
|
|
|
161
|
-
verify(hash:
|
|
154
|
+
verify(hash: MessageHash, signature: Signature): boolean;
|
|
162
155
|
|
|
163
|
-
signSchnorr(hash:
|
|
156
|
+
signSchnorr(hash: MessageHash): SchnorrSignature;
|
|
164
157
|
|
|
165
|
-
verifySchnorr(hash:
|
|
158
|
+
verifySchnorr(hash: MessageHash, signature: SchnorrSignature): boolean;
|
|
166
159
|
}
|
|
167
160
|
|
|
168
161
|
/**
|
|
@@ -172,9 +165,9 @@ export interface Signer {
|
|
|
172
165
|
readonly publicKey: PublicKey;
|
|
173
166
|
readonly network?: Network | undefined;
|
|
174
167
|
|
|
175
|
-
sign(hash:
|
|
168
|
+
sign(hash: MessageHash, lowR?: boolean): Signature;
|
|
176
169
|
|
|
177
|
-
signSchnorr?(hash:
|
|
170
|
+
signSchnorr?(hash: MessageHash): SchnorrSignature;
|
|
178
171
|
|
|
179
172
|
getPublicKey?(): PublicKey;
|
|
180
173
|
}
|
|
@@ -186,9 +179,9 @@ export interface SignerAsync {
|
|
|
186
179
|
readonly publicKey: PublicKey;
|
|
187
180
|
readonly network?: Network | undefined;
|
|
188
181
|
|
|
189
|
-
sign(hash:
|
|
182
|
+
sign(hash: MessageHash, lowR?: boolean): Promise<Signature>;
|
|
190
183
|
|
|
191
|
-
signSchnorr?(hash:
|
|
184
|
+
signSchnorr?(hash: MessageHash): Promise<SchnorrSignature>;
|
|
192
185
|
|
|
193
186
|
getPublicKey?(): PublicKey;
|
|
194
187
|
}
|
|
@@ -206,7 +199,7 @@ export interface TaprootHashCheckSigner {
|
|
|
206
199
|
/**
|
|
207
200
|
* Internal PSBT cache for computed values.
|
|
208
201
|
*/
|
|
209
|
-
export interface
|
|
202
|
+
export interface PsbtCacheInterface {
|
|
210
203
|
nonWitnessUtxoTxCache: Transaction[];
|
|
211
204
|
nonWitnessUtxoBufCache: Uint8Array[];
|
|
212
205
|
txInCache: TxInCacheMap;
|
package/src/psbt/validation.ts
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { PsbtInput } from 'bip174';
|
|
7
|
-
import {
|
|
8
|
-
import * as payments from '../payments/index.js';
|
|
7
|
+
import { equals, reverse, toHex } from '../io/index.js';
|
|
9
8
|
import type { P2SHPayment, Payment, PaymentOpts } from '../payments/index.js';
|
|
9
|
+
import * as payments from '../payments/index.js';
|
|
10
10
|
import { checkTaprootInputForSigs, isTaprootInput } from './bip371.js';
|
|
11
11
|
import { checkInputForSig, pubkeyInScript } from './psbtutils.js';
|
|
12
12
|
import * as bscript from '../script.js';
|
|
13
13
|
import type { Transaction } from '../transaction.js';
|
|
14
|
-
import type { PsbtCache } from './types.js';
|
|
14
|
+
import type { PsbtCacheInterface as PsbtCache } from './types.js';
|
|
15
15
|
import type { PublicKey, Script } from '../types.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -142,9 +142,7 @@ export function checkPartialSigSighashes(input: PsbtInput): void {
|
|
|
142
142
|
*/
|
|
143
143
|
export function checkScriptForPubkey(pubkey: PublicKey, script: Script, action: string): void {
|
|
144
144
|
if (!pubkeyInScript(pubkey, script)) {
|
|
145
|
-
throw new Error(
|
|
146
|
-
`Can not ${action} for this input with the key ${toHex(pubkey)}`,
|
|
147
|
-
);
|
|
145
|
+
throw new Error(`Can not ${action} for this input with the key ${toHex(pubkey)}`);
|
|
148
146
|
}
|
|
149
147
|
}
|
|
150
148
|
|
|
@@ -157,12 +155,7 @@ export function checkScriptForPubkey(pubkey: PublicKey, script: Script, action:
|
|
|
157
155
|
export function scriptCheckerFactory(
|
|
158
156
|
payment: (a: Omit<Payment, 'name'>, opts?: PaymentOpts) => Payment,
|
|
159
157
|
paymentScriptName: string,
|
|
160
|
-
): (
|
|
161
|
-
idx: number,
|
|
162
|
-
scriptPubKey: Script,
|
|
163
|
-
redeemScript: Script,
|
|
164
|
-
ioType: 'input' | 'output',
|
|
165
|
-
) => void {
|
|
158
|
+
): (idx: number, scriptPubKey: Script, redeemScript: Script, ioType: 'input' | 'output') => void {
|
|
166
159
|
return (
|
|
167
160
|
inputIndex: number,
|
|
168
161
|
scriptPubKey: Script,
|