@scure/btc-signer 1.8.1 → 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 (85) hide show
  1. package/README.md +8 -5
  2. package/_type_test.js +9 -11
  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 -90
  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 -102
  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 +1 -1
  26. package/src/musig2.ts +43 -50
  27. package/src/p2p.ts +28 -40
  28. package/src/psbt.ts +7 -7
  29. package/src/script.ts +29 -26
  30. package/src/transaction.ts +21 -21
  31. package/src/utils.ts +41 -22
  32. package/transaction.d.ts +22 -28
  33. package/transaction.d.ts.map +1 -1
  34. package/transaction.js +134 -151
  35. package/transaction.js.map +1 -1
  36. package/utils.d.ts +11 -5
  37. package/utils.d.ts.map +1 -1
  38. package/utils.js +60 -62
  39. package/utils.js.map +1 -1
  40. package/utxo.d.ts +45 -45
  41. package/utxo.d.ts.map +1 -1
  42. package/utxo.js +62 -58
  43. package/utxo.js.map +1 -1
  44. package/esm/_type_test.d.ts +0 -2
  45. package/esm/_type_test.d.ts.map +0 -1
  46. package/esm/_type_test.js +0 -57
  47. package/esm/_type_test.js.map +0 -1
  48. package/esm/index.d.ts +0 -22
  49. package/esm/index.d.ts.map +0 -1
  50. package/esm/index.js +0 -22
  51. package/esm/index.js.map +0 -1
  52. package/esm/musig2.d.ts +0 -148
  53. package/esm/musig2.d.ts.map +0 -1
  54. package/esm/musig2.js +0 -404
  55. package/esm/musig2.js.map +0 -1
  56. package/esm/p2p.d.ts +0 -38
  57. package/esm/p2p.d.ts.map +0 -1
  58. package/esm/p2p.js +0 -156
  59. package/esm/p2p.js.map +0 -1
  60. package/esm/package.json +0 -1
  61. package/esm/payment.d.ts +0 -200
  62. package/esm/payment.d.ts.map +0 -1
  63. package/esm/payment.js +0 -697
  64. package/esm/payment.js.map +0 -1
  65. package/esm/psbt.d.ts +0 -820
  66. package/esm/psbt.d.ts.map +0 -1
  67. package/esm/psbt.js +0 -409
  68. package/esm/psbt.js.map +0 -1
  69. package/esm/script.d.ts +0 -170
  70. package/esm/script.d.ts.map +0 -1
  71. package/esm/script.js +0 -356
  72. package/esm/script.js.map +0 -1
  73. package/esm/transaction.d.ts +0 -172
  74. package/esm/transaction.d.ts.map +0 -1
  75. package/esm/transaction.js +0 -1185
  76. package/esm/transaction.js.map +0 -1
  77. package/esm/utils.d.ts +0 -35
  78. package/esm/utils.d.ts.map +0 -1
  79. package/esm/utils.js +0 -118
  80. package/esm/utils.js.map +0 -1
  81. package/esm/utxo.d.ts +0 -198
  82. package/esm/utxo.d.ts.map +0 -1
  83. package/esm/utxo.js +0 -461
  84. package/esm/utxo.js.map +0 -1
  85. package/src/package.json +0 -3
