@scure/btc-signer 1.8.0 → 2.0.0-beta.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.
Files changed (86) hide show
  1. package/README.md +15 -12
  2. package/_type_test.js +10 -12
  3. package/_type_test.js.map +1 -1
  4. package/index.js +17 -61
  5. package/index.js.map +1 -1
  6. package/musig2.d.ts +2 -2
  7. package/musig2.d.ts.map +1 -1
  8. package/musig2.js +93 -91
  9. package/musig2.js.map +1 -1
  10. package/p2p.d.ts +7 -8
  11. package/p2p.d.ts.map +1 -1
  12. package/p2p.js +32 -38
  13. package/p2p.js.map +1 -1
  14. package/package.json +33 -70
  15. package/payment.js +73 -96
  16. package/payment.js.map +1 -1
  17. package/psbt.d.ts +224 -224
  18. package/psbt.d.ts.map +1 -1
  19. package/psbt.js +58 -63
  20. package/psbt.js.map +1 -1
  21. package/script.d.ts +125 -120
  22. package/script.d.ts.map +1 -1
  23. package/script.js +46 -146
  24. package/script.js.map +1 -1
  25. package/src/_type_test.ts +2 -2
  26. package/src/musig2.ts +45 -53
  27. package/src/p2p.ts +31 -43
  28. package/src/psbt.ts +7 -7
  29. package/src/script.ts +29 -26
  30. package/src/transaction.ts +31 -24
  31. package/src/utils.ts +45 -26
  32. package/src/utxo.ts +1 -1
  33. package/transaction.d.ts +23 -28
  34. package/transaction.d.ts.map +1 -1
  35. package/transaction.js +140 -154
  36. package/transaction.js.map +1 -1
  37. package/utils.d.ts +13 -7
  38. package/utils.d.ts.map +1 -1
  39. package/utils.js +60 -62
  40. package/utils.js.map +1 -1
  41. package/utxo.d.ts +45 -45
  42. package/utxo.d.ts.map +1 -1
  43. package/utxo.js +63 -59
  44. package/utxo.js.map +1 -1
  45. package/esm/_type_test.d.ts +0 -2
  46. package/esm/_type_test.d.ts.map +0 -1
  47. package/esm/_type_test.js +0 -57
  48. package/esm/_type_test.js.map +0 -1
  49. package/esm/index.d.ts +0 -22
  50. package/esm/index.d.ts.map +0 -1
  51. package/esm/index.js +0 -22
  52. package/esm/index.js.map +0 -1
  53. package/esm/musig2.d.ts +0 -148
  54. package/esm/musig2.d.ts.map +0 -1
  55. package/esm/musig2.js +0 -405
  56. package/esm/musig2.js.map +0 -1
  57. package/esm/p2p.d.ts +0 -38
  58. package/esm/p2p.d.ts.map +0 -1
  59. package/esm/p2p.js +0 -156
  60. package/esm/p2p.js.map +0 -1
  61. package/esm/package.json +0 -1
  62. package/esm/payment.d.ts +0 -200
  63. package/esm/payment.d.ts.map +0 -1
  64. package/esm/payment.js +0 -697
  65. package/esm/payment.js.map +0 -1
  66. package/esm/psbt.d.ts +0 -820
  67. package/esm/psbt.d.ts.map +0 -1
  68. package/esm/psbt.js +0 -409
  69. package/esm/psbt.js.map +0 -1
  70. package/esm/script.d.ts +0 -170
  71. package/esm/script.d.ts.map +0 -1
  72. package/esm/script.js +0 -356
  73. package/esm/script.js.map +0 -1
  74. package/esm/transaction.d.ts +0 -171
  75. package/esm/transaction.d.ts.map +0 -1
  76. package/esm/transaction.js +0 -1182
  77. package/esm/transaction.js.map +0 -1
  78. package/esm/utils.d.ts +0 -35
  79. package/esm/utils.d.ts.map +0 -1
  80. package/esm/utils.js +0 -118
  81. package/esm/utils.js.map +0 -1
  82. package/esm/utxo.d.ts +0 -198
  83. package/esm/utxo.d.ts.map +0 -1
  84. package/esm/utxo.js +0 -461
  85. package/esm/utxo.js.map +0 -1
  86. package/src/package.json +0 -3
