@scure/btc-signer 1.6.0 → 1.7.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.
- package/README.md +142 -24
- package/esm/musig2.d.ts +148 -0
- package/esm/musig2.d.ts.map +1 -0
- package/esm/musig2.js +405 -0
- package/esm/musig2.js.map +1 -0
- package/esm/payment.d.ts.map +1 -1
- package/esm/psbt.d.ts +462 -462
- package/esm/psbt.d.ts.map +1 -1
- package/esm/psbt.js +8 -4
- package/esm/psbt.js.map +1 -1
- package/esm/script.d.ts +16 -16
- package/esm/script.d.ts.map +1 -1
- package/esm/transaction.d.ts +3 -2
- package/esm/transaction.d.ts.map +1 -1
- package/esm/transaction.js +3 -3
- package/esm/transaction.js.map +1 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utxo.d.ts +73 -73
- package/esm/utxo.d.ts.map +1 -1
- package/esm/utxo.js +14 -10
- package/esm/utxo.js.map +1 -1
- package/musig2.d.ts +148 -0
- package/musig2.d.ts.map +1 -0
- package/musig2.js +417 -0
- package/musig2.js.map +1 -0
- package/package.json +8 -4
- package/payment.d.ts.map +1 -1
- package/psbt.d.ts +462 -462
- package/psbt.d.ts.map +1 -1
- package/psbt.js +8 -4
- package/psbt.js.map +1 -1
- package/script.d.ts +16 -16
- package/script.d.ts.map +1 -1
- package/src/musig2.ts +517 -0
- package/src/psbt.ts +9 -3
- package/src/transaction.ts +14 -5
- package/src/utxo.ts +23 -14
- package/transaction.d.ts +3 -2
- package/transaction.d.ts.map +1 -1
- package/transaction.js +3 -3
- package/transaction.js.map +1 -1
- package/utils.d.ts.map +1 -1
- package/utxo.d.ts +73 -73
- package/utxo.d.ts.map +1 -1
- package/utxo.js +14 -10
- package/utxo.js.map +1 -1
package/esm/utxo.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { SignatureHash, Transaction, type TxOpts } from './transaction.js';
|
|
|
5
5
|
import { type Bytes, NETWORK } from './utils.js';
|
|
6
6
|
export type PSBTInputs = psbt.PSBTKeyMapKeys<typeof psbt.PSBTInput>;
|
|
7
7
|
export declare function getPrevOut(input: psbt.TransactionInput): P.UnwrapCoder<typeof RawOutput>;
|
|
8
|
-
export declare function normalizeInput(i: psbt.TransactionInputUpdate, cur?: psbt.TransactionInput, allowedFields?: (keyof psbt.TransactionInput)[], disableScriptCheck?: boolean): psbt.TransactionInput;
|
|
8
|
+
export declare function normalizeInput(i: psbt.TransactionInputUpdate, cur?: psbt.TransactionInput, allowedFields?: (keyof psbt.TransactionInput)[], disableScriptCheck?: boolean, allowUnknown?: boolean): psbt.TransactionInput;
|
|
9
9
|
export declare function getInputType(input: psbt.TransactionInput, allowLegacyWitnessUtxo?: boolean): {
|
|
10
10
|
type: string;
|
|
11
11
|
txType: string;
|
|
@@ -39,7 +39,7 @@ export declare function getInputType(input: psbt.TransactionInput, allowLegacyWi
|
|
|
39
39
|
type: "unknown";
|
|
40
40
|
script: Bytes;
|
|
41
41
|
};
|
|
42
|
-
lastScript:
|
|
42
|
+
lastScript: P.Bytes;
|
|
43
43
|
defaultSighash: SignatureHash.ALL;
|
|
44
44
|
sighash: number;
|
|
45
45
|
} | {
|
|
@@ -49,7 +49,7 @@ export declare function getInputType(input: psbt.TransactionInput, allowLegacyWi
|
|
|
49
49
|
type: "tr";
|
|
50
50
|
pubkey: Bytes;
|
|
51
51
|
};
|
|
52
|
-
lastScript: Uint8Array
|
|
52
|
+
lastScript: Uint8Array<ArrayBufferLike>;
|
|
53
53
|
defaultSighash: SignatureHash.DEFAULT;
|
|
54
54
|
sighash: number;
|
|
55
55
|
};
|
|
@@ -85,14 +85,14 @@ type ExactStrategy = `exact${SortStrategy}`;
|
|
|
85
85
|
type AccumStrategy = `accum${SortStrategy}`;
|
|
86
86
|
export type SelectionStrategy = 'all' | 'default' | AccumStrategy | `${ExactStrategy}/${AccumStrategy}`;
|
|
87
87
|
export declare class _Estimator {
|
|
88
|
-
private outputs;
|
|
89
|
-
private opts;
|
|
90
88
|
private baseWeight;
|
|
91
89
|
private changeWeight;
|
|
92
90
|
private amount;
|
|
93
91
|
private requiredIndices;
|
|
94
92
|
private normalizedInputs;
|
|
95
93
|
private dust;
|
|
94
|
+
private outputs;
|
|
95
|
+
private opts;
|
|
96
96
|
constructor(inputs: psbt.TransactionInputUpdate[], outputs: Output[], opts: EstimatorOpts);
|
|
97
97
|
private checkInputIdx;
|
|
98
98
|
private sortIndices;
|
|
@@ -111,62 +111,62 @@ export declare class _Estimator {
|
|
|
111
111
|
version: number;
|
|
112
112
|
segwitFlag: boolean | undefined;
|
|
113
113
|
inputs: P.StructInput<{
|
|
114
|
-
txid: any;
|
|
115
|
-
index: any;
|
|
116
|
-
finalScriptSig: any;
|
|
117
|
-
sequence: any;
|
|
114
|
+
txid: /*elided*/ any;
|
|
115
|
+
index: /*elided*/ any;
|
|
116
|
+
finalScriptSig: /*elided*/ any;
|
|
117
|
+
sequence: /*elided*/ any;
|
|
118
118
|
}>[];
|
|
119
119
|
outputs: P.StructInput<{
|
|
120
|
-
amount: any;
|
|
121
|
-
script: any;
|
|
120
|
+
amount: /*elided*/ any;
|
|
121
|
+
script: /*elided*/ any;
|
|
122
122
|
}>[];
|
|
123
|
-
witnesses: P.Option<Uint8Array[][]>;
|
|
123
|
+
witnesses: P.Option<Uint8Array<ArrayBufferLike>[][]>;
|
|
124
124
|
lockTime: number;
|
|
125
125
|
}>>, readonly [], readonly [0, 2], false];
|
|
126
126
|
readonly witnessUtxo: readonly [1, false, P.CoderType<P.StructInput<{
|
|
127
127
|
amount: bigint;
|
|
128
|
-
script: Uint8Array
|
|
128
|
+
script: Uint8Array<ArrayBufferLike>;
|
|
129
129
|
}>>, readonly [], readonly [0, 2], false];
|
|
130
|
-
readonly partialSig: readonly [2, P.CoderType<Uint8Array
|
|
130
|
+
readonly partialSig: readonly [2, P.CoderType<Uint8Array<ArrayBufferLike>>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
131
131
|
readonly sighashType: readonly [3, false, P.CoderType<number>, readonly [], readonly [0, 2], false];
|
|
132
|
-
readonly redeemScript: readonly [4, false, P.CoderType<
|
|
133
|
-
readonly witnessScript: readonly [5, false, P.CoderType<
|
|
134
|
-
readonly bip32Derivation: readonly [6, P.CoderType<Uint8Array
|
|
132
|
+
readonly redeemScript: readonly [4, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
133
|
+
readonly witnessScript: readonly [5, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
134
|
+
readonly bip32Derivation: readonly [6, P.CoderType<Uint8Array<ArrayBufferLike>>, P.CoderType<P.StructInput<{
|
|
135
135
|
fingerprint: number;
|
|
136
136
|
path: number[];
|
|
137
137
|
}>>, readonly [], readonly [0, 2], false];
|
|
138
|
-
readonly finalScriptSig: readonly [7, false, P.CoderType<
|
|
139
|
-
readonly finalScriptWitness: readonly [8, false, P.CoderType<Uint8Array[]>, readonly [], readonly [0, 2], false];
|
|
140
|
-
readonly porCommitment: readonly [9, false, P.CoderType<
|
|
141
|
-
readonly ripemd160: readonly [10, P.CoderType<
|
|
142
|
-
readonly sha256: readonly [11, P.CoderType<
|
|
143
|
-
readonly hash160: readonly [12, P.CoderType<
|
|
144
|
-
readonly hash256: readonly [13, P.CoderType<
|
|
145
|
-
readonly txid: readonly [14, false, P.CoderType<
|
|
138
|
+
readonly finalScriptSig: readonly [7, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
139
|
+
readonly finalScriptWitness: readonly [8, false, P.CoderType<Uint8Array<ArrayBufferLike>[]>, readonly [], readonly [0, 2], false];
|
|
140
|
+
readonly porCommitment: readonly [9, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
141
|
+
readonly ripemd160: readonly [10, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
142
|
+
readonly sha256: readonly [11, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
143
|
+
readonly hash160: readonly [12, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
144
|
+
readonly hash256: readonly [13, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
145
|
+
readonly txid: readonly [14, false, P.CoderType<P.Bytes>, readonly [2], readonly [2], true];
|
|
146
146
|
readonly index: readonly [15, false, P.CoderType<number>, readonly [2], readonly [2], true];
|
|
147
147
|
readonly sequence: readonly [16, false, P.CoderType<number>, readonly [], readonly [2], true];
|
|
148
148
|
readonly requiredTimeLocktime: readonly [17, false, P.CoderType<number>, readonly [], readonly [2], false];
|
|
149
149
|
readonly requiredHeightLocktime: readonly [18, false, P.CoderType<number>, readonly [], readonly [2], false];
|
|
150
|
-
readonly tapKeySig: readonly [19, false, P.CoderType<Uint8Array
|
|
150
|
+
readonly tapKeySig: readonly [19, false, P.CoderType<Uint8Array<ArrayBufferLike>>, readonly [], readonly [0, 2], false];
|
|
151
151
|
readonly tapScriptSig: readonly [20, P.CoderType<P.StructInput<{
|
|
152
|
-
pubKey: Uint8Array
|
|
153
|
-
leafHash:
|
|
154
|
-
}>>, P.CoderType<Uint8Array
|
|
152
|
+
pubKey: Uint8Array<ArrayBufferLike>;
|
|
153
|
+
leafHash: P.Bytes;
|
|
154
|
+
}>>, P.CoderType<Uint8Array<ArrayBufferLike>>, readonly [], readonly [0, 2], false];
|
|
155
155
|
readonly tapLeafScript: readonly [21, P.CoderType<P.StructInput<{
|
|
156
156
|
version: number;
|
|
157
|
-
internalKey:
|
|
158
|
-
merklePath:
|
|
159
|
-
}>>, P.CoderType<
|
|
160
|
-
readonly tapBip32Derivation: readonly [22, P.CoderType<
|
|
161
|
-
hashes:
|
|
157
|
+
internalKey: P.Bytes;
|
|
158
|
+
merklePath: P.Bytes[];
|
|
159
|
+
}>>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
160
|
+
readonly tapBip32Derivation: readonly [22, P.CoderType<P.Bytes>, P.CoderType<P.StructInput<{
|
|
161
|
+
hashes: P.Bytes[];
|
|
162
162
|
der: P.StructInput<{
|
|
163
|
-
fingerprint: any;
|
|
164
|
-
path: any;
|
|
163
|
+
fingerprint: /*elided*/ any;
|
|
164
|
+
path: /*elided*/ any;
|
|
165
165
|
}>;
|
|
166
166
|
}>>, readonly [], readonly [0, 2], false];
|
|
167
|
-
readonly tapInternalKey: readonly [23, false, P.CoderType<Uint8Array
|
|
168
|
-
readonly tapMerkleRoot: readonly [24, false, P.CoderType<
|
|
169
|
-
readonly proprietary: readonly [252, P.CoderType<
|
|
167
|
+
readonly tapInternalKey: readonly [23, false, P.CoderType<Uint8Array<ArrayBufferLike>>, readonly [], readonly [0, 2], false];
|
|
168
|
+
readonly tapMerkleRoot: readonly [24, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
169
|
+
readonly proprietary: readonly [252, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
170
170
|
}>[];
|
|
171
171
|
outputs: Output[];
|
|
172
172
|
fee: bigint | undefined;
|
|
@@ -182,62 +182,62 @@ export declare function selectUTXO(inputs: psbt.TransactionInputUpdate[], output
|
|
|
182
182
|
version: number;
|
|
183
183
|
segwitFlag: boolean | undefined;
|
|
184
184
|
inputs: P.StructInput<{
|
|
185
|
-
txid: any;
|
|
186
|
-
index: any;
|
|
187
|
-
finalScriptSig: any;
|
|
188
|
-
sequence: any;
|
|
185
|
+
txid: /*elided*/ any;
|
|
186
|
+
index: /*elided*/ any;
|
|
187
|
+
finalScriptSig: /*elided*/ any;
|
|
188
|
+
sequence: /*elided*/ any;
|
|
189
189
|
}>[];
|
|
190
190
|
outputs: P.StructInput<{
|
|
191
|
-
amount: any;
|
|
192
|
-
script: any;
|
|
191
|
+
amount: /*elided*/ any;
|
|
192
|
+
script: /*elided*/ any;
|
|
193
193
|
}>[];
|
|
194
|
-
witnesses: P.Option<Uint8Array[][]>;
|
|
194
|
+
witnesses: P.Option<Uint8Array<ArrayBufferLike>[][]>;
|
|
195
195
|
lockTime: number;
|
|
196
196
|
}>>, readonly [], readonly [0, 2], false];
|
|
197
197
|
readonly witnessUtxo: readonly [1, false, P.CoderType<P.StructInput<{
|
|
198
198
|
amount: bigint;
|
|
199
|
-
script: Uint8Array
|
|
199
|
+
script: Uint8Array<ArrayBufferLike>;
|
|
200
200
|
}>>, readonly [], readonly [0, 2], false];
|
|
201
|
-
readonly partialSig: readonly [2, P.CoderType<Uint8Array
|
|
201
|
+
readonly partialSig: readonly [2, P.CoderType<Uint8Array<ArrayBufferLike>>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
202
202
|
readonly sighashType: readonly [3, false, P.CoderType<number>, readonly [], readonly [0, 2], false];
|
|
203
|
-
readonly redeemScript: readonly [4, false, P.CoderType<
|
|
204
|
-
readonly witnessScript: readonly [5, false, P.CoderType<
|
|
205
|
-
readonly bip32Derivation: readonly [6, P.CoderType<Uint8Array
|
|
203
|
+
readonly redeemScript: readonly [4, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
204
|
+
readonly witnessScript: readonly [5, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
205
|
+
readonly bip32Derivation: readonly [6, P.CoderType<Uint8Array<ArrayBufferLike>>, P.CoderType<P.StructInput<{
|
|
206
206
|
fingerprint: number;
|
|
207
207
|
path: number[];
|
|
208
208
|
}>>, readonly [], readonly [0, 2], false];
|
|
209
|
-
readonly finalScriptSig: readonly [7, false, P.CoderType<
|
|
210
|
-
readonly finalScriptWitness: readonly [8, false, P.CoderType<Uint8Array[]>, readonly [], readonly [0, 2], false];
|
|
211
|
-
readonly porCommitment: readonly [9, false, P.CoderType<
|
|
212
|
-
readonly ripemd160: readonly [10, P.CoderType<
|
|
213
|
-
readonly sha256: readonly [11, P.CoderType<
|
|
214
|
-
readonly hash160: readonly [12, P.CoderType<
|
|
215
|
-
readonly hash256: readonly [13, P.CoderType<
|
|
216
|
-
readonly txid: readonly [14, false, P.CoderType<
|
|
209
|
+
readonly finalScriptSig: readonly [7, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
210
|
+
readonly finalScriptWitness: readonly [8, false, P.CoderType<Uint8Array<ArrayBufferLike>[]>, readonly [], readonly [0, 2], false];
|
|
211
|
+
readonly porCommitment: readonly [9, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
212
|
+
readonly ripemd160: readonly [10, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
213
|
+
readonly sha256: readonly [11, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
214
|
+
readonly hash160: readonly [12, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
215
|
+
readonly hash256: readonly [13, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
216
|
+
readonly txid: readonly [14, false, P.CoderType<P.Bytes>, readonly [2], readonly [2], true];
|
|
217
217
|
readonly index: readonly [15, false, P.CoderType<number>, readonly [2], readonly [2], true];
|
|
218
218
|
readonly sequence: readonly [16, false, P.CoderType<number>, readonly [], readonly [2], true];
|
|
219
219
|
readonly requiredTimeLocktime: readonly [17, false, P.CoderType<number>, readonly [], readonly [2], false];
|
|
220
220
|
readonly requiredHeightLocktime: readonly [18, false, P.CoderType<number>, readonly [], readonly [2], false];
|
|
221
|
-
readonly tapKeySig: readonly [19, false, P.CoderType<Uint8Array
|
|
221
|
+
readonly tapKeySig: readonly [19, false, P.CoderType<Uint8Array<ArrayBufferLike>>, readonly [], readonly [0, 2], false];
|
|
222
222
|
readonly tapScriptSig: readonly [20, P.CoderType<P.StructInput<{
|
|
223
|
-
pubKey: Uint8Array
|
|
224
|
-
leafHash:
|
|
225
|
-
}>>, P.CoderType<Uint8Array
|
|
223
|
+
pubKey: Uint8Array<ArrayBufferLike>;
|
|
224
|
+
leafHash: P.Bytes;
|
|
225
|
+
}>>, P.CoderType<Uint8Array<ArrayBufferLike>>, readonly [], readonly [0, 2], false];
|
|
226
226
|
readonly tapLeafScript: readonly [21, P.CoderType<P.StructInput<{
|
|
227
227
|
version: number;
|
|
228
|
-
internalKey:
|
|
229
|
-
merklePath:
|
|
230
|
-
}>>, P.CoderType<
|
|
231
|
-
readonly tapBip32Derivation: readonly [22, P.CoderType<
|
|
232
|
-
hashes:
|
|
228
|
+
internalKey: P.Bytes;
|
|
229
|
+
merklePath: P.Bytes[];
|
|
230
|
+
}>>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
231
|
+
readonly tapBip32Derivation: readonly [22, P.CoderType<P.Bytes>, P.CoderType<P.StructInput<{
|
|
232
|
+
hashes: P.Bytes[];
|
|
233
233
|
der: P.StructInput<{
|
|
234
|
-
fingerprint: any;
|
|
235
|
-
path: any;
|
|
234
|
+
fingerprint: /*elided*/ any;
|
|
235
|
+
path: /*elided*/ any;
|
|
236
236
|
}>;
|
|
237
237
|
}>>, readonly [], readonly [0, 2], false];
|
|
238
|
-
readonly tapInternalKey: readonly [23, false, P.CoderType<Uint8Array
|
|
239
|
-
readonly tapMerkleRoot: readonly [24, false, P.CoderType<
|
|
240
|
-
readonly proprietary: readonly [252, P.CoderType<
|
|
238
|
+
readonly tapInternalKey: readonly [23, false, P.CoderType<Uint8Array<ArrayBufferLike>>, readonly [], readonly [0, 2], false];
|
|
239
|
+
readonly tapMerkleRoot: readonly [24, false, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
240
|
+
readonly proprietary: readonly [252, P.CoderType<P.Bytes>, P.CoderType<P.Bytes>, readonly [], readonly [0, 2], false];
|
|
241
241
|
}>[];
|
|
242
242
|
outputs: Output[];
|
|
243
243
|
fee: bigint | undefined;
|
package/esm/utxo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../src/utxo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAkB,SAAS,EAAuC,MAAM,aAAa,CAAC;AAC7F,OAAO,EAEL,aAAa,EACb,WAAW,EACX,KAAK,MAAM,EAEZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,KAAK,EACV,OAAO,EAQR,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AAGpE,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,SAAS,CAAC,CAMxF;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAC9B,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAC3B,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAC/C,kBAAkB,UAAQ,
|
|
1
|
+
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../src/utxo.ts"],"names":[],"mappings":"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"}
|
package/esm/utxo.js
CHANGED
|
@@ -17,7 +17,7 @@ export function getPrevOut(input) {
|
|
|
17
17
|
else
|
|
18
18
|
throw new Error('Cannot find previous output info');
|
|
19
19
|
}
|
|
20
|
-
export function normalizeInput(i, cur, allowedFields, disableScriptCheck = false) {
|
|
20
|
+
export function normalizeInput(i, cur, allowedFields, disableScriptCheck = false, allowUnknown = false) {
|
|
21
21
|
let { nonWitnessUtxo, txid } = i;
|
|
22
22
|
// String support for common fields. We usually prefer Uint8Array to avoid errors
|
|
23
23
|
// like hex looking string accidentally passed, however, in case of nonWitnessUtxo
|
|
@@ -41,7 +41,7 @@ export function normalizeInput(i, cur, allowedFields, disableScriptCheck = false
|
|
|
41
41
|
res.sequence = DEFAULT_SEQUENCE;
|
|
42
42
|
if (res.tapMerkleRoot === null)
|
|
43
43
|
delete res.tapMerkleRoot;
|
|
44
|
-
res = psbt.mergeKeyMap(psbt.PSBTInput, res, cur, allowedFields);
|
|
44
|
+
res = psbt.mergeKeyMap(psbt.PSBTInput, res, cur, allowedFields, allowUnknown);
|
|
45
45
|
psbt.PSBTInputCoder.encode(res); // Validates that everything is correct at this point
|
|
46
46
|
let prevOut;
|
|
47
47
|
if (res.nonWitnessUtxo && res.index !== undefined)
|
|
@@ -285,9 +285,9 @@ function getScript(o, opts = {}, network = NETWORK) {
|
|
|
285
285
|
// internal stuff, exported for tests only
|
|
286
286
|
export class _Estimator {
|
|
287
287
|
constructor(inputs, outputs, opts) {
|
|
288
|
+
this.requiredIndices = [];
|
|
288
289
|
this.outputs = outputs;
|
|
289
290
|
this.opts = opts;
|
|
290
|
-
this.requiredIndices = [];
|
|
291
291
|
if (typeof opts.feePerByte !== 'bigint')
|
|
292
292
|
throw new Error(`Estimator: wrong feePerByte=${opts.feePerByte}, should be of type bigint but got ${typeof opts.feePerByte}.`);
|
|
293
293
|
// Dust stuff
|
|
@@ -343,7 +343,7 @@ export class _Estimator {
|
|
|
343
343
|
}
|
|
344
344
|
const inputKeys = new Set();
|
|
345
345
|
this.normalizedInputs = allInputs.map((i) => {
|
|
346
|
-
const normalized = normalizeInput(i, undefined, undefined, opts.disableScriptCheck);
|
|
346
|
+
const normalized = normalizeInput(i, undefined, undefined, opts.disableScriptCheck, opts.allowUnknown);
|
|
347
347
|
inputBeforeSign(normalized); // check fields
|
|
348
348
|
const key = `${hex.encode(normalized.txid)}:${normalized.index}`;
|
|
349
349
|
if (!opts.allowSameUtxo && inputKeys.has(key))
|
|
@@ -421,10 +421,12 @@ export class _Estimator {
|
|
|
421
421
|
let num = 0;
|
|
422
422
|
let inputsAmount = 0n;
|
|
423
423
|
const targetAmount = this.amount;
|
|
424
|
-
const res =
|
|
424
|
+
const res = new Set();
|
|
425
425
|
let fee;
|
|
426
426
|
for (const idx of this.requiredIndices) {
|
|
427
427
|
this.checkInputIdx(idx);
|
|
428
|
+
if (res.has(idx))
|
|
429
|
+
throw new Error('required input encountered multiple times'); // should not happen
|
|
428
430
|
const { estimate, amount } = this.normalizedInputs[idx];
|
|
429
431
|
let newWeight = weight + estimate.weight;
|
|
430
432
|
if (!hasWitnesses && estimate.hasWitnesses)
|
|
@@ -436,13 +438,15 @@ export class _Estimator {
|
|
|
436
438
|
hasWitnesses = true;
|
|
437
439
|
num++;
|
|
438
440
|
inputsAmount += amount;
|
|
439
|
-
res.
|
|
441
|
+
res.add(idx);
|
|
440
442
|
// inputsAmount is enough to cover cost of tx
|
|
441
443
|
if (!all && targetAmount + fee <= inputsAmount)
|
|
442
|
-
return { indices: res, fee, weight: totalWeight, total: inputsAmount };
|
|
444
|
+
return { indices: Array.from(res), fee, weight: totalWeight, total: inputsAmount };
|
|
443
445
|
}
|
|
444
446
|
for (const idx of indices) {
|
|
445
447
|
this.checkInputIdx(idx);
|
|
448
|
+
if (res.has(idx))
|
|
449
|
+
continue; // skip required inputs
|
|
446
450
|
const { estimate, amount, value } = this.normalizedInputs[idx];
|
|
447
451
|
let newWeight = weight + estimate.weight;
|
|
448
452
|
if (!hasWitnesses && estimate.hasWitnesses)
|
|
@@ -462,14 +466,14 @@ export class _Estimator {
|
|
|
462
466
|
hasWitnesses = true;
|
|
463
467
|
num++;
|
|
464
468
|
inputsAmount += amount;
|
|
465
|
-
res.
|
|
469
|
+
res.add(idx);
|
|
466
470
|
// inputsAmount is enough to cover cost of tx
|
|
467
471
|
if (!all && targetAmount + fee <= inputsAmount)
|
|
468
|
-
return { indices: res, fee, weight: totalWeight, total: inputsAmount };
|
|
472
|
+
return { indices: Array.from(res), fee, weight: totalWeight, total: inputsAmount };
|
|
469
473
|
}
|
|
470
474
|
if (all) {
|
|
471
475
|
const newWeight = weight + 4 * CompactSizeLen.encode(num).length;
|
|
472
|
-
return { indices: res, fee, weight: newWeight, total: inputsAmount };
|
|
476
|
+
return { indices: Array.from(res), fee, weight: newWeight, total: inputsAmount };
|
|
473
477
|
}
|
|
474
478
|
return undefined;
|
|
475
479
|
}
|
package/esm/utxo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../src/utxo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../src/utxo.ts"],"names":[],"mappings":"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"}
|
package/musig2.d.ts
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a pair of public and secret nonces used in MuSig2 signing.
|
|
3
|
+
*/
|
|
4
|
+
export type Nonces = {
|
|
5
|
+
public: Uint8Array;
|
|
6
|
+
secret: Uint8Array;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Represents a deterministic nonce, including its public part and the resulting partial signature.
|
|
10
|
+
*/
|
|
11
|
+
export type DetNonce = {
|
|
12
|
+
publicNonce: Uint8Array;
|
|
13
|
+
partialSig: Uint8Array;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Represents an error indicating an invalid contribution from a signer.
|
|
17
|
+
* This allows pointing out which participant is malicious and what specifically is wrong.
|
|
18
|
+
*/
|
|
19
|
+
export declare class InvalidContributionErr extends Error {
|
|
20
|
+
readonly idx: number;
|
|
21
|
+
constructor(idx: number, m: string);
|
|
22
|
+
}
|
|
23
|
+
export declare function IndividualPubkey(seckey: Uint8Array): Uint8Array;
|
|
24
|
+
/**
|
|
25
|
+
* Lexicographically sorts an array of public keys.
|
|
26
|
+
* @param publicKeys An array of public keys (Uint8Array).
|
|
27
|
+
* @returns A new array containing the sorted public keys.
|
|
28
|
+
* @throws {Error} If the input is not an array or if any element is not a Uint8Array of the correct length.
|
|
29
|
+
*/
|
|
30
|
+
export declare function sortKeys(publicKeys: Uint8Array[]): Uint8Array[];
|
|
31
|
+
/**
|
|
32
|
+
* Aggregates multiple public keys using the MuSig2 key aggregation algorithm.
|
|
33
|
+
* @param publicKeys An array of individual public keys (Uint8Array).
|
|
34
|
+
* @param tweaks An optional array of tweaks (Uint8Array) to apply to the aggregate public key.
|
|
35
|
+
* @param isXonly An optional array of booleans indicating whether each tweak is an X-only tweak.
|
|
36
|
+
* @returns An object containing the aggregate public key, accumulated sign, and accumulated tweak.
|
|
37
|
+
* @throws {Error} If the input is invalid, such as non array publicKeys, tweaks and isXonly array length not matching.
|
|
38
|
+
* @throws {InvalidContributionErr} If any of the public keys are invalid and cannot be processed.
|
|
39
|
+
*/
|
|
40
|
+
export declare function keyAggregate(publicKeys: Uint8Array[], tweaks?: Uint8Array[], isXonly?: boolean[]): {
|
|
41
|
+
aggPublicKey: import("@noble/curves/abstract/weierstrass.js").ProjPointType<bigint>;
|
|
42
|
+
gAcc: bigint;
|
|
43
|
+
tweakAcc: bigint;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Exports the aggregate public key to a byte array.
|
|
47
|
+
* @param ctx The result of the keyAggregate function.
|
|
48
|
+
* @returns The aggregate public key as a byte array.
|
|
49
|
+
*/
|
|
50
|
+
export declare function keyAggExport(ctx: ReturnType<typeof keyAggregate>): Uint8Array<ArrayBufferLike>;
|
|
51
|
+
/**
|
|
52
|
+
* Generates a nonce pair (public and secret) for MuSig2 signing.
|
|
53
|
+
* @param publicKey The individual public key of the signer (Uint8Array).
|
|
54
|
+
* @param secretKey The secret key of the signer (Uint8Array). Optional, included to xor randomness
|
|
55
|
+
* @param aggPublicKey The aggregate public key of all signers (Uint8Array).
|
|
56
|
+
* @param msg The message to be signed (Uint8Array).
|
|
57
|
+
* @param extraIn Extra input for nonce generation (Uint8Array).
|
|
58
|
+
* @param rand Random 32-bytes for generating the nonces (Uint8Array).
|
|
59
|
+
* @returns An object containing the public and secret nonces.
|
|
60
|
+
* @throws {Error} If the input is invalid, such as non array publicKey, secretKey, aggPublicKey.
|
|
61
|
+
*/
|
|
62
|
+
export declare function nonceGen(publicKey: Uint8Array, secretKey?: Uint8Array, aggPublicKey?: Uint8Array, msg?: Uint8Array, extraIn?: Uint8Array, rand?: Uint8Array): Nonces;
|
|
63
|
+
/**
|
|
64
|
+
* Aggregates public nonces from multiple signers into a single aggregate nonce.
|
|
65
|
+
* @param pubNonces An array of public nonces from each signer (Uint8Array). Each pubnonce is assumed to be 66 bytes (two 33‐byte parts).
|
|
66
|
+
* @returns The aggregate nonce (Uint8Array).
|
|
67
|
+
* @throws {Error} If the input is not an array or if any element is not a Uint8Array of the correct length.
|
|
68
|
+
* @throws {InvalidContributionErr} If any of the public nonces are invalid and cannot be processed.
|
|
69
|
+
*/
|
|
70
|
+
export declare function nonceAggregate(pubNonces: Uint8Array[]): Uint8Array;
|
|
71
|
+
export declare class Session {
|
|
72
|
+
private publicKeys;
|
|
73
|
+
private Q;
|
|
74
|
+
private gAcc;
|
|
75
|
+
private tweakAcc;
|
|
76
|
+
private b;
|
|
77
|
+
private R;
|
|
78
|
+
private e;
|
|
79
|
+
private tweaks;
|
|
80
|
+
private isXonly;
|
|
81
|
+
private L;
|
|
82
|
+
private secondKey;
|
|
83
|
+
/**
|
|
84
|
+
* Constructor for the Session class.
|
|
85
|
+
* It precomputes and stores values derived from the aggregate nonce, public keys,
|
|
86
|
+
* message, and optional tweaks, optimizing the signing process.
|
|
87
|
+
* @param aggNonce The aggregate nonce (Uint8Array) from all participants combined, must be 66 bytes.
|
|
88
|
+
* @param publicKeys An array of public keys (Uint8Array) from each participant, must be 33 bytes.
|
|
89
|
+
* @param msg The message (Uint8Array) to be signed.
|
|
90
|
+
* @param tweaks Optional array of tweaks (Uint8Array) to be applied to the aggregate public key, each must be 32 bytes. Defaults to [].
|
|
91
|
+
* @param isXonly Optional array of booleans indicating whether each tweak is an X-only tweak. Defaults to [].
|
|
92
|
+
* @throws {Error} If the input is invalid, such as wrong array sizes or lengths.
|
|
93
|
+
*/
|
|
94
|
+
constructor(aggNonce: Uint8Array, publicKeys: Uint8Array[], msg: Uint8Array, tweaks?: Uint8Array[], isXonly?: boolean[]);
|
|
95
|
+
/**
|
|
96
|
+
* Calculates the key aggregation coefficient for a given point.
|
|
97
|
+
* @private
|
|
98
|
+
* @param P The point to calculate the coefficient for.
|
|
99
|
+
* @returns The key aggregation coefficient as a bigint.
|
|
100
|
+
* @throws {Error} If the provided public key is not included in the list of pubkeys.
|
|
101
|
+
*/
|
|
102
|
+
private getSessionKeyAggCoeff;
|
|
103
|
+
private partialSigVerifyInternal;
|
|
104
|
+
/**
|
|
105
|
+
* Generates a partial signature for a given message, secret nonce, secret key, and session context.
|
|
106
|
+
* @param secretNonce The secret nonce for this signing session (Uint8Array). MUST be securely erased after use.
|
|
107
|
+
* @param secret The secret key of the signer (Uint8Array).
|
|
108
|
+
* @param sessionCtx The session context containing all necessary information for signing.
|
|
109
|
+
* @param fastSign if set to true, the signature is created without checking validity.
|
|
110
|
+
* @returns The partial signature (Uint8Array).
|
|
111
|
+
* @throws {Error} If the input is invalid, such as wrong array sizes, invalid nonce or secret key.
|
|
112
|
+
*/
|
|
113
|
+
sign(secretNonce: Uint8Array, secret: Uint8Array, fastSign?: boolean): Uint8Array;
|
|
114
|
+
/**
|
|
115
|
+
* Verifies a partial signature against the aggregate public key and other session parameters.
|
|
116
|
+
* @param partialSig The partial signature to verify (Uint8Array).
|
|
117
|
+
* @param pubNonces An array of public nonces from each signer (Uint8Array).
|
|
118
|
+
* @param pubKeys An array of public keys from each signer (Uint8Array).
|
|
119
|
+
* @param tweaks An array of tweaks applied to the aggregate public key.
|
|
120
|
+
* @param isXonly An array of booleans indicating whether each tweak is an X-only tweak.
|
|
121
|
+
* @param msg The message that was signed (Uint8Array).
|
|
122
|
+
* @param i The index of the signer whose partial signature is being verified.
|
|
123
|
+
* @returns True if the partial signature is valid, false otherwise.
|
|
124
|
+
* @throws {Error} If the input is invalid, such as non array partialSig, pubNonces, pubKeys, tweaks.
|
|
125
|
+
*/
|
|
126
|
+
partialSigVerify(partialSig: Uint8Array, pubNonces: Uint8Array[], i: number): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Aggregates partial signatures from multiple signers into a single final signature.
|
|
129
|
+
* @param partialSigs An array of partial signatures from each signer (Uint8Array).
|
|
130
|
+
* @param sessionCtx The session context containing all necessary information for signing.
|
|
131
|
+
* @returns The final aggregate signature (Uint8Array).
|
|
132
|
+
* @throws {Error} If the input is invalid, such as wrong array sizes, invalid signature.
|
|
133
|
+
*/
|
|
134
|
+
partialSigAgg(partialSigs: Uint8Array[]): Uint8Array;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Generates a nonce pair and partial signature deterministically for a single signer.
|
|
138
|
+
* @param secret The secret key of the signer (Uint8Array).
|
|
139
|
+
* @param aggOtherNonce The aggregate public nonce of all other signers (Uint8Array).
|
|
140
|
+
* @param publicKeys An array of all signers' public keys (Uint8Array).
|
|
141
|
+
* @param tweaks An array of tweaks to apply to the aggregate public key.
|
|
142
|
+
* @param isXonly An array of booleans indicating whether each tweak is an X-only tweak.
|
|
143
|
+
* @param msg The message to be signed (Uint8Array).
|
|
144
|
+
* @param rand Optional extra randomness (Uint8Array).
|
|
145
|
+
* @returns An object containing the public nonce and partial signature.
|
|
146
|
+
*/
|
|
147
|
+
export declare function deterministicSign(secret: Uint8Array, aggOtherNonce: Uint8Array, publicKeys: Uint8Array[], msg: Uint8Array, tweaks?: Uint8Array[], isXonly?: boolean[], rand?: Uint8Array, fastSign?: boolean): DetNonce;
|
|
148
|
+
//# sourceMappingURL=musig2.d.ts.map
|
package/musig2.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"musig2.d.ts","sourceRoot":"","sources":["src/musig2.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAChE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IAAE,WAAW,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAC3E;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAInC;AA8CD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE/D;AASD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAG/D;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EAAE,EACxB,MAAM,GAAE,UAAU,EAAO,EACzB,OAAO,GAAE,OAAO,EAAO;;;;EAgCxB;AACD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,+BAEhE;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,UAAU,EACrB,SAAS,CAAC,EAAE,UAAU,EACtB,YAAY,GAAE,UAA8B,EAC5C,GAAG,CAAC,EAAE,UAAU,EAChB,OAAO,GAAE,UAA8B,EACvC,IAAI,GAAE,UAA4B,GACjC,MAAM,CAmBR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAgBlE;AAID,qBAAa,OAAO;IAClB,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,CAAC,CAAQ;IACjB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,CAAC,CAAQ;IACjB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,SAAS,CAAa;IAC9B;;;;;;;;;;OAUG;gBAED,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,UAAU,EAAE,EACxB,GAAG,EAAE,UAAU,EACf,MAAM,GAAE,UAAU,EAAO,EACzB,OAAO,GAAE,OAAO,EAAO;IAuBzB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,wBAAwB;IAmBhC;;;;;;;;OAQG;IACH,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,UAAQ,GAAG,UAAU;IAiC/E;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAerF;;;;;;OAMG;IACH,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU;CAarD;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,UAAU,EACzB,UAAU,EAAE,UAAU,EAAE,EACxB,GAAG,EAAE,UAAU,EACf,MAAM,GAAE,UAAU,EAAO,EACzB,OAAO,GAAE,OAAO,EAAO,EACvB,IAAI,CAAC,EAAE,UAAU,EACjB,QAAQ,UAAQ,GACf,QAAQ,CAmBV"}
|