package/esm/payment.d.ts DELETED
@@ -1,200 +0,0 @@
1
- import { type Coder } from '@scure/base';
2
- import * as P from 'micro-packed';
3
- import { type TransactionInput } from './psbt.ts';
4
- import { type ScriptType } from './script.ts';
5
- import { type BTC_NETWORK, type Bytes } from './utils.ts';
6
- export type P2Ret = {
7
- type: string;
8
- script: Bytes;
9
- address?: string;
10
- redeemScript?: Bytes;
11
- witnessScript?: Bytes;
12
- hash?: Bytes;
13
- };
14
- type OutP2AType = {
15
- type: 'p2a';
16
- script: Bytes;
17
- };
18
- type OutPKType = {
19
- type: 'pk';
20
- pubkey: Bytes;
21
- };
22
- export type OptScript = ScriptType | undefined;
23
- type OutPKHType = {
24
- type: 'pkh';
25
- hash: Bytes;
26
- };
27
- type OutSHType = {
28
- type: 'sh';
29
- hash: Bytes;
30
- };
31
- type OutWSHType = {
32
- type: 'wsh';
33
- hash: Bytes;
34
- };
35
- type OutWPKHType = {
36
- type: 'wpkh';
37
- hash: Bytes;
38
- };
39
- type OutMSType = {
40
- type: 'ms';
41
- pubkeys: Bytes[];
42
- m: number;
43
- };
44
- type OutTRType = {
45
- type: 'tr';
46
- pubkey: Bytes;
47
- };
48
- type OutTRNSType = {
49
- type: 'tr_ns';
50
- pubkeys: Bytes[];
51
- };
52
- type OutTRMSType = {
53
- type: 'tr_ms';
54
- pubkeys: Bytes[];
55
- m: number;
56
- };
57
- type OutUnknownType = {
58
- type: 'unknown';
59
- script: Bytes;
60
- };
61
- type FinalizeSignature = [{
62
- pubKey: Bytes;
63
- leafHash: Bytes;
64
- }, Bytes];
65
- type CustomScriptOut = {
66
- type: string;
67
- } & Record<string, any>;
68
- export type CustomScript = Coder<OptScript, CustomScriptOut | undefined> & {
69
- finalizeTaproot?: (script: Bytes, parsed: CustomScriptOut, signatures: FinalizeSignature[]) => Bytes[] | undefined;
70
- };
71
- export declare const OutScript: P.CoderType<NonNullable<OutP2AType | OutPKType | OutPKHType | OutSHType | OutWSHType | OutWPKHType | OutMSType | OutTRType | OutTRNSType | OutTRMSType | OutUnknownType | undefined>>;
72
- export type OutScriptType = typeof OutScript;
73
- export declare function checkScript(script?: Bytes, redeemScript?: Bytes, witnessScript?: Bytes): void;
74
- type Extends<T, U> = T extends U ? T : never;
75
- export type P2PK = {
76
- type: 'pk';
77
- script: Bytes;
78
- };
79
- export declare const p2pk: (pubkey: Bytes, _network?: BTC_NETWORK) => Extends<P2PK, P2Ret>;
80
- export type P2PKH = {
81
- type: 'pkh';
82
- script: Bytes;
83
- address: string;
84
- hash: Bytes;
85
- };
86
- export declare const p2pkh: (publicKey: Bytes, network?: BTC_NETWORK) => Extends<P2PKH, P2Ret>;
87
- export type P2SHBase = {
88
- type: 'sh';
89
- redeemScript: Bytes;
90
- script: Bytes;
91
- address: string;
92
- hash: Bytes;
93
- };
94
- export type P2SHWithWitness = P2SHBase & {
95
- witnessScript: Bytes;
96
- };
97
- export type P2SHWithoutWitness = Omit<P2SHBase, 'witnessScript'>;
98
- export type P2SHReturn<T extends P2Ret> = T extends {
99
- witnessScript: Bytes;
100
- } ? P2SHWithWitness : P2SHWithoutWitness;
101
- export declare const p2sh: <T extends P2Ret>(child: T, network?: BTC_NETWORK) => Extends<P2SHReturn<T>, P2Ret>;
102
- export type P2WSH = {
103
- type: 'wsh';
104
- witnessScript: Bytes;
105
- script: Bytes;
106
- address: string;
107
- hash: Bytes;
108
- };
109
- export declare const p2wsh: (child: P2Ret, network?: BTC_NETWORK) => Extends<P2WSH, P2Ret>;
110
- export type P2WPKH = {
111
- type: 'wpkh';
112
- script: Bytes;
113
- address: string;
114
- hash: Bytes;
115
- };
116
- export declare const p2wpkh: (publicKey: Bytes, network?: BTC_NETWORK) => Extends<P2WPKH, P2Ret>;
117
- export type P2MS = {
118
- type: 'ms';
119
- script: Bytes;
120
- };
121
- export declare const p2ms: (m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean) => Extends<P2MS, P2Ret>;
122
- export type HashedTree = {
123
- type: 'leaf';
124
- version?: number;
125
- script: Bytes;
126
- hash: Bytes;
127
- } | {
128
- type: 'branch';
129
- left: HashedTree;
130
- right: HashedTree;
131
- hash: Bytes;
132
- };
133
- export type P2TR = {
134
- type: 'tr';
135
- script: Bytes;
136
- address: string;
137
- tweakedPubkey: Bytes;
138
- tapInternalKey: Bytes;
139
- };
140
- export type P2TR_TREE = P2TR & {
141
- tapMerkleRoot: Bytes;
142
- tapLeafScript: TransactionInput['tapLeafScript'];
143
- leaves: TaprootLeaf[];
144
- };
145
- export type TaprootNode = {
146
- script: Bytes | string;
147
- leafVersion?: number;
148
- weight?: number;
149
- } & Partial<P2TR_TREE>;
150
- export type TaprootScriptTree = TaprootNode | TaprootScriptTree[];
151
- export type TaprootScriptList = TaprootNode[];
152
- export declare function taprootListToTree(taprootList: TaprootScriptList): TaprootScriptTree;
153
- export type TaprootLeaf = {
154
- type: 'leaf';
155
- version?: number;
156
- script: Bytes;
157
- hash: Bytes;
158
- path: Bytes[];
159
- };
160
- export type HashedTreeWithPath = TaprootLeaf | {
161
- type: 'branch';
162
- left: HashedTreeWithPath;
163
- right: HashedTreeWithPath;
164
- hash: Bytes;
165
- path: Bytes[];
166
- };
167
- export declare const TAP_LEAF_VERSION = 192;
168
- export declare const tapLeafHash: (script: Bytes, version?: number) => Bytes;
169
- export type P2TRRet<T> = T extends TaprootScriptTree ? P2TR_TREE : P2TR;
170
- export declare function p2tr(internalPubKey: Bytes | string, tree?: undefined, network?: BTC_NETWORK, allowUnknownOutputs?: boolean, customScripts?: CustomScript[]): Extends<P2TR, P2Ret>;
171
- export declare function p2tr(internalPubKey: Bytes | string, tree: TaprootScriptTree, network?: BTC_NETWORK, allowUnknownOutputs?: boolean, customScripts?: CustomScript[]): Extends<P2TR_TREE, P2Ret>;
172
- export declare function combinations<T>(m: number, list: T[]): T[][];
173
- /**
174
- * M-of-N multi-leaf wallet via p2tr_ns. If m == n, single script is emitted.
175
- * Takes O(n^2) if m != n. 99-of-100 is ok, 5-of-100 is not.
176
- * `2-of-[A,B,C] => [A,B] | [A,C] | [B,C]`
177
- */
178
- export type P2TR_NS = {
179
- type: 'tr_ns';
180
- script: Bytes;
181
- };
182
- export declare const p2tr_ns: (m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean) => Extends<P2TR_NS, P2Ret>[];
183
- export type P2TR_PK = P2TR_NS;
184
- export declare const p2tr_pk: (pubkey: Bytes) => Extends<P2TR_PK, P2Ret>;
185
- export type P2TR_MS = {
186
- type: 'tr_ms';
187
- script: Bytes;
188
- };
189
- export declare function p2tr_ms(m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean): Extends<P2TR_MS, P2Ret>;
190
- export declare function getAddress(type: 'pkh' | 'wpkh' | 'tr', privKey: Bytes, network?: BTC_NETWORK): string | undefined;
191
- export declare const _sortPubkeys: (pubkeys: Bytes[]) => Bytes[];
192
- export declare function multisig(m: number, pubkeys: Bytes[], sorted?: boolean, witness?: boolean, network?: BTC_NETWORK): P2Ret;
193
- export declare function sortedMultisig(m: number, pubkeys: Bytes[], witness?: boolean, network?: BTC_NETWORK): P2Ret;
194
- export declare function WIF(network?: BTC_NETWORK): Coder<Bytes, string>;
195
- export declare function Address(network?: BTC_NETWORK): {
196
- encode(from: P.UnwrapCoder<OutScriptType>): string;
197
- decode(address: string): P.UnwrapCoder<OutScriptType>;
198
- };
199
- export {};
200
- //# sourceMappingURL=payment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"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"}