package/src/utils.ts CHANGED
@@ -1,12 +1,15 @@
1
- import { schnorr, secp256k1 as secp } from '@noble/curves/secp256k1';
2
- import { ripemd160 } from '@noble/hashes/ripemd160';
3
- import { sha256 } from '@noble/hashes/sha256';
1
+ import { schnorr, secp256k1 as secp } from '@noble/curves/secp256k1.js';
2
+ import { bytesToNumberBE, numberToBytesBE } from '@noble/curves/utils.js';
3
+ import { ripemd160 } from '@noble/hashes/legacy.js';
4
+ import { sha256 } from '@noble/hashes/sha2.js';
4
5
  import { utils as packedUtils, U32LE } from 'micro-packed';
5
6
 
6
7
  export type Hex = string | Uint8Array;
7
8
  export type Bytes = Uint8Array;
8
- const Point = secp.ProjectivePoint;
9
- const CURVE_ORDER = secp.CURVE.n;
9
+ const Point = secp.Point;
10
+ const Fn = Point.Fn;
11
+ const CURVE_ORDER = Point.Fn.ORDER;
12
+ export const hasEven = (y: bigint) => y % 2n === 0n;
10
13
 
11
14
  const isBytes: (a: unknown) => a is Uint8Array = packedUtils.isBytes;
12
15
  const concatBytes: (...arrays: Uint8Array[]) => Uint8Array = packedUtils.concatBytes;
@@ -15,9 +18,9 @@ export { concatBytes, equalBytes, isBytes, sha256 };
15
18
 
16
19
  export const hash160 = (msg: Uint8Array): Uint8Array => ripemd160(sha256(msg));
17
20
  export const sha256x2 = (...msgs: Uint8Array[]): Uint8Array => sha256(sha256(concatBytes(...msgs)));
18
- export const randomPrivateKeyBytes: () => Uint8Array = schnorr.utils.randomPrivateKey;
21
+ export const randomPrivateKeyBytes: () => Uint8Array = schnorr.utils.randomSecretKey;
19
22
  export const pubSchnorr = schnorr.getPublicKey as (priv: string | Uint8Array) => Uint8Array;
20
- export const pubECDSA: (privateKey: string | Uint8Array, isCompressed?: boolean) => Uint8Array =
23
+ export const pubECDSA: (privateKey: Uint8Array, isCompressed?: boolean) => Uint8Array =
21
24
  secp.getPublicKey;
22
25
 
23
26
  // low-r signature grinding. Used to reduce tx size by 1 byte.
@@ -26,35 +29,37 @@ export const pubECDSA: (privateKey: string | Uint8Array, isCompressed?: boolean)
26
29
  // Not best way, but closest to bitcoin implementation (easier to check)
27
30
  const hasLowR = (sig: { r: bigint; s: bigint }) => sig.r < CURVE_ORDER / 2n;
28
31
  export function signECDSA(hash: Bytes, privateKey: Bytes, lowR = false): Bytes {
29
- let sig = secp.sign(hash, privateKey);
32
+ let sig = secp.Signature.fromBytes(secp.sign(hash, privateKey, { prehash: false }));
30
33
  if (lowR && !hasLowR(sig)) {
31
34
  const extraEntropy = new Uint8Array(32);
32
35
  let counter = 0;
33
36
  while (!hasLowR(sig)) {
34
37
  extraEntropy.set(U32LE.encode(counter++));
35
- sig = secp.sign(hash, privateKey, { extraEntropy });
38
+ sig = secp.Signature.fromBytes(secp.sign(hash, privateKey, { prehash: false, extraEntropy }));
36
39
  if (counter > 4294967295) throw new Error('lowR counter overflow: report the error');
37
40
  }
38
41
  }
39
- return sig.toDERRawBytes();
42
+ return sig.toBytes('der');
40
43
  }
41
44
 
42
45
  export const signSchnorr: typeof schnorr.sign = schnorr.sign;
43
46
  export const tagSchnorr: typeof schnorr.utils.taggedHash = schnorr.utils.taggedHash;
44
47
 
