@scure/btc-signer 1.6.0 → 1.8.0

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 (76) hide show
  1. package/README.md +194 -25
  2. package/esm/_type_test.js +1 -1
  3. package/esm/index.d.ts +12 -12
  4. package/esm/index.d.ts.map +1 -1
  5. package/esm/index.js +10 -10
  6. package/esm/index.js.map +1 -1
  7. package/esm/musig2.d.ts +148 -0
  8. package/esm/musig2.d.ts.map +1 -0
  9. package/esm/musig2.js +405 -0
  10. package/esm/musig2.js.map +1 -0
  11. package/esm/p2p.d.ts +38 -0
  12. package/esm/p2p.d.ts.map +1 -0
  13. package/esm/p2p.js +156 -0
  14. package/esm/p2p.js.map +1 -0
  15. package/esm/payment.d.ts +77 -21
  16. package/esm/payment.d.ts.map +1 -1
  17. package/esm/payment.js +63 -60
  18. package/esm/payment.js.map +1 -1
  19. package/esm/psbt.d.ts +463 -463
  20. package/esm/psbt.d.ts.map +1 -1
  21. package/esm/psbt.js +10 -39
  22. package/esm/psbt.js.map +1 -1
  23. package/esm/script.d.ts +16 -16
  24. package/esm/script.d.ts.map +1 -1
  25. package/esm/script.js +1 -1
  26. package/esm/transaction.d.ts +59 -6
  27. package/esm/transaction.d.ts.map +1 -1
  28. package/esm/transaction.js +154 -11
  29. package/esm/transaction.js.map +1 -1
  30. package/esm/utils.d.ts.map +1 -1
  31. package/esm/utxo.d.ts +73 -125
  32. package/esm/utxo.d.ts.map +1 -1
  33. package/esm/utxo.js +17 -122
  34. package/esm/utxo.js.map +1 -1
  35. package/index.d.ts +12 -12
  36. package/index.d.ts.map +1 -1
  37. package/index.js +58 -58
  38. package/index.js.map +1 -1
  39. package/musig2.d.ts +148 -0
  40. package/musig2.d.ts.map +1 -0
  41. package/musig2.js +417 -0
  42. package/musig2.js.map +1 -0
  43. package/p2p.d.ts +38 -0
  44. package/p2p.d.ts.map +1 -0
  45. package/p2p.js +158 -0
  46. package/p2p.js.map +1 -0
  47. package/package.json +15 -11
  48. package/payment.d.ts +77 -21
  49. package/payment.d.ts.map +1 -1
  50. package/payment.js +81 -78
  51. package/payment.js.map +1 -1
  52. package/psbt.d.ts +463 -463
  53. package/psbt.d.ts.map +1 -1
  54. package/psbt.js +30 -59
  55. package/psbt.js.map +1 -1
  56. package/script.d.ts +16 -16
  57. package/script.d.ts.map +1 -1
  58. package/script.js +3 -3
  59. package/src/_type_test.ts +1 -1
  60. package/src/index.ts +12 -12
  61. package/src/musig2.ts +517 -0
  62. package/src/p2p.ts +158 -0
  63. package/src/payment.ts +160 -75
  64. package/src/psbt.ts +11 -39
  65. package/src/script.ts +1 -1
  66. package/src/transaction.ts +170 -17
  67. package/src/utxo.ts +29 -122
  68. package/transaction.d.ts +59 -6
  69. package/transaction.d.ts.map +1 -1
  70. package/transaction.js +224 -77
  71. package/transaction.js.map +1 -1
  72. package/utils.d.ts.map +1 -1
  73. package/utxo.d.ts +73 -125
  74. package/utxo.d.ts.map +1 -1
  75. package/utxo.js +54 -163
  76. package/utxo.js.map +1 -1
package/esm/psbt.d.ts.map CHANGED
@@ -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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"}
package/esm/psbt.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { hex } from '@scure/base';
2
2
  import * as P from 'micro-packed';
