@scure/btc-signer 1.2.0 → 1.2.1

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/README.md CHANGED
@@ -9,7 +9,7 @@ Audited & minimal library for creating, signing & decoding Bitcoin transactions.
9
9
  - 🎻 Classic & SegWit: P2PK, P2PKH, P2WPKH, P2SH, P2WSH, P2MS
10
10
  - 🧪 Schnorr & Taproot BIP340/BIP341: P2TR, P2TR-NS, P2TR-MS
11
11
  - 📨 BIP174 PSBT
12
- - 🪶 ~2600 lines
12
+ - 🪶 3000 lines
13
13
 
14
14
  Initial development has been funded by [Ryan Shea](https://shea.io). Check out [the demo](https://signerdemo.micro-btc.dev/) & [its github](https://github.com/shea256/micro-btc-web-demo).
15
15
 
package/index.ts CHANGED
@@ -714,12 +714,26 @@ const PSBTInputCoder = P.validate(PSBTKeyMap(PSBTInput), (i) => {
714
714
  }
715
715
  }
716
716
  // Validate txid for nonWitnessUtxo is correct
717
- if (i.nonWitnessUtxo && i.index && i.txid) {
717
+ if (i.nonWitnessUtxo && i.index !== undefined && i.txid) {
718
718
  const outputs = i.nonWitnessUtxo.outputs;
719
719
  if (outputs.length - 1 < i.index) throw new Error('nonWitnessUtxo: incorect output index');
720
- const tx = Transaction.fromRaw(RawTx.encode(i.nonWitnessUtxo));
720
+ // At this point, we are using previous tx output to create new input.
721
+ // Script safety checks are unnecessary:
722
+ // - User has no control over previous tx. If somebody send money in same tx
723
+ // as unspendable output, we still want user able to spend money
724
+ // - We still want some checks to notify user about possible errors early
725
+ // in case user wants to use wrong input by mistake
726
+ // - Worst case: tx will be rejected by nodes. Still better than disallowing user
727
+ // to spend real input, no matter how broken it looks
728
+ const tx = Transaction.fromRaw(RawTx.encode(i.nonWitnessUtxo), {
729
+ allowUnknownOutputs: true,
730
+ disableScriptCheck: true,
731
+ allowUnknownInputs: true,
732
+ });
721
733
  const txid = hex.encode(i.txid);
722
- if (tx.id !== txid) throw new Error(`nonWitnessUtxo: wrong txid, exp=${txid} got=${tx.id}`);
734
+ // PSBTv2 vectors have non-final tx in inputs
735
+ if (tx.isFinal && tx.id !== txid)
736
+ throw new Error(`nonWitnessUtxo: wrong txid, exp=${txid} got=${tx.id}`);
723
737
  }
724
738
  return i;
725
739
  });
package/lib/esm/index.js CHANGED
@@ -779,13 +779,26 @@ const PSBTInputCoder = P.validate(PSBTKeyMap(PSBTInput), (i) => {
779
779
  }
780
780
  }
781
781
  // Validate txid for nonWitnessUtxo is correct
782
- if (i.nonWitnessUtxo && i.index && i.txid) {
782
+ if (i.nonWitnessUtxo && i.index !== undefined && i.txid) {
783
783
  const outputs = i.nonWitnessUtxo.outputs;
784
784
  if (outputs.length - 1 < i.index)
785
785
  throw new Error('nonWitnessUtxo: incorect output index');
786
- const tx = Transaction.fromRaw(RawTx.encode(i.nonWitnessUtxo));
786
+ // At this point, we are using previous tx output to create new input.
787
+ // Script safety checks are unnecessary:
788
+ // - User has no control over previous tx. If somebody send money in same tx
789
+ // as unspendable output, we still want user able to spend money
790
+ // - We still want some checks to notify user about possible errors early
791
+ // in case user wants to use wrong input by mistake
792
+ // - Worst case: tx will be rejected by nodes. Still better than disallowing user
793
+ // to spend real input, no matter how broken it looks
794
+ const tx = Transaction.fromRaw(RawTx.encode(i.nonWitnessUtxo), {
795
+ allowUnknownOutputs: true,
796
+ disableScriptCheck: true,
797
+ allowUnknownInputs: true,
798
+ });
787
799
  const txid = hex.encode(i.txid);
788
- if (tx.id !== txid)
800
+ // PSBTv2 vectors have non-final tx in inputs
801
+ if (tx.isFinal && tx.id !== txid)
789
802
  throw new Error(`nonWitnessUtxo: wrong txid, exp=${txid} got=${tx.id}`);
790
803
  }
791
804
  return i;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -790,13 +790,26 @@ const PSBTInputCoder = P.validate(PSBTKeyMap(PSBTInput), (i) => {
790
790
  }
791
791
  }
792
792
  // Validate txid for nonWitnessUtxo is correct
793
- if (i.nonWitnessUtxo && i.index && i.txid) {
793
+ if (i.nonWitnessUtxo && i.index !== undefined && i.txid) {
794
794
  const outputs = i.nonWitnessUtxo.outputs;
795
795
  if (outputs.length - 1 < i.index)
796
796
  throw new Error('nonWitnessUtxo: incorect output index');
797
- const tx = Transaction.fromRaw(exports.RawTx.encode(i.nonWitnessUtxo));
797
+ // At this point, we are using previous tx output to create new input.
798
+ // Script safety checks are unnecessary:
799
+ // - User has no control over previous tx. If somebody send money in same tx
800
+ // as unspendable output, we still want user able to spend money
801
+ // - We still want some checks to notify user about possible errors early
802
+ // in case user wants to use wrong input by mistake
803
+ // - Worst case: tx will be rejected by nodes. Still better than disallowing user
804
+ // to spend real input, no matter how broken it looks
805
+ const tx = Transaction.fromRaw(exports.RawTx.encode(i.nonWitnessUtxo), {
806
+ allowUnknownOutputs: true,
807
+ disableScriptCheck: true,
808
+ allowUnknownInputs: true,
809
+ });
798
810
  const txid = base_1.hex.encode(i.txid);
799
- if (tx.id !== txid)
811
+ // PSBTv2 vectors have non-final tx in inputs
812
+ if (tx.isFinal && tx.id !== txid)
800
813
  throw new Error(`nonWitnessUtxo: wrong txid, exp=${txid} got=${tx.id}`);
801
814
  }
802
815
  return i;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scure/btc-signer",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Audited & minimal library for creating, signing & decoding Bitcoin transactions: with Schnorr, Taproot, UTXO & PSBT",
5
5
  "files": [
6
6
  "lib/index.js",
@@ -25,7 +25,7 @@
25
25
  "@noble/curves": "~1.3.0",
26
26
  "@noble/hashes": "~1.3.3",
27
27
  "@scure/base": "~1.1.5",
28
- "micro-packed": "~0.5.0"
28
+ "micro-packed": "~0.5.1"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@scure/bip32": "~1.3.3",