45
- export enum PubT {
46
- ecdsa,
47
- schnorr,
48
- }
48
+ export const PubT = {
49
+ ecdsa: 0,
50
+ schnorr: 1,
51
+ };
52
+ export type PubT = ValueOf<typeof PubT>;
53
+
49
54
  export function validatePubkey(pub: Bytes, type: PubT): Bytes {
50
55
  const len = pub.length;
51
56
  if (type === PubT.ecdsa) {
52
57
  if (len === 32) throw new Error('Expected non-Schnorr key');
53
- Point.fromHex(pub); // does assertValidity
58
+ Point.fromBytes(pub); // does assertValidity
54
59
  return pub;
55
60
  } else if (type === PubT.schnorr) {
56
61
  if (len !== 32) throw new Error('Expected 32-byte Schnorr key');
57
- schnorr.utils.lift_x(schnorr.utils.bytesToNumberBE(pub));
62
+ schnorr.utils.lift_x(bytesToNumberBE(pub));
58
63
  return pub;
59
64
  } else {
60
65
  throw new Error('Unknown key type');
@@ -64,30 +69,30 @@ export function validatePubkey(pub: Bytes, type: PubT): Bytes {
64
69
  export function tapTweak(a: Bytes, b: Bytes): bigint {
65
70
  const u = schnorr.utils;
66
71
  const t = u.taggedHash('TapTweak', a, b);
67
- const tn = u.bytesToNumberBE(t);
72
+ const tn = bytesToNumberBE(t);
68
73
  if (tn >= CURVE_ORDER) throw new Error('tweak higher than curve order');
69
74
  return tn;
70
75
  }
71
76
 
72
- export function taprootTweakPrivKey(privKey: Bytes, merkleRoot: Bytes = new Uint8Array()): Bytes {
77
+ export function taprootTweakPrivKey(privKey: Bytes, merkleRoot: Bytes = Uint8Array.of()): Bytes {
73
78
  const u = schnorr.utils;
74
- const seckey0 = u.bytesToNumberBE(privKey); // seckey0 = int_from_bytes(seckey0)
75
- const P = Point.fromPrivateKey(seckey0); // P = point_mul(G, seckey0)
79
+ const seckey0 = bytesToNumberBE(privKey); // seckey0 = int_from_bytes(seckey0)
80
+ const P = Point.BASE.multiply(seckey0); // P = point_mul(G, seckey0)
76
81
  // seckey = seckey0 if has_even_y(P) else SECP256K1_ORDER - seckey0
77
- const seckey = P.hasEvenY() ? seckey0 : u.mod(-seckey0, CURVE_ORDER);
82
+ const seckey = hasEven(P.y) ? seckey0 : Fn.neg(seckey0);
78
83
  const xP = u.pointToBytes(P);
79
84
  // t = int_from_bytes(tagged_hash("TapTweak", bytes_from_int(x(P)) + h)); >= SECP256K1_ORDER check
80
85
  const t = tapTweak(xP, merkleRoot);
81
86
  // bytes_from_int((seckey + t) % SECP256K1_ORDER)
82
- return u.numberToBytesBE(u.mod(seckey + t, CURVE_ORDER), 32);
87
+ return numberToBytesBE(Fn.add(seckey, t), 32);
83
88
  }
84
89
 
85
90
  export function taprootTweakPubkey(pubKey: Bytes, h: Bytes): [Bytes, number] {
86
91
  const u = schnorr.utils;
87
92
  const t = tapTweak(pubKey, h); // t = int_from_bytes(tagged_hash("TapTweak", pubkey + h))
88
- const P = u.lift_x(u.bytesToNumberBE(pubKey)); // P = lift_x(int_from_bytes(pubkey))
89
- const Q = P.add(Point.fromPrivateKey(t)); // Q = point_add(P, point_mul(G, t))
90
- const parity = Q.hasEvenY() ? 0 : 1; // 0 if has_even_y(Q) else 1
93
+ const P = u.lift_x(bytesToNumberBE(pubKey)); // P = lift_x(int_from_bytes(pubkey))
94
+ const Q = P.add(Point.BASE.multiply(t)); // Q = point_add(P, point_mul(G, t))
95
+ const parity = hasEven(Q.y) ? 0 : 1; // 0 if has_even_y(Q) else 1
91
96
  return [u.pointToBytes(Q), parity]; // bytes_from_int(x(Q))
92
97
  }
93
98
 
@@ -97,7 +102,7 @@ export function taprootTweakPubkey(pubKey: Bytes, h: Bytes): [Bytes, number] {
97
102
  // It is possible to switch SECP256K1_GENERATOR_POINT with some random point;
98
103
  // but it's too complex to prove.
99
104
  // Also used by bitcoin-core and bitcoinjs-lib
100
- export const TAPROOT_UNSPENDABLE_KEY: Bytes = sha256(Point.BASE.toRawBytes(false));
105
+ export const TAPROOT_UNSPENDABLE_KEY: Bytes = sha256(Point.BASE.toBytes(false));
101
106
 
102
107
  export type BTC_NETWORK = {
103
108
  bech32: string;
@@ -127,3 +132,17 @@ export function compareBytes(a: Bytes, b: Bytes): number {
127
132
  for (let i = 0; i < len; i++) if (a[i] != b[i]) return Math.sign(a[i] - b[i]);
128
133
  return Math.sign(a.length - b.length);
129
134
  }
135
+
136
+ // Reverses key<->values
137
+ export function reverseObject<T extends Record<string, string | number>>(
138
+ obj: T
139
+ ): { [K in T[keyof T]]: Extract<keyof T, string> } {
140
+ const res = {} as any;
141
+ for (const k in obj) {
142
+ if (res[obj[k]] !== undefined) throw new Error('duplicate key');
143
+ res[obj[k]] = k;
144
+ }
145
+ return res;
146
+ }
147
+
148
+ export type ValueOf<T> = T[keyof T];
package/src/utxo.ts CHANGED
@@ -408,7 +408,7 @@ export class _Estimator {
408
408
  inputsAmount += amount;
409
409
  res.add(idx);
410
410
  // inputsAmount is enough to cover cost of tx
411
- if (!all && targetAmount + fee <= inputsAmount)
411
+ if (!all && targetAmount + fee <= inputsAmount && num >= this.requiredIndices.length)
412
412
  return { indices: Array.from(res), fee, weight: totalWeight, total: inputsAmount };
413
413
  }
414
414
  for (const idx of indices) {
package/transaction.d.ts CHANGED
@@ -25,6 +25,7 @@ export interface TxOpts {
25
25
  version?: number;
26
26
  lockTime?: number;
27
27
  PSBTVersion?: number;
28
+ allowUnknownVersion?: boolean;
28
29
  /** @deprecated Use `allowUnknownOutputs` */
29
30
  allowUnknowOutput?: boolean;
30
31
  allowUnknownOutputs?: boolean;
@@ -42,23 +43,27 @@ export interface TxOpts {
42
43
  * Internal, exported only for backwards-compat. Use `SigHash` instead.
43
44
  * @deprecated
44
45
  */
45
- export declare enum SignatureHash {
46
- DEFAULT = 0,
47
- ALL = 1,
48
- NONE = 2,
49
- SINGLE = 3,
50
- ANYONECANPAY = 128
51
- }
52
- export declare enum SigHash {
53
- DEFAULT = 0,
54
- ALL = 1,
55
- NONE = 2,
56
- SINGLE = 3,
57
- DEFAULT_ANYONECANPAY = 128,
58
- ALL_ANYONECANPAY = 129,
59
- NONE_ANYONECANPAY = 130,
60
- SINGLE_ANYONECANPAY = 131
61
- }
46
+ export declare const SignatureHash: {
47
+ DEFAULT: number;
48
+ ALL: number;
49
+ NONE: number;
50
+ SINGLE: number;
51
+ ANYONECANPAY: number;
52
+ };
53
+ export declare const SigHash: {
54
+ readonly DEFAULT: number;
55
+ readonly ALL: number;
56
+ readonly NONE: number;
57
+ readonly SINGLE: number;
58
+ readonly DEFAULT_ANYONECANPAY: number;
59
+ readonly ALL_ANYONECANPAY: number;
60
+ readonly NONE_ANYONECANPAY: number;
61
+ readonly SINGLE_ANYONECANPAY: number;
62
+ };
63
+ export declare const SigHashNames: {
64
+ [x: number]: "DEFAULT" | "ALL" | "NONE" | "SINGLE" | "DEFAULT_ANYONECANPAY" | "ALL_ANYONECANPAY" | "NONE_ANYONECANPAY" | "SINGLE_ANYONECANPAY";
65
+ };
66
+ export type SigHash = u.ValueOf<typeof SigHash>;
62
67
  export type TransactionInputRequired = {
63
68
  txid: Bytes;
64
69
  index: number;
@@ -104,17 +109,7 @@ export declare function getInputType(input: psbt.TransactionInput, allowLegacyWi
104
109
  script: Bytes;
105
110
  };
106
111
  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;
112
+ defaultSighash: number;
118
113
  sighash: number;
119
114
  };
120
115
  export declare class Transaction {
@@ -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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"}