3
- import { CompactSize, CompactSizeLen, RawOldTx, RawOutput, RawTx, RawWitness, VarBytes, } from './script.js';
4
- import { Transaction } from './transaction.js'; // circular
5
- import { compareBytes, equalBytes, PubT, validatePubkey } from './utils.js';
3
+ import { CompactSize, CompactSizeLen, RawOldTx, RawOutput, RawTx, RawWitness, VarBytes, } from "./script.js";
4
+ import { compareBytes, equalBytes, PubT, validatePubkey } from "./utils.js";
6
5
  // PSBT BIP174, BIP370, BIP371
7
6
  // Can be 33 or 64 bytes
8
7
  const PubKeyECDSA = P.validate(P.bytes(null), (pub) => validatePubkey(pub, PubT.ecdsa));
@@ -230,15 +229,6 @@ export const PSBTInputCoder = P.validate(PSBTKeyMap(PSBTInput), (i) => {
230
229
  if (i.requiredHeightLocktime !== undefined &&
231
230
  (i.requiredHeightLocktime <= 0 || i.requiredHeightLocktime >= 500000000))
232
231
  throw new Error(`validateInput: wrong heighLocktime=${i.requiredHeightLocktime}`);
233
- if (i.nonWitnessUtxo && i.index !== undefined) {
234
- const last = i.nonWitnessUtxo.outputs.length - 1;
235
- if (i.index > last)
236
- throw new Error(`validateInput: index(${i.index}) not in nonWitnessUtxo`);
237
- const prevOut = i.nonWitnessUtxo.outputs[i.index];
238
- if (i.witnessUtxo &&
239
- (!equalBytes(i.witnessUtxo.script, prevOut.script) || i.witnessUtxo.amount !== prevOut.amount))
240
- throw new Error('validateInput: witnessUtxo different from nonWitnessUtxo');
241
- }
242
232
  if (i.tapLeafScript) {
243
233
  // tap leaf version appears here twice: in control block and at the end of script
244
234
  for (const [k, v] of i.tapLeafScript) {
@@ -248,29 +238,6 @@ export const PSBTInputCoder = P.validate(PSBTKeyMap(PSBTInput), (i) => {
248
238
  throw new Error('validateInput: tapLeafScript version has parity bit!');
249
239
  }
250
240
  }
251
- // Validate txid for nonWitnessUtxo is correct
252
- if (i.nonWitnessUtxo && i.index !== undefined && i.txid) {
253
- const outputs = i.nonWitnessUtxo.outputs;
254
- if (outputs.length - 1 < i.index)
255
- throw new Error('nonWitnessUtxo: incorect output index');
256
- // At this point, we are using previous tx output to create new input.
257
- // Script safety checks are unnecessary:
258
- // - User has no control over previous tx. If somebody send money in same tx
259
- // as unspendable output, we still want user able to spend money
260
- // - We still want some checks to notify user about possible errors early
261
- // in case user wants to use wrong input by mistake
262
- // - Worst case: tx will be rejected by nodes. Still better than disallowing user
263
- // to spend real input, no matter how broken it looks
264
- const tx = Transaction.fromRaw(RawTx.encode(i.nonWitnessUtxo), {
265
- allowUnknownOutputs: true,
266
- disableScriptCheck: true,
267
- allowUnknownInputs: true,
268
- });
269
- const txid = hex.encode(i.txid);
270
- // PSBTv2 vectors have non-final tx in inputs
271
- if (tx.isFinal && tx.id !== txid)
272
- throw new Error(`nonWitnessUtxo: wrong txid, exp=${txid} got=${tx.id}`);
273
- }
274
241
  return i;
275
242
  });
276
243
  export const PSBTOutputCoder = P.validate(PSBTKeyMap(PSBTOutput), (o) => {
@@ -363,7 +330,7 @@ function validatePSBT(tx) {
363
330
  throw new Error(`Unexpected outputs left in tx=${outputsLeft}`);
364
331
  return tx;
365
332
  }
366
- export function mergeKeyMap(psbtEnum, val, cur, allowedFields) {
333
+ export function mergeKeyMap(psbtEnum, val, cur, allowedFields, allowUnknown) {
367
334
  const res = { ...cur, ...val };
368
335
  // All arguments can be provided as hex
369
336
  for (const k in psbtEnum) {
@@ -427,10 +394,14 @@ export function mergeKeyMap(psbtEnum, val, cur, allowedFields) {
427
394
  throw new Error(`Cannot change signed field=${k}`);
428
395
  }
429
396
  }
430
- // Remove unknown keys
431
- for (const k in res)
432
- if (!psbtEnum[k])
397
+ // Remove unknown keys except the "unknown" array if allowUnknown is true
398
+ for (const k in res) {
399
+ if (!psbtEnum[k]) {
400
+ if (allowUnknown && k === 'unknown')
401
+ continue;
433
402
  delete res[k];
403
+ }
404
+ }
434
405
  return res;
435
406
  }
436
407
  export const RawPSBTV0 = P.validate(_RawPSBTV0, validatePSBT);
package/esm/psbt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"psbt.js","sourceRoot":"","sources":["../src/psbt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"psbt.js","sourceRoot":"","sources":["../src/psbt.ts"],"names":[],"mappings":"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"}
package/esm/script.d.ts CHANGED
@@ -126,43 +126,43 @@ export declare const VarBytes: P.CoderType<Uint8Array>;
126
126
  export declare const RawWitness: P.CoderType<Uint8Array[]>;
127
127
  export declare const BTCArray: <T>(t: P.CoderType<T>) => P.CoderType<T[]>;
128
128
  export declare const RawInput: P.CoderType<P.StructInput<{
129
- txid: Uint8Array;
129
+ txid: P.Bytes;
130
130
  index: number;
131
- finalScriptSig: Uint8Array;
131
+ finalScriptSig: Uint8Array<ArrayBufferLike>;
132
132
  sequence: number;
133
133
  }>>;
134
134
  export declare const RawOutput: P.CoderType<P.StructInput<{
135
135
  amount: bigint;
136
- script: Uint8Array;
136
+ script: Uint8Array<ArrayBufferLike>;
137
137
  }>>;
138
138
  declare const _RawTx: P.CoderType<P.StructInput<{
139
139
  version: number;
140
140
  segwitFlag: boolean | undefined;
141
141
  inputs: P.StructInput<{
142
- txid: any;
143
- index: any;
144
- finalScriptSig: any;
145
- sequence: any;
142
+ txid: /*elided*/ any;
143
+ index: /*elided*/ any;
144
+ finalScriptSig: /*elided*/ any;
145
+ sequence: /*elided*/ any;
146
146
  }>[];
147
147
  outputs: P.StructInput<{
148
- amount: any;
149
- script: any;
148
+ amount: /*elided*/ any;
149
+ script: /*elided*/ any;
150
150
  }>[];
151
- witnesses: P.Option<Uint8Array[][]>;
151
+ witnesses: P.Option<Uint8Array<ArrayBufferLike>[][]>;
152
152
  lockTime: number;
153
153
  }>>;
154
154
  export declare const RawTx: typeof _RawTx;
155
155
  export declare const RawOldTx: P.CoderType<P.StructInput<{
156
156
  version: number;
157
157
  inputs: P.StructInput<{
158
- txid: any;
159
- index: any;
160
- finalScriptSig: any;
161
- sequence: any;
158
+ txid: /*elided*/ any;
159
+ index: /*elided*/ any;
160
+ finalScriptSig: /*elided*/ any;
161
+ sequence: /*elided*/ any;
162
162
  }>[];
163
163
  outputs: P.StructInput<{
164
- amount: any;
165
- script: any;
164
+ amount: /*elided*/ any;
165
+ script: /*elided*/ any;
166
166
  }>[];
167
167
  lockTime: number;
168
168
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
package/esm/script.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as P from 'micro-packed';
2
- import { isBytes } from './utils.js';
2
+ import { isBytes } from "./utils.js";
3
3
  export const MAX_SCRIPT_BYTE_LENGTH = 520;
4
4
  // prettier-ignore
5
5
  export var OP;
@@ -1,8 +1,10 @@
1
1
  import * as P from 'micro-packed';
2
- import { type CustomScript } from './payment.js';
3
- import * as psbt from './psbt.js';
4
- import * as u from './utils.js';
5
- import { type Bytes } from './utils.js';
2
+ import { type CustomScript } from './payment.ts';
3
+ import * as psbt from './psbt.ts';
4
+ import { RawOutput } from './script.ts';
5
+ import * as u from './utils.ts';
6
+ import { type Bytes } from './utils.ts';
7
+ export declare const toVsize: (weight: number) => number;
6
8
  interface HDKey {
7
9
  publicKey: Bytes;
8
10
  privateKey: Bytes;
@@ -19,7 +21,7 @@ export declare const DEFAULT_SEQUENCE = 4294967295;
19
21
  export declare const Decimal: P.Coder<bigint, string>;
20
22
  export declare const def: <T>(value: T | undefined, def: T) => T;
21
23
  export declare function cloneDeep<T>(obj: T): T;
22
- export type TxOpts = {
24
+ export interface TxOpts {
23
25
  version?: number;
24
26
  lockTime?: number;
25
27
  PSBTVersion?: number;
@@ -34,7 +36,8 @@ export type TxOpts = {
34
36
  allowLegacyWitnessUtxo?: boolean;
35
37
  lowR?: boolean;
36
38
  customScripts?: CustomScript[];
37
- };
39
+ allowUnknown?: boolean;
40
+ }
38
41
  /**
39
42
  * Internal, exported only for backwards-compat. Use `SigHash` instead.
40
43
  * @deprecated
@@ -64,6 +67,56 @@ export type TransactionInputRequired = {
64
67
  };
65
68
  export declare function inputBeforeSign(i: psbt.TransactionInput): TransactionInputRequired;
66
69
  declare function validateOpts(opts: TxOpts): Readonly<TxOpts>;
70
+ export type PSBTInputs = psbt.PSBTKeyMapKeys<typeof psbt.PSBTInput>;
71
+ export declare function getPrevOut(input: psbt.TransactionInput): P.UnwrapCoder<typeof RawOutput>;
72
+ export declare function normalizeInput(i: psbt.TransactionInputUpdate, cur?: psbt.TransactionInput, allowedFields?: (keyof psbt.TransactionInput)[], disableScriptCheck?: boolean, allowUnknown?: boolean): psbt.TransactionInput;
73
+ export declare function getInputType(input: psbt.TransactionInput, allowLegacyWitnessUtxo?: boolean): {
74
+ type: string;
75
+ txType: string;
76
+ last: {
77
+ type: "p2a";
78
+ script: Bytes;
79
+ } | {
80
+ type: "pk";
81
+ pubkey: Bytes;
82
+ } | {
83
+ type: "pkh";
84
+ hash: Bytes;
85
+ } | {
86
+ type: "wpkh";
87
+ hash: Bytes;
88
+ } | {
89
+ type: "ms";
90
+ pubkeys: Bytes[];
91
+ m: number;
92
+ } | {
93
+ type: "tr";
94
+ pubkey: Bytes;
95
+ } | {
96
+ type: "tr_ns";
97
+ pubkeys: Bytes[];
98
+ } | {
99
+ type: "tr_ms";
100
+ pubkeys: Bytes[];
101
+ m: number;
102
+ } | {
103
+ type: "unknown";
104
+ script: Bytes;
105
+ };
106
+ lastScript: P.Bytes;
107
+ defaultSighash: SignatureHash.ALL;
108
+ sighash: number;
109
+ } | {
110
+ txType: string;
111
+ type: string;
112
+ last: {
113
+ type: "tr";
114
+ pubkey: Bytes;
115
+ };
116
+ lastScript: Uint8Array<ArrayBufferLike>;
117
+ defaultSighash: SignatureHash.DEFAULT;
118
+ sighash: number;
119
+ };
67
120
  export declare class Transaction {
68
121
  private global;
69
122
  private inputs;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { hex } from '@scure/base';
2
2
  import * as P from 'micro-packed';
3
- import { Address, OutScript, checkScript, tapLeafHash } from './payment.js';
4
- import * as psbt from './psbt.js'; // circular
5
- import { CompactSizeLen, RawOldTx, RawOutput, RawTx, RawWitness, Script, VarBytes, } from './script.js';
6
- import * as u from './utils.js';
7
- import { NETWORK, concatBytes, equalBytes, isBytes } from './utils.js';
8
- import { getInputType, getPrevOut, normalizeInput, toVsize } from './utxo.js'; // circular
3
+ import { Address, OutScript, checkScript, tapLeafHash } from "./payment.js";
4
+ import * as psbt from "./psbt.js";
5
+ import { CompactSizeLen, RawOldTx, RawOutput, RawTx, RawWitness, Script, VarBytes, } from "./script.js";
6
+ import * as u from "./utils.js";
7
+ import { NETWORK, concatBytes, equalBytes, isBytes } from "./utils.js";
9
8
  const EMPTY32 = new Uint8Array(32);
10
9
  const EMPTY_OUTPUT = {
11
10
  amount: 0xffffffffffffffffn,
12
11
  script: P.EMPTY,
13
12
  };
13
+ export const toVsize = (weight) => Math.ceil(weight / 4);
14
14
  export const PRECISION = 8;
15
15
  export const DEFAULT_VERSION = 2;
16
16
  export const DEFAULT_LOCKTIME = 0;
@@ -158,6 +158,149 @@ function validateOpts(opts) {
158
158
  }
159
159
  return Object.freeze(_opts);
160
160
  }
161
+ // NOTE: we cannot do this inside PSBTInput coder, because there is no index/txid at this point!
162
+ function validateInput(i) {
163
+ if (i.nonWitnessUtxo && i.index !== undefined) {
164
+ const last = i.nonWitnessUtxo.outputs.length - 1;
165
+ if (i.index > last)
166
+ throw new Error(`validateInput: index(${i.index}) not in nonWitnessUtxo`);
167
+ const prevOut = i.nonWitnessUtxo.outputs[i.index];
168
+ if (i.witnessUtxo &&
169
+ (!equalBytes(i.witnessUtxo.script, prevOut.script) || i.witnessUtxo.amount !== prevOut.amount))
170
+ throw new Error('validateInput: witnessUtxo different from nonWitnessUtxo');
171
+ if (i.txid) {
172
+ const outputs = i.nonWitnessUtxo.outputs;
173
+ if (outputs.length - 1 < i.index)
174
+ throw new Error('nonWitnessUtxo: incorect output index');
175
+ // At this point, we are using previous tx output to create new input.
176
+ // Script safety checks are unnecessary:
177
+ // - User has no control over previous tx. If somebody send money in same tx
178
+ // as unspendable output, we still want user able to spend money
179
+ // - We still want some checks to notify user about possible errors early
180
+ // in case user wants to use wrong input by mistake
181
+ // - Worst case: tx will be rejected by nodes. Still better than disallowing user
182
+ // to spend real input, no matter how broken it looks
183
+ const tx = Transaction.fromRaw(RawTx.encode(i.nonWitnessUtxo), {
184
+ allowUnknownOutputs: true,
185
+ disableScriptCheck: true,
186
+ allowUnknownInputs: true,
187
+ });
188
+ const txid = hex.encode(i.txid);
189
+ // PSBTv2 vectors have non-final tx in inputs
190
+ if (tx.isFinal && tx.id !== txid)
191
+ throw new Error(`nonWitnessUtxo: wrong txid, exp=${txid} got=${tx.id}`);
192
+ }
193
+ }
194
+ return i;
195
+ }
196
+ // Normalizes input
197
+ export function getPrevOut(input) {
198
+ if (input.nonWitnessUtxo) {
199
+ if (input.index === undefined)
200
+ throw new Error('Unknown input index');
201
+ return input.nonWitnessUtxo.outputs[input.index];
202
+ }
203
+ else if (input.witnessUtxo)
204
+ return input.witnessUtxo;
205
+ else
206
+ throw new Error('Cannot find previous output info');
207
+ }
208
+ export function normalizeInput(i, cur, allowedFields, disableScriptCheck = false, allowUnknown = false) {
209
+ let { nonWitnessUtxo, txid } = i;
210
+ // String support for common fields. We usually prefer Uint8Array to avoid errors
211
+ // like hex looking string accidentally passed, however, in case of nonWitnessUtxo
212
+ // it is better to expect string, since constructing this complex object will be
213
+ // difficult for user
214
+ if (typeof nonWitnessUtxo === 'string')
215
+ nonWitnessUtxo = hex.decode(nonWitnessUtxo);
216
+ if (isBytes(nonWitnessUtxo))
217
+ nonWitnessUtxo = RawTx.decode(nonWitnessUtxo);
218
+ if (!('nonWitnessUtxo' in i) && nonWitnessUtxo === undefined)
219
+ nonWitnessUtxo = cur?.nonWitnessUtxo;
220
+ if (typeof txid === 'string')
221
+ txid = hex.decode(txid);
222
+ // TODO: if we have nonWitnessUtxo, we can extract txId from here
223
+ if (txid === undefined)
224
+ txid = cur?.txid;
225
+ let res = { ...cur, ...i, nonWitnessUtxo, txid };
226
+ if (!('nonWitnessUtxo' in i) && res.nonWitnessUtxo === undefined)
227
+ delete res.nonWitnessUtxo;
228
+ if (res.sequence === undefined)
229
+ res.sequence = DEFAULT_SEQUENCE;
230
+ if (res.tapMerkleRoot === null)
231
+ delete res.tapMerkleRoot;
232
+ res = psbt.mergeKeyMap(psbt.PSBTInput, res, cur, allowedFields, allowUnknown);
233
+ psbt.PSBTInputCoder.encode(res); // Validates that everything is correct at this point
234
+ let prevOut;
235
+ if (res.nonWitnessUtxo && res.index !== undefined)
236
+ prevOut = res.nonWitnessUtxo.outputs[res.index];
237
+ else if (res.witnessUtxo)
238
+ prevOut = res.witnessUtxo;
239
+ if (prevOut && !disableScriptCheck)
240
+ checkScript(prevOut && prevOut.script, res.redeemScript, res.witnessScript);
241
+ return res;
242
+ }
243
+ export function getInputType(input, allowLegacyWitnessUtxo = false) {
244
+ let txType = 'legacy';
245
+ let defaultSighash = SignatureHash.ALL;
246
+ const prevOut = getPrevOut(input);
247
+ const first = OutScript.decode(prevOut.script);
248
+ let type = first.type;
249
+ let cur = first;
250
+ const stack = [first];
251
+ if (first.type === 'tr') {
252
+ defaultSighash = SignatureHash.DEFAULT;
253
+ return {
254
+ txType: 'taproot',
255
+ type: 'tr',
256
+ last: first,
257
+ lastScript: prevOut.script,
258
+ defaultSighash,
259
+ sighash: input.sighashType || defaultSighash,
260
+ };
261
+ }
262
+ else {
263
+ if (first.type === 'wpkh' || first.type === 'wsh')
264
+ txType = 'segwit';
265
+ if (first.type === 'sh') {
266
+ if (!input.redeemScript)
267
+ throw new Error('inputType: sh without redeemScript');
268
+ let child = OutScript.decode(input.redeemScript);
269
+ if (child.type === 'wpkh' || child.type === 'wsh')
270
+ txType = 'segwit';
271
+ stack.push(child);
272
+ cur = child;
273
+ type += `-${child.type}`;
274
+ }
275
+ // wsh can be inside sh
276
+ if (cur.type === 'wsh') {
277
+ if (!input.witnessScript)
278
+ throw new Error('inputType: wsh without witnessScript');
279
+ let child = OutScript.decode(input.witnessScript);
280
+ if (child.type === 'wsh')
281
+ txType = 'segwit';
282
+ stack.push(child);
283
+ cur = child;
284
+ type += `-${child.type}`;
285
+ }
286
+ const last = stack[stack.length - 1];
287
+ if (last.type === 'sh' || last.type === 'wsh')
288
+ throw new Error('inputType: sh/wsh cannot be terminal type');
289
+ const lastScript = OutScript.encode(last);
290
+ const res = {
291
+ type,
292
+ txType,
293
+ last,
294
+ lastScript,
295
+ defaultSighash,
296
+ sighash: input.sighashType || defaultSighash,
297
+ };
298
+ if (txType === 'legacy' && !allowLegacyWitnessUtxo && !input.nonWitnessUtxo) {
299
+ throw new Error(`Transaction/sign: legacy input without nonWitnessUtxo, can result in attack that forces paying higher fees. Pass allowLegacyWitnessUtxo=true, if you sure`);
300
+ }
301
+ return res;
302
+ }
303
+ }
161
304
  export class Transaction {
162
305
  constructor(opts = {}) {
163
306
  this.global = {};
@@ -207,7 +350,7 @@ export class Transaction {
207
350
  const tx = new Transaction({ ...opts, version, lockTime, PSBTVersion });
208
351
  // We need slice here, because otherwise
209
352
  const inputCount = PSBTVersion === 0 ? unsigned?.inputs.length : parsed.global.inputCount;
210
- tx.inputs = parsed.inputs.slice(0, inputCount).map((i, j) => ({
353
+ tx.inputs = parsed.inputs.slice(0, inputCount).map((i, j) => validateInput({
211
354
  finalScriptSig: P.EMPTY,
212
355
  ...parsed.global.unsignedTx?.inputs[j],
213
356
  ...i,
@@ -230,7 +373,7 @@ export class Transaction {
230
373
  // 'PSBT version=0 export for transaction without inputs disabled, please use version=2. Please check `toPSBT` method for explanation.'
231
374
  // );
232
375
  // }
233
- const inputs = this.inputs.map((i) => psbt.cleanPSBTFields(PSBTVersion, psbt.PSBTInput, i));
376
+ const inputs = this.inputs.map((i) => validateInput(psbt.cleanPSBTFields(PSBTVersion, psbt.PSBTInput, i)));
234
377
  for (const inp of inputs) {
235
378
  // Don't serialize empty fields
236
379
  if (inp.partialSig && !inp.partialSig.length)
@@ -467,7 +610,7 @@ export class Transaction {
467
610
  if (!status.addInput || status.inputs.includes(idx))
468
611
  allowedFields = psbt.PSBTInputUnsignedKeys;
469
612
  }
470
- this.inputs[idx] = normalizeInput(input, this.inputs[idx], allowedFields, this.opts.disableScriptCheck);
613
+ this.inputs[idx] = normalizeInput(input, this.inputs[idx], allowedFields, this.opts.disableScriptCheck, this.opts.allowUnknown);
471
614
  }
472
615
  // Output stuff
473
616
  checkOutputIdx(idx) {
@@ -500,7 +643,7 @@ export class Transaction {
500
643
  let res = { ...cur, ...o, amount, script };
501
644
  if (res.amount === undefined)
502
645
  delete res.amount;
503
- res = psbt.mergeKeyMap(psbt.PSBTOutput, res, cur, allowedFields);
646
+ res = psbt.mergeKeyMap(psbt.PSBTOutput, res, cur, allowedFields, this.opts.allowUnknown);
504
647
  psbt.PSBTOutputCoder.encode(res);
505
648
  if (res.script &&
506
649
  !this.opts.allowUnknownOutputs &&
@@ -993,7 +1136,7 @@ export class Transaction {
993
1136
  : P.EMPTY;
994
1137
  if (!equalBytes(thisUnsigned, otherUnsigned))
995
1138
  throw new Error(`Transaction/combine: different unsigned tx`);
996
- this.global = psbt.mergeKeyMap(psbt.PSBTGlobal, this.global, other.global);
1139
+ this.global = psbt.mergeKeyMap(psbt.PSBTGlobal, this.global, other.global, undefined, this.opts.allowUnknown);
997
1140
  for (let i = 0; i < this.inputs.length; i++)
998
1141
  this.updateInput(i, other.inputs[i], true);
999
1142
  for (let i = 0; i < this.outputs.length; i++)