@btc-vision/bitcoin 7.0.0-alpha.1 → 7.0.0-alpha.10

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 (290) hide show
  1. package/README.md +455 -155
  2. package/browser/address.d.ts +5 -1
  3. package/browser/address.d.ts.map +1 -1
  4. package/browser/branded.d.ts +3 -14
  5. package/browser/branded.d.ts.map +1 -1
  6. package/browser/chunks/psbt-parallel-BBFlkmiv.js +10717 -0
  7. package/browser/ecc/context.d.ts +22 -21
  8. package/browser/ecc/context.d.ts.map +1 -1
  9. package/browser/ecc/index.d.ts +1 -1
  10. package/browser/ecc/index.d.ts.map +1 -1
  11. package/browser/ecc/types.d.ts +10 -123
  12. package/browser/ecc/types.d.ts.map +1 -1
  13. package/browser/env.d.ts +13 -0
  14. package/browser/env.d.ts.map +1 -0
  15. package/browser/index.d.ts +6 -6
  16. package/browser/index.d.ts.map +1 -1
  17. package/browser/index.js +2602 -11786
  18. package/browser/io/hex.d.ts.map +1 -1
  19. package/browser/io/index.d.ts +0 -1
  20. package/browser/io/index.d.ts.map +1 -1
  21. package/browser/opcodes.d.ts +11 -0
  22. package/browser/opcodes.d.ts.map +1 -1
  23. package/browser/payments/p2tr.d.ts.map +1 -1
  24. package/browser/psbt/PsbtCache.d.ts +54 -0
  25. package/browser/psbt/PsbtCache.d.ts.map +1 -0
  26. package/browser/psbt/PsbtFinalizer.d.ts +21 -0
  27. package/browser/psbt/PsbtFinalizer.d.ts.map +1 -0
  28. package/browser/psbt/PsbtSigner.d.ts +32 -0
  29. package/browser/psbt/PsbtSigner.d.ts.map +1 -0
  30. package/browser/psbt/PsbtTransaction.d.ts +25 -0
  31. package/browser/psbt/PsbtTransaction.d.ts.map +1 -0
  32. package/browser/psbt/types.d.ts +4 -70
  33. package/browser/psbt/types.d.ts.map +1 -1
  34. package/browser/psbt/validation.d.ts +1 -1
  35. package/browser/psbt/validation.d.ts.map +1 -1
  36. package/browser/psbt.d.ts +26 -40
  37. package/browser/psbt.d.ts.map +1 -1
  38. package/browser/script.d.ts.map +1 -1
  39. package/browser/transaction.d.ts +4 -4
  40. package/browser/transaction.d.ts.map +1 -1
  41. package/browser/types.d.ts +5 -3
  42. package/browser/types.d.ts.map +1 -1
  43. package/browser/workers/WorkerSigningPool.d.ts +7 -0
  44. package/browser/workers/WorkerSigningPool.d.ts.map +1 -1
  45. package/browser/workers/WorkerSigningPool.node.d.ts +7 -0
  46. package/browser/workers/WorkerSigningPool.node.d.ts.map +1 -1
  47. package/browser/workers/WorkerSigningPool.sequential.d.ts +67 -0
  48. package/browser/workers/WorkerSigningPool.sequential.d.ts.map +1 -0
  49. package/browser/workers/WorkerSigningPool.worklet.d.ts +64 -0
  50. package/browser/workers/WorkerSigningPool.worklet.d.ts.map +1 -0
  51. package/browser/workers/index.browser.d.ts +16 -0
  52. package/browser/workers/index.browser.d.ts.map +1 -0
  53. package/browser/workers/index.d.ts +4 -64
  54. package/browser/workers/index.d.ts.map +1 -1
  55. package/browser/workers/index.js +28 -0
  56. package/browser/workers/index.node.d.ts +17 -0
  57. package/browser/workers/index.node.d.ts.map +1 -0
  58. package/browser/workers/index.react-native.d.ts +28 -0
  59. package/browser/workers/index.react-native.d.ts.map +1 -0
  60. package/browser/workers/index.shared.d.ts +15 -0
  61. package/browser/workers/index.shared.d.ts.map +1 -0
  62. package/browser/workers/psbt-parallel.d.ts +2 -3
  63. package/browser/workers/psbt-parallel.d.ts.map +1 -1
  64. package/browser/workers/types.d.ts +17 -0
  65. package/browser/workers/types.d.ts.map +1 -1
  66. package/build/address.d.ts +5 -1
  67. package/build/address.d.ts.map +1 -1
  68. package/build/address.js +29 -17
  69. package/build/address.js.map +1 -1
  70. package/build/bech32utils.js.map +1 -1
  71. package/build/block.js.map +1 -1
  72. package/build/branded.d.ts +3 -14
  73. package/build/branded.d.ts.map +1 -1
  74. package/build/branded.js +0 -5
  75. package/build/branded.js.map +1 -1
  76. package/build/ecc/context.d.ts +22 -21
  77. package/build/ecc/context.d.ts.map +1 -1
  78. package/build/ecc/context.js +23 -95
  79. package/build/ecc/context.js.map +1 -1
  80. package/build/ecc/index.d.ts +1 -1
  81. package/build/ecc/index.d.ts.map +1 -1
  82. package/build/ecc/types.d.ts +7 -126
  83. package/build/ecc/types.d.ts.map +1 -1
  84. package/build/ecc/types.js +4 -1
  85. package/build/ecc/types.js.map +1 -1
  86. package/build/env.d.ts +13 -0
  87. package/build/env.d.ts.map +1 -0
  88. package/build/env.js +198 -0
  89. package/build/env.js.map +1 -0
  90. package/build/index.d.ts +7 -6
  91. package/build/index.d.ts.map +1 -1
  92. package/build/index.js +7 -5
  93. package/build/index.js.map +1 -1
  94. package/build/io/hex.d.ts.map +1 -1
  95. package/build/io/hex.js +2 -1
  96. package/build/io/hex.js.map +1 -1
  97. package/build/io/index.d.ts +0 -1
  98. package/build/io/index.d.ts.map +1 -1
  99. package/build/io/index.js +0 -2
  100. package/build/io/index.js.map +1 -1
  101. package/build/opcodes.d.ts +11 -0
  102. package/build/opcodes.d.ts.map +1 -1
  103. package/build/opcodes.js +19 -4
  104. package/build/opcodes.js.map +1 -1
  105. package/build/payments/bip341.js.map +1 -1
  106. package/build/payments/embed.js.map +1 -1
  107. package/build/payments/p2ms.js.map +1 -1
  108. package/build/payments/p2pk.js.map +1 -1
  109. package/build/payments/p2pkh.js.map +1 -1
  110. package/build/payments/p2sh.js.map +1 -1
  111. package/build/payments/p2tr.d.ts.map +1 -1
  112. package/build/payments/p2tr.js +2 -3
  113. package/build/payments/p2tr.js.map +1 -1
  114. package/build/payments/p2wpkh.js.map +1 -1
  115. package/build/payments/p2wsh.js.map +1 -1
  116. package/build/psbt/PsbtCache.d.ts +54 -0
  117. package/build/psbt/PsbtCache.d.ts.map +1 -0
  118. package/build/psbt/PsbtCache.js +249 -0
  119. package/build/psbt/PsbtCache.js.map +1 -0
  120. package/build/psbt/PsbtFinalizer.d.ts +21 -0
  121. package/build/psbt/PsbtFinalizer.d.ts.map +1 -0
  122. package/build/psbt/PsbtFinalizer.js +157 -0
  123. package/build/psbt/PsbtFinalizer.js.map +1 -0
  124. package/build/psbt/PsbtSigner.d.ts +32 -0
  125. package/build/psbt/PsbtSigner.d.ts.map +1 -0
  126. package/build/psbt/PsbtSigner.js +192 -0
  127. package/build/psbt/PsbtSigner.js.map +1 -0
  128. package/build/psbt/PsbtTransaction.d.ts +25 -0
  129. package/build/psbt/PsbtTransaction.d.ts.map +1 -0
  130. package/build/psbt/PsbtTransaction.js +61 -0
  131. package/build/psbt/PsbtTransaction.js.map +1 -0
  132. package/build/psbt/types.d.ts +4 -70
  133. package/build/psbt/types.d.ts.map +1 -1
  134. package/build/psbt/validation.d.ts +1 -1
  135. package/build/psbt/validation.d.ts.map +1 -1
  136. package/build/psbt.d.ts +26 -40
  137. package/build/psbt.d.ts.map +1 -1
  138. package/build/psbt.js +177 -799
  139. package/build/psbt.js.map +1 -1
  140. package/build/script.d.ts.map +1 -1
  141. package/build/script.js +2 -2
  142. package/build/script.js.map +1 -1
  143. package/build/transaction.d.ts +4 -4
  144. package/build/transaction.d.ts.map +1 -1
  145. package/build/transaction.js +5 -4
  146. package/build/transaction.js.map +1 -1
  147. package/build/tsconfig.build.tsbuildinfo +1 -1
  148. package/build/types.d.ts +5 -3
  149. package/build/types.d.ts.map +1 -1
  150. package/build/types.js +11 -16
  151. package/build/types.js.map +1 -1
  152. package/build/workers/WorkerSigningPool.d.ts +7 -0
  153. package/build/workers/WorkerSigningPool.d.ts.map +1 -1
  154. package/build/workers/WorkerSigningPool.js +12 -1
  155. package/build/workers/WorkerSigningPool.js.map +1 -1
  156. package/build/workers/WorkerSigningPool.node.d.ts +7 -0
  157. package/build/workers/WorkerSigningPool.node.d.ts.map +1 -1
  158. package/build/workers/WorkerSigningPool.node.js +37 -5
  159. package/build/workers/WorkerSigningPool.node.js.map +1 -1
  160. package/build/workers/WorkerSigningPool.sequential.d.ts +76 -0
  161. package/build/workers/WorkerSigningPool.sequential.d.ts.map +1 -0
  162. package/build/workers/WorkerSigningPool.sequential.js +160 -0
  163. package/build/workers/WorkerSigningPool.sequential.js.map +1 -0
  164. package/build/workers/WorkerSigningPool.worklet.d.ts +79 -0
  165. package/build/workers/WorkerSigningPool.worklet.d.ts.map +1 -0
  166. package/build/workers/WorkerSigningPool.worklet.js +390 -0
  167. package/build/workers/WorkerSigningPool.worklet.js.map +1 -0
  168. package/build/workers/index.browser.d.ts +24 -0
  169. package/build/workers/index.browser.d.ts.map +1 -0
  170. package/build/workers/index.browser.js +30 -0
  171. package/build/workers/index.browser.js.map +1 -0
  172. package/build/workers/index.d.ts +6 -18
  173. package/build/workers/index.d.ts.map +1 -1
  174. package/build/workers/index.js +12 -14
  175. package/build/workers/index.js.map +1 -1
  176. package/build/workers/index.node.d.ts +38 -0
  177. package/build/workers/index.node.d.ts.map +1 -0
  178. package/build/workers/index.node.js +45 -0
  179. package/build/workers/index.node.js.map +1 -0
  180. package/build/workers/index.react-native.d.ts +28 -0
  181. package/build/workers/index.react-native.d.ts.map +1 -0
  182. package/build/workers/index.react-native.js +67 -0
  183. package/build/workers/index.react-native.js.map +1 -0
  184. package/build/workers/index.shared.d.ts +15 -0
  185. package/build/workers/index.shared.d.ts.map +1 -0
  186. package/build/workers/index.shared.js +20 -0
  187. package/build/workers/index.shared.js.map +1 -0
  188. package/build/workers/psbt-parallel.d.ts +2 -3
  189. package/build/workers/psbt-parallel.d.ts.map +1 -1
  190. package/build/workers/psbt-parallel.js +4 -4
  191. package/build/workers/psbt-parallel.js.map +1 -1
  192. package/build/workers/types.d.ts +17 -0
  193. package/build/workers/types.d.ts.map +1 -1
  194. package/package.json +46 -8
  195. package/src/address.ts +41 -18
  196. package/src/bech32utils.ts +3 -3
  197. package/src/block.ts +2 -2
  198. package/src/branded.ts +15 -13
  199. package/src/ecc/context.ts +30 -133
  200. package/src/ecc/index.ts +2 -2
  201. package/src/ecc/types.ts +7 -138
  202. package/src/env.ts +239 -0
  203. package/src/index.ts +45 -9
  204. package/src/io/hex.ts +2 -1
  205. package/src/io/index.ts +0 -3
  206. package/src/opcodes.ts +21 -4
  207. package/src/payments/bip341.ts +3 -3
  208. package/src/payments/embed.ts +1 -1
  209. package/src/payments/p2ms.ts +2 -2
  210. package/src/payments/p2pk.ts +2 -2
  211. package/src/payments/p2pkh.ts +3 -3
  212. package/src/payments/p2sh.ts +4 -4
  213. package/src/payments/p2tr.ts +9 -9
  214. package/src/payments/p2wpkh.ts +5 -5
  215. package/src/payments/p2wsh.ts +2 -2
  216. package/src/psbt/PsbtCache.ts +325 -0
  217. package/src/psbt/PsbtFinalizer.ts +213 -0
  218. package/src/psbt/PsbtSigner.ts +302 -0
  219. package/src/psbt/PsbtTransaction.ts +82 -0
  220. package/src/psbt/types.ts +4 -86
  221. package/src/psbt/validation.ts +1 -1
  222. package/src/psbt.ts +349 -1198
  223. package/src/script.ts +2 -2
  224. package/src/transaction.ts +10 -9
  225. package/src/types.ts +18 -28
  226. package/src/workers/WorkerSigningPool.node.ts +41 -5
  227. package/src/workers/WorkerSigningPool.sequential.ts +191 -0
  228. package/src/workers/WorkerSigningPool.ts +14 -1
  229. package/src/workers/WorkerSigningPool.worklet.ts +522 -0
  230. package/src/workers/index.browser.ts +34 -0
  231. package/src/workers/index.node.ts +50 -0
  232. package/src/workers/index.react-native.ts +110 -0
  233. package/src/workers/index.shared.ts +58 -0
  234. package/src/workers/index.ts +14 -65
  235. package/src/workers/psbt-parallel.ts +7 -7
  236. package/src/workers/types.ts +21 -0
  237. package/test/address.spec.ts +2 -2
  238. package/test/bitcoin.core.spec.ts +5 -2
  239. package/test/browser/payments.spec.ts +151 -0
  240. package/test/browser/psbt.spec.ts +1510 -0
  241. package/test/browser/script.spec.ts +223 -0
  242. package/test/browser/setup.ts +13 -0
  243. package/test/browser/workers-signing.spec.ts +537 -0
  244. package/test/crypto.spec.ts +2 -2
  245. package/test/env.spec.ts +418 -0
  246. package/test/fixtures/core/base58_encode_decode.json +12 -48
  247. package/test/fixtures/core/base58_keys_invalid.json +50 -150
  248. package/test/fixtures/core/sighash.json +1 -3
  249. package/test/fixtures/core/tx_valid.json +133 -501
  250. package/test/fixtures/embed.json +3 -11
  251. package/test/fixtures/p2ms.json +21 -91
  252. package/test/fixtures/p2pk.json +5 -24
  253. package/test/fixtures/p2pkh.json +7 -36
  254. package/test/fixtures/p2sh.json +8 -54
  255. package/test/fixtures/p2tr.json +2 -6
  256. package/test/fixtures/p2wpkh.json +7 -36
  257. package/test/fixtures/p2wsh.json +14 -59
  258. package/test/fixtures/psbt.json +2 -6
  259. package/test/fixtures/script.json +12 -48
  260. package/test/integration/addresses.spec.ts +11 -5
  261. package/test/integration/bip32.spec.ts +1 -1
  262. package/test/integration/cltv.spec.ts +10 -6
  263. package/test/integration/csv.spec.ts +10 -9
  264. package/test/integration/payments.spec.ts +8 -4
  265. package/test/integration/taproot.spec.ts +26 -6
  266. package/test/integration/transactions.spec.ts +22 -8
  267. package/test/payments.spec.ts +1 -1
  268. package/test/payments.utils.ts +1 -1
  269. package/test/psbt.spec.ts +250 -64
  270. package/test/script_signature.spec.ts +1 -1
  271. package/test/transaction.spec.ts +18 -5
  272. package/test/tsconfig.json +6 -20
  273. package/test/workers-pool.spec.ts +65 -23
  274. package/test/workers-sequential.spec.ts +669 -0
  275. package/test/workers-signing.spec.ts +7 -3
  276. package/test/workers-worklet.spec.ts +500 -0
  277. package/test/workers.spec.ts +6 -7
  278. package/typedoc.json +11 -1
  279. package/vite.config.browser.ts +31 -6
  280. package/vitest.config.browser.ts +68 -0
  281. package/browser/ecpair.d.ts +0 -99
  282. package/browser/io/MemoryPool.d.ts +0 -220
  283. package/browser/io/MemoryPool.d.ts.map +0 -1
  284. package/build/io/MemoryPool.d.ts +0 -220
  285. package/build/io/MemoryPool.d.ts.map +0 -1
  286. package/build/io/MemoryPool.js +0 -309
  287. package/build/io/MemoryPool.js.map +0 -1
  288. package/src/ecpair.d.ts +0 -99
  289. package/src/io/MemoryPool.ts +0 -343
  290. package/test/taproot-cache.spec.ts +0 -694
@@ -0,0 +1,192 @@
1
+ import { checkForInput } from 'bip174';
2
+ import { equals, toHex } from '../io/index.js';
3
+ import * as payments from '../payments/index.js';
4
+ import { tapleafHash } from '../payments/bip341.js';
5
+ import { toXOnly } from '../pubkey.js';
6
+ import { isP2WPKH, pubkeyInScript } from './psbtutils.js';
7
+ import { getMeaningfulScript, sighashTypeToString } from './utils.js';
8
+ import { checkScriptForPubkey } from './validation.js';
9
+ import { Transaction } from '../transaction.js';
10
+ /**
11
+ * Class wrapping all signing-related logic for PSBT.
12
+ */
13
+ export class PsbtSigner {
14
+ #cache;
15
+ #txFromBuffer;
16
+ constructor(cache, txFromBuffer) {
17
+ this.#cache = cache;
18
+ this.#txFromBuffer = txFromBuffer;
19
+ }
20
+ getHashAndSighashType(inputs, inputIndex, pubkey, sighashTypes) {
21
+ const input = checkForInput(inputs, inputIndex);
22
+ const { hash, sighashType, script } = this.getHashForSig(inputIndex, input, false, sighashTypes);
23
+ checkScriptForPubkey(pubkey, script, 'sign');
24
+ return { hash, sighashType };
25
+ }
26
+ getHashForSig(inputIndex, input, forValidate, sighashTypes) {
27
+ const unsignedTx = this.#cache.tx;
28
+ const sighashType = input.sighashType || Transaction.SIGHASH_ALL;
29
+ checkSighashTypeAllowed(sighashType, sighashTypes);
30
+ let hash;
31
+ let prevout;
32
+ if (input.nonWitnessUtxo) {
33
+ const nonWitnessUtxoTx = this.#cache.getNonWitnessUtxoTx(input, inputIndex, this.#txFromBuffer);
34
+ const prevoutHash = unsignedTx.ins[inputIndex].hash;
35
+ const utxoHash = nonWitnessUtxoTx.getHash();
36
+ if (!equals(prevoutHash, utxoHash)) {
37
+ throw new Error(`Non-witness UTXO hash for input #${inputIndex} doesn't match the hash specified in the prevout`);
38
+ }
39
+ const prevoutIndex = unsignedTx.ins[inputIndex].index;
40
+ prevout = nonWitnessUtxoTx.outs[prevoutIndex];
41
+ }
42
+ else if (input.witnessUtxo) {
43
+ prevout = {
44
+ script: input.witnessUtxo.script,
45
+ value: input.witnessUtxo.value,
46
+ };
47
+ }
48
+ else {
49
+ throw new Error('Need a Utxo input item for signing');
50
+ }
51
+ const { meaningfulScript, type } = getMeaningfulScript(prevout.script, inputIndex, 'input', input.redeemScript, input.witnessScript);
52
+ const script = meaningfulScript;
53
+ if (['p2sh-p2wsh', 'p2wsh'].includes(type)) {
54
+ hash = unsignedTx.hashForWitnessV0(inputIndex, script, prevout.value, sighashType);
55
+ }
56
+ else if (isP2WPKH(meaningfulScript)) {
57
+ const p2pkhPayment = payments.p2pkh({
58
+ hash: meaningfulScript.subarray(2),
59
+ });
60
+ if (!p2pkhPayment.output)
61
+ throw new Error('Unable to create signing script');
62
+ hash = unsignedTx.hashForWitnessV0(inputIndex, p2pkhPayment.output, prevout.value, sighashType);
63
+ }
64
+ else {
65
+ // non-segwit
66
+ if (input.nonWitnessUtxo === undefined && !this.#cache.unsafeSignNonSegwit)
67
+ throw new Error(`Input #${inputIndex} has witnessUtxo but non-segwit script: ` +
68
+ toHex(meaningfulScript));
69
+ if (!forValidate && this.#cache.unsafeSignNonSegwit)
70
+ console.warn('Warning: Signing non-segwit inputs without the full parent transaction ' +
71
+ 'means there is a chance that a miner could feed you incorrect information ' +
72
+ "to trick you into paying large fees. This behavior is the same as Psbt's predecessor " +
73
+ '(TransactionBuilder - now removed) when signing non-segwit scripts. You are not ' +
74
+ 'able to export this Psbt with toBuffer|toBase64|toHex since it is not ' +
75
+ 'BIP174 compliant.\n*********************\nPROCEED WITH CAUTION!\n' +
76
+ '*********************');
77
+ hash = unsignedTx.hashForSignature(inputIndex, script, sighashType);
78
+ }
79
+ return { script, sighashType, hash };
80
+ }
81
+ getTaprootHashesForSig(inputIndex, input, inputs, pubkey, tapLeafHashToSign, allowedSighashTypes) {
82
+ const unsignedTx = this.#cache.tx;
83
+ const sighashType = input.sighashType || Transaction.SIGHASH_DEFAULT;
84
+ checkSighashTypeAllowed(sighashType, allowedSighashTypes);
85
+ if (!this.#cache.prevOuts) {
86
+ const prevOuts = inputs.map((i, index) => this.#cache.getScriptAndAmountFromUtxo(index, i, this.#txFromBuffer));
87
+ this.#cache.prevOuts = prevOuts;
88
+ this.#cache.signingScripts = prevOuts.map((o) => o.script);
89
+ this.#cache.values = prevOuts.map((o) => o.value);
90
+ }
91
+ const signingScripts = this.#cache.signingScripts;
92
+ const values = this.#cache.values;
93
+ if (!this.#cache.taprootHashCache) {
94
+ this.#cache.taprootHashCache = unsignedTx.getTaprootHashCache(signingScripts, values);
95
+ }
96
+ const taprootCache = this.#cache.taprootHashCache;
97
+ const hashes = [];
98
+ if (input.tapInternalKey && !tapLeafHashToSign) {
99
+ const outputKey = this.#cache.getPrevoutTaprootKey(inputIndex, input, this.#txFromBuffer) ||
100
+ new Uint8Array(0);
101
+ if (equals(toXOnly(pubkey), outputKey)) {
102
+ const tapKeyHash = unsignedTx.hashForWitnessV1(inputIndex, signingScripts, values, sighashType, undefined, undefined, taprootCache);
103
+ hashes.push({ pubkey: pubkey, hash: tapKeyHash });
104
+ }
105
+ }
106
+ const tapLeafHashes = (input.tapLeafScript || [])
107
+ .filter((tapLeaf) => pubkeyInScript(pubkey, tapLeaf.script))
108
+ .map((tapLeaf) => {
109
+ const hash = tapleafHash({
110
+ output: tapLeaf.script,
111
+ version: tapLeaf.leafVersion,
112
+ });
113
+ return Object.assign({ hash }, tapLeaf);
114
+ })
115
+ .filter((tapLeaf) => !tapLeafHashToSign || equals(tapLeafHashToSign, tapLeaf.hash))
116
+ .map((tapLeaf) => {
117
+ const tapScriptHash = unsignedTx.hashForWitnessV1(inputIndex, signingScripts, values, sighashType, tapLeaf.hash, undefined, taprootCache);
118
+ return {
119
+ pubkey: pubkey,
120
+ hash: tapScriptHash,
121
+ leafHash: tapLeaf.hash,
122
+ };
123
+ });
124
+ return hashes.concat(tapLeafHashes);
125
+ }
126
+ getAllTaprootHashesForSig(inputIndex, input, inputs) {
127
+ const allPublicKeys = [];
128
+ if (input.tapInternalKey) {
129
+ const key = this.#cache.getPrevoutTaprootKey(inputIndex, input, this.#txFromBuffer);
130
+ if (key) {
131
+ allPublicKeys.push(key);
132
+ }
133
+ }
134
+ if (input.tapScriptSig) {
135
+ const tapScriptPubkeys = input.tapScriptSig.map((tss) => tss.pubkey);
136
+ allPublicKeys.push(...tapScriptPubkeys);
137
+ }
138
+ const allHashes = allPublicKeys.map((pubicKey) => this.getTaprootHashesForSig(inputIndex, input, inputs, pubicKey));
139
+ return allHashes.flat();
140
+ }
141
+ trimTaprootSig(signature) {
142
+ return signature.length === 64 ? signature : signature.subarray(0, 64);
143
+ }
144
+ getSignersFromHD(inputIndex, inputs, hdKeyPair) {
145
+ const input = checkForInput(inputs, inputIndex);
146
+ if (!input.bip32Derivation || input.bip32Derivation.length === 0) {
147
+ throw new Error('Need bip32Derivation to sign with HD');
148
+ }
149
+ const myDerivations = input.bip32Derivation
150
+ .map((bipDv) => {
151
+ if (equals(bipDv.masterFingerprint, hdKeyPair.fingerprint)) {
152
+ return bipDv;
153
+ }
154
+ else {
155
+ return;
156
+ }
157
+ })
158
+ .filter((v) => !!v);
159
+ if (myDerivations.length === 0) {
160
+ throw new Error('Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint');
161
+ }
162
+ return myDerivations.map((bipDv) => {
163
+ const node = hdKeyPair.derivePath(bipDv.path);
164
+ if (!equals(bipDv.pubkey, node.publicKey)) {
165
+ throw new Error('pubkey did not match bip32Derivation');
166
+ }
167
+ return node;
168
+ });
169
+ }
170
+ bip32DerivationIsMine(root) {
171
+ return (d) => {
172
+ const fingerprint = root.fingerprint instanceof Uint8Array
173
+ ? root.fingerprint
174
+ : new Uint8Array(root.fingerprint);
175
+ if (!equals(d.masterFingerprint, fingerprint))
176
+ return false;
177
+ const derivedPubkey = root.derivePath(d.path).publicKey;
178
+ const pubkey = derivedPubkey instanceof Uint8Array ? derivedPubkey : new Uint8Array(derivedPubkey);
179
+ if (!equals(pubkey, d.pubkey))
180
+ return false;
181
+ return true;
182
+ };
183
+ }
184
+ }
185
+ function checkSighashTypeAllowed(sighashType, sighashTypes) {
186
+ if (sighashTypes && !sighashTypes.includes(sighashType)) {
187
+ const str = sighashTypeToString(sighashType);
188
+ throw new Error(`Sighash type is not allowed. Retry the sign method passing the ` +
189
+ `sighashTypes array of whitelisted types. Sighash type: ${str}`);
190
+ }
191
+ }
192
+ //# sourceMappingURL=PsbtSigner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PsbtSigner.js","sourceRoot":"","sources":["../../src/psbt/PsbtSigner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Transaction as ITransaction, TransactionFromBuffer } from 'bip174';
2
+ import { Transaction } from '../transaction.js';
3
+ import type { TransactionInput, TransactionOutput } from './types.js';
4
+ /**
5
+ * This class implements the Transaction interface from bip174 library.
6
+ * It contains a bitcoinjs-lib Transaction object.
7
+ */
8
+ export declare class PsbtTransaction implements ITransaction {
9
+ tx: Transaction;
10
+ constructor(buffer?: Uint8Array);
11
+ getInputOutputCounts(): {
12
+ inputCount: number;
13
+ outputCount: number;
14
+ };
15
+ addInput(input: TransactionInput): void;
16
+ addOutput(output: TransactionOutput): void;
17
+ toBuffer(): Uint8Array;
18
+ }
19
+ /**
20
+ * This function is needed to pass to the bip174 base class's fromBuffer.
21
+ * It takes the "transaction buffer" portion of the psbt buffer and returns a
22
+ * Transaction (From the bip174 library) interface.
23
+ */
24
+ export declare const transactionFromBuffer: TransactionFromBuffer;
25
+ //# sourceMappingURL=PsbtTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PsbtTransaction.d.ts","sourceRoot":"","sources":["../../src/psbt/PsbtTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,YAAY,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAWtE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,YAAY;IACzC,EAAE,EAAE,WAAW,CAAC;gBAEJ,MAAM,GAAE,UAAwB;IAS5C,oBAAoB,IAAI;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACvB;IAOM,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAgBvC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAY1C,QAAQ,IAAI,UAAU;CAGhC;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBACL,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { fromHex, reverse } from '../io/index.js';
2
+ import { Transaction } from '../transaction.js';
3
+ import { checkTxEmpty } from './validation.js';
4
+ /**
5
+ * Empty version-2 transaction with zero inputs and zero outputs.
6
+ * Used as the default buffer when constructing a new PsbtTransaction.
7
+ *
8
+ * Layout: [version(4LE)] [inputCount(varint)] [outputCount(varint)] [locktime(4LE)]
9
+ * [02 00 00 00] [00] [00] [00 00 00 00]
10
+ */
11
+ const EMPTY_TX_V2 = new Uint8Array([2, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
12
+ /**
13
+ * This class implements the Transaction interface from bip174 library.
14
+ * It contains a bitcoinjs-lib Transaction object.
15
+ */
16
+ export class PsbtTransaction {
17
+ tx;
18
+ constructor(buffer = EMPTY_TX_V2) {
19
+ this.tx = Transaction.fromBuffer(buffer);
20
+ checkTxEmpty(this.tx);
21
+ Object.defineProperty(this, 'tx', {
22
+ enumerable: false,
23
+ writable: true,
24
+ });
25
+ }
26
+ getInputOutputCounts() {
27
+ return {
28
+ inputCount: this.tx.ins.length,
29
+ outputCount: this.tx.outs.length,
30
+ };
31
+ }
32
+ addInput(input) {
33
+ if (input.hash === undefined ||
34
+ input.index === undefined ||
35
+ (!(input.hash instanceof Uint8Array) && typeof input.hash !== 'string') ||
36
+ typeof input.index !== 'number') {
37
+ throw new Error('Error adding input.');
38
+ }
39
+ const hash = (typeof input.hash === 'string' ? reverse(fromHex(input.hash)) : input.hash);
40
+ this.tx.addInput(hash, input.index, input.sequence);
41
+ }
42
+ addOutput(output) {
43
+ if (output.script === undefined ||
44
+ output.value === undefined ||
45
+ !(output.script instanceof Uint8Array) ||
46
+ typeof output.value !== 'bigint') {
47
+ throw new Error('Error adding output.');
48
+ }
49
+ this.tx.addOutput(output.script, output.value);
50
+ }
51
+ toBuffer() {
52
+ return this.tx.toBuffer();
53
+ }
54
+ }
55
+ /**
56
+ * This function is needed to pass to the bip174 base class's fromBuffer.
57
+ * It takes the "transaction buffer" portion of the psbt buffer and returns a
58
+ * Transaction (From the bip174 library) interface.
59
+ */
60
+ export const transactionFromBuffer = (buffer) => new PsbtTransaction(buffer);
61
+ //# sourceMappingURL=PsbtTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PsbtTransaction.js","sourceRoot":"","sources":["../../src/psbt/PsbtTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,OAAO,eAAe;IACjB,EAAE,CAAc;IAEvB,YAAmB,SAAqB,WAAW;QAC/C,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC;IAEM,oBAAoB;QAIvB,OAAO;YACH,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;YAC9B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;SACnC,CAAC;IACN,CAAC;IAEM,QAAQ,CAAC,KAAuB;QACnC,IACI,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,KAAK,KAAK,SAAS;YACzB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,UAAU,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;YACvE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EACjC,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,GAAG,CACT,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAClE,CAAC;QAEb,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEM,SAAS,CAAC,MAAyB;QACtC,IACI,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,YAAY,UAAU,CAAC;YACtC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAClC,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,CAAC,MAAkB,EAAgB,EAAE,CAC7F,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  import type { Psbt as PsbtBase, PsbtGlobal, PsbtInput, PsbtOutput } from 'bip174';
6
6
  import type { Network } from '../networks.js';
7
7
  import type { TaprootHashCache, Transaction } from '../transaction.js';
8
- import type { Bytes32, PublicKey, Satoshi, SchnorrSignature, Script, Signature } from '../types.js';
8
+ import type { Bytes32, MessageHash, PublicKey, Satoshi, Script } from '../types.js';
9
9
  /**
10
10
  * Transaction input interface for PSBT.
11
11
  */
@@ -37,7 +37,7 @@ export interface PsbtTxOutput extends TransactionOutput {
37
37
  * Signature validation function type.
38
38
  * msghash is 32 byte hash of preimage, signature is 64 byte compact signature (r,s 32 bytes each)
39
39
  */
40
- export type ValidateSigFunction = (pubkey: PublicKey, msghash: Bytes32, signature: Uint8Array) => boolean;
40
+ export type ValidateSigFunction = (pubkey: PublicKey, msghash: MessageHash, signature: Uint8Array) => boolean;
41
41
  /**
42
42
  * Extended PsbtBase interface with typed inputs and globalMap.
43
43
  */
@@ -84,72 +84,7 @@ export interface PsbtOutputExtendedScript extends PsbtOutput {
84
84
  readonly script: Script;
85
85
  readonly value: Satoshi;
86
86
  }
87
- /**
88
- * Base interface for HD signers.
89
- */
90
- interface HDSignerBase {
91
- /**
92
- * DER format compressed publicKey Uint8Array
93
- */
94
- readonly publicKey: PublicKey;
95
- /**
96
- * The first 4 bytes of the sha256-ripemd160 of the publicKey
97
- */
98
- readonly fingerprint: Uint8Array;
99
- }
100
- /**
101
- * HD signer interface for synchronous signing.
102
- */
103
- export interface HDSigner extends HDSignerBase {
104
- /**
105
- * The path string must match /^m(\/\d+'?)+$/
106
- * ex. m/44'/0'/0'/1/23 levels with ' must be hard derivations
107
- */
108
- derivePath(path: string): HDSigner;
109
- /**
110
- * Input hash (the "message digest") for the signature algorithm
111
- * Return a 64 byte signature (32 byte r and 32 byte s in that order)
112
- */
113
- sign(hash: Bytes32): Uint8Array;
114
- }
115
- /**
116
- * HD signer interface for asynchronous signing.
117
- */
118
- export interface HDSignerAsync extends HDSignerBase {
119
- derivePath(path: string): HDSignerAsync;
120
- sign(hash: Bytes32): Promise<Uint8Array>;
121
- }
122
- /**
123
- * Alternative signer interface with lowR support.
124
- */
125
- export interface SignerAlternative {
126
- readonly publicKey: PublicKey;
127
- readonly lowR: boolean;
128
- sign(hash: Bytes32, lowR?: boolean): Signature;
129
- verify(hash: Bytes32, signature: Signature): boolean;
130
- signSchnorr(hash: Bytes32): SchnorrSignature;
131
- verifySchnorr(hash: Bytes32, signature: SchnorrSignature): boolean;
132
- }
133
- /**
134
- * Basic signer interface for synchronous signing.
135
- */
136
- export interface Signer {
137
- readonly publicKey: PublicKey;
138
- readonly network?: Network | undefined;
139
- sign(hash: Bytes32, lowR?: boolean): Signature;
140
- signSchnorr?(hash: Bytes32): SchnorrSignature;
141
- getPublicKey?(): PublicKey;
142
- }
143
- /**
144
- * Basic signer interface for asynchronous signing.
145
- */
146
- export interface SignerAsync {
147
- readonly publicKey: PublicKey;
148
- readonly network?: Network | undefined;
149
- sign(hash: Bytes32, lowR?: boolean): Promise<Signature>;
150
- signSchnorr?(hash: Bytes32): Promise<SchnorrSignature>;
151
- getPublicKey?(): PublicKey;
152
- }
87
+ export type { Signer, SignerAsync, HDSigner, HDSignerAsync } from '@btc-vision/ecpair';
153
88
  /**
154
89
  * Minimal key pair interface for checking Taproot hashes.
155
90
  * Only requires publicKey and optional signSchnorr presence check.
@@ -162,7 +97,7 @@ export interface TaprootHashCheckSigner {
162
97
  /**
163
98
  * Internal PSBT cache for computed values.
164
99
  */
165
- export interface PsbtCache {
100
+ export interface PsbtCacheInterface {
166
101
  nonWitnessUtxoTxCache: Transaction[];
167
102
  nonWitnessUtxoBufCache: Uint8Array[];
168
103
  txInCache: TxInCacheMap;
@@ -245,5 +180,4 @@ export type FinalScriptsFunc = (inputIndex: number, input: PsbtInput, script: Sc
245
180
  export type FinalTaprootScriptsFunc = (inputIndex: number, input: PsbtInput, tapLeafHashToFinalize?: Bytes32) => {
246
181
  finalScriptWitness: Uint8Array | undefined;
247
182
  };
248
- export {};
249
183
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/psbt/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/psbt/types.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  import type { PsbtInput } from 'bip174';
6
6
  import type { Payment, PaymentOpts } from '../payments/index.js';
7
7
  import type { Transaction } from '../transaction.js';
8
- import type { PsbtCache } from './types.js';
8
+ import type { PsbtCacheInterface as PsbtCache } from './types.js';
9
9
  import type { PublicKey, Script } from '../types.js';
10
10
  /**
11
11
  * Validates that a number is a valid 32-bit unsigned integer.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/psbt/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAe,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAK9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAIjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAErD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAWlD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAIzE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,OAAO,GAC7B,IAAI,CAaN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAS/D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI5F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,EAClE,iBAAiB,EAAE,MAAM,GAC1B,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,KAAK,IAAI,CAiB/F;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAtBrB,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,UAAU,OAAO,GAAG,QAAQ,KAAK,IAsBP,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,kBAAkB,QA3BtB,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,UAAU,OAAO,GAAG,QAAQ,KAAK,IA2BJ,CAAC"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/psbt/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAe,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAK9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAIjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAErD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAWlD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAIzE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,MAAM,EAAE,SAAS,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,OAAO,GAC7B,IAAI,CAaN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAS/D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI5F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,EAClE,iBAAiB,EAAE,MAAM,GAC1B,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,KAAK,IAAI,CAiB/F;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAtBrB,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,UAAU,OAAO,GAAG,QAAQ,KAAK,IAsBP,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,kBAAkB,QA3BtB,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,UAAU,OAAO,GAAG,QAAQ,KAAK,IA2BJ,CAAC"}
package/build/psbt.d.ts CHANGED
@@ -1,10 +1,21 @@
1
- import type { KeyValue, PartialSig, PsbtGlobalUpdate, PsbtInput, PsbtInputUpdate, PsbtOutputUpdate } from 'bip174';
2
- import type { BIP32Interface } from '@btc-vision/bip32';
3
- import type { ECPairInterface } from 'ecpair';
1
+ import type { KeyValue, PsbtGlobalUpdate, PsbtInput, PsbtInputUpdate, PsbtOutputUpdate } from 'bip174';
4
2
  import { Transaction } from './transaction.js';
5
- import type { Bytes32, PublicKey, Script } from './types.js';
6
- import type { AllScriptType, FinalScriptsFunc, FinalTaprootScriptsFunc, HDSigner, HDSignerAsync, PsbtBaseExtended, PsbtCache, PsbtInputExtended, PsbtOpts, PsbtOptsOptional, PsbtOutputExtended, PsbtTxInput, PsbtTxOutput, Signer, SignerAlternative, SignerAsync, TaprootHashCheckSigner, ValidateSigFunction } from './psbt/types.js';
7
- export type { TransactionInput, PsbtTxInput, TransactionOutput, PsbtTxOutput, ValidateSigFunction, PsbtBaseExtended, PsbtOptsOptional, PsbtOpts, PsbtInputExtended, PsbtOutputExtended, PsbtOutputExtendedAddress, PsbtOutputExtendedScript, HDSigner, HDSignerAsync, SignerAlternative, Signer, SignerAsync, TaprootHashCheckSigner, PsbtCache, TxCacheNumberKey, ScriptType, AllScriptType, GetScriptReturn, FinalScriptsFunc, FinalTaprootScriptsFunc, } from './psbt/types.js';
3
+ import type { Bytes32, MessageHash, PublicKey, Script } from './types.js';
4
+ import type { AllScriptType, FinalScriptsFunc, FinalTaprootScriptsFunc, HDSigner, HDSignerAsync, PsbtBaseExtended, PsbtInputExtended, PsbtOptsOptional, PsbtOutputExtended, PsbtTxInput, PsbtTxOutput, Signer, SignerAsync, TaprootHashCheckSigner, ValidateSigFunction } from './psbt/types.js';
5
+ export type { TransactionInput, PsbtTxInput, TransactionOutput, PsbtTxOutput, ValidateSigFunction, PsbtBaseExtended, PsbtOptsOptional, PsbtOpts, PsbtInputExtended, PsbtOutputExtended, PsbtOutputExtendedScript, HDSigner, HDSignerAsync, Signer, SignerAsync, TaprootHashCheckSigner, PsbtCacheInterface, TxCacheNumberKey, ScriptType, AllScriptType, GetScriptReturn, FinalScriptsFunc, FinalTaprootScriptsFunc, } from './psbt/types.js';
6
+ export { getFinalScripts, prepareFinalScripts };
7
+ export { PsbtCache } from './psbt/PsbtCache.js';
8
+ export { PsbtSigner } from './psbt/PsbtSigner.js';
9
+ export { PsbtFinalizer } from './psbt/PsbtFinalizer.js';
10
+ export { PsbtTransaction, transactionFromBuffer } from './psbt/PsbtTransaction.js';
11
+ declare function getFinalScripts(inputIndex: number, input: PsbtInput, script: Script, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, canRunChecks?: boolean, solution?: Uint8Array[]): {
12
+ finalScriptSig: Script | undefined;
13
+ finalScriptWitness: Uint8Array | undefined;
14
+ };
15
+ declare function prepareFinalScripts(script: Uint8Array, scriptType: string, partialSig: import('bip174').PartialSig[], isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, solution?: Uint8Array[]): {
16
+ finalScriptSig: Script | undefined;
17
+ finalScriptWitness: Uint8Array | undefined;
18
+ };
8
19
  /**
9
20
  * Psbt class can parse and generate a PSBT binary based off of the BIP174.
10
21
  * There are 6 roles that this class fulfills. (Explained in BIP174)
@@ -42,17 +53,10 @@ export type { TransactionInput, PsbtTxInput, TransactionOutput, PsbtTxOutput, Va
42
53
  * Transaction Extractor: This role will perform some checks before returning a
43
54
  * Transaction object. Such as fee rate not being larger than maximumFeeRate etc.
44
55
  */
45
- /**
46
- * Psbt class can parse and generate a PSBT binary based off of the BIP174.
47
- */
48
56
  export declare class Psbt {
49
57
  #private;
50
58
  data: PsbtBaseExtended;
51
59
  constructor(opts?: PsbtOptsOptional, data?: PsbtBaseExtended);
52
- /** @internal - Exposed for testing. Do not use in production code. */
53
- get __CACHE(): PsbtCache;
54
- /** @internal - Exposed for testing. Do not use in production code. */
55
- get opts(): PsbtOpts;
56
60
  get inputCount(): number;
57
61
  get version(): number;
58
62
  set version(version: number);
@@ -65,6 +69,7 @@ export declare class Psbt {
65
69
  static fromBuffer(buffer: Uint8Array, opts?: PsbtOptsOptional): Psbt;
66
70
  combine(...those: Psbt[]): this;
67
71
  clone(): Psbt;
72
+ get maximumFeeRate(): number;
68
73
  setMaximumFeeRate(satoshiPerByte: number): void;
69
74
  setVersion(version: number): this;
70
75
  setVersionTRUC(): this;
@@ -73,17 +78,6 @@ export declare class Psbt {
73
78
  addInputs(inputDatas: PsbtInputExtended[], checkPartialSigs?: boolean): this;
74
79
  addInput(inputData: PsbtInputExtended, checkPartialSigs?: boolean): this;
75
80
  addOutputs(outputDatas: PsbtOutputExtended[], checkPartialSigs?: boolean): this;
76
- /**
77
- * Add an output to the PSBT.
78
- *
79
- * **PERFORMANCE WARNING:** Passing an `address` string is ~10x slower than passing
80
- * a `script` directly due to address parsing overhead (bech32 decode, etc.).
81
- * For high-performance use cases with many outputs, pre-compute the script using
82
- * `toOutputScript(address, network)` and pass `{ script, value }` instead.
83
- *
84
- * @param outputData - Output data with either `address` or `script`, and `value`
85
- * @param checkPartialSigs - Whether to check for existing signatures (default: true)
86
- */
87
81
  addOutput(outputData: PsbtOutputExtended, checkPartialSigs?: boolean): this;
88
82
  extractTransaction(disableFeeCheck?: boolean, disableOutputChecks?: boolean): Transaction;
89
83
  getFeeRate(disableOutputChecks?: boolean): number;
@@ -102,12 +96,12 @@ export declare class Psbt {
102
96
  signAllInputsHDAsync(hdKeyPair: HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
103
97
  signInputHD(inputIndex: number, hdKeyPair: HDSigner, sighashTypes?: number[]): this;
104
98
  signInputHDAsync(inputIndex: number, hdKeyPair: HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
105
- signAllInputs(keyPair: Signer | SignerAlternative | BIP32Interface | ECPairInterface, sighashTypes?: number[]): this;
106
- signAllInputsAsync(keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, sighashTypes?: number[]): Promise<void>;
107
- signInput(inputIndex: number, keyPair: Signer | SignerAlternative | HDSigner | BIP32Interface | ECPairInterface, sighashTypes?: number[]): this;
108
- signTaprootInput(inputIndex: number, keyPair: Signer | SignerAlternative | HDSigner | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Uint8Array, sighashTypes?: number[]): this;
109
- signInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | HDSigner | HDSignerAsync | BIP32Interface | ECPairInterface, sighashTypes?: number[]): Promise<void>;
110
- signTaprootInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | HDSigner | HDSignerAsync | BIP32Interface | ECPairInterface, tapLeafHash?: Uint8Array, sighashTypes?: number[]): Promise<void>;
99
+ signAllInputs(keyPair: Signer | HDSigner, sighashTypes?: number[]): this;
100
+ signAllInputsAsync(keyPair: Signer | SignerAsync | HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
101
+ signInput(inputIndex: number, keyPair: Signer | HDSigner, sighashTypes?: number[]): this;
102
+ signTaprootInput(inputIndex: number, keyPair: Signer | HDSigner, tapLeafHashToSign?: Uint8Array, sighashTypes?: number[]): this;
103
+ signInputAsync(inputIndex: number, keyPair: Signer | SignerAsync | HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
104
+ signTaprootInputAsync(inputIndex: number, keyPair: Signer | SignerAsync | HDSigner | HDSignerAsync, tapLeafHash?: Uint8Array, sighashTypes?: number[]): Promise<void>;
111
105
  toBuffer(): Uint8Array;
112
106
  toHex(): string;
113
107
  toBase64(): string;
@@ -118,17 +112,9 @@ export declare class Psbt {
118
112
  addUnknownKeyValToInput(inputIndex: number, keyVal: KeyValue): this;
119
113
  addUnknownKeyValToOutput(outputIndex: number, keyVal: KeyValue): this;
120
114
  clearFinalizedInput(inputIndex: number): this;
121
- checkTaprootHashesForSig(inputIndex: number, input: PsbtInput, keyPair: Signer | SignerAlternative | SignerAsync | HDSigner | HDSignerAsync | TaprootHashCheckSigner | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Uint8Array, allowedSighashTypes?: number[]): {
122
- hash: Bytes32;
115
+ checkTaprootHashesForSig(inputIndex: number, input: PsbtInput, keyPair: Signer | SignerAsync | HDSigner | HDSignerAsync | TaprootHashCheckSigner, tapLeafHashToSign?: Uint8Array, allowedSighashTypes?: number[]): {
116
+ hash: MessageHash;
123
117
  leafHash?: Bytes32;
124
118
  }[];
125
119
  }
126
- export declare function getFinalScripts(inputIndex: number, input: PsbtInput, script: Script, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, canRunChecks?: boolean, solution?: Uint8Array[]): {
127
- finalScriptSig: Script | undefined;
128
- finalScriptWitness: Uint8Array | undefined;
129
- };
130
- export declare function prepareFinalScripts(script: Uint8Array, scriptType: string, partialSig: PartialSig[], isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, solution?: Uint8Array[]): {
131
- finalScriptSig: Script | undefined;
132
- finalScriptWitness: Uint8Array | undefined;
133
- };
134
120
  //# sourceMappingURL=psbt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../src/psbt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../src/psbt.ts"],"names":[],"mappings":"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"}