@dynamic-labs-wallet/node-btc 1.0.105 → 1.0.107

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/index.cjs CHANGED
@@ -304,6 +304,14 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
304
304
  * Only inputs belonging to the account address are signed. Supports both TAPROOT
305
305
  * (BIP-341) and Native SegWit (BIP-143) signing methods.
306
306
  *
307
+ * ECDSA wallets can also co-sign P2WSH multisig inputs, but only opt-in: pass the
308
+ * hex-encoded witnessScripts you constructed via `allowedWitnessScripts`. An input
309
+ * is signed when its witnessScript is allowlisted, hashes to the scriptPubKey
310
+ * commitment, and is a canonical multisig containing this wallet's public key.
311
+ * Omitting `allowedWitnessScripts` disables P2WSH signing entirely. The returned
312
+ * PSBT carries this wallet's partialSig and is NOT finalized — remaining
313
+ * co-signers add their signatures before finalizing.
314
+ *
307
315
  * @param transaction - The PSBT to sign as a base64 string
308
316
  * @param accountAddress - The account address (must match inputs to be signed)
309
317
  * @param network - The Bitcoin network (MAINNET or TESTNET)
@@ -313,7 +321,7 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
313
321
  * @param onError - Optional. Error callback function
314
322
  * @returns Promise resolving to the signed PSBT as a base64 string
315
323
  * @throws Error if required parameters are missing, no inputs belong to account address, or signing fails
316
- */ async signTransaction({ transaction, walletMetadata, network, password = undefined, externalServerKeyShares, context, onError }) {
324
+ */ async signTransaction({ transaction, walletMetadata, network, password = undefined, externalServerKeyShares, context, onError, signingIndexes, allowedSighash, allowedWitnessScripts }) {
317
325
  const { accountAddress } = walletMetadata;
318
326
  try {
319
327
  if (!accountAddress) {
@@ -345,15 +353,23 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
345
353
  }
346
354
  const pubKey = btcUtils.normalizePublicKey(derivedPublicKey, addressType);
347
355
  const tx = psbt.__CACHE.__TX;
348
- // Filter inputs to only sign those that belong to the current address
349
- const inputsToSign = psbt.data.inputs.map((input, i)=>({
356
+ const isTaproot = addressType === core.BitcoinAddressType.TAPROOT;
357
+ // Filter inputs to only sign those that belong to the current address.
358
+ // P2WSH (multisig) inputs are opt-in: matched only when the caller
359
+ // allowlisted the witnessScript and it contains this wallet's key —
360
+ // ECDSA wallets only.
361
+ const walletPubKey = isTaproot ? undefined : pubKey;
362
+ const p2wshAllowlist = isTaproot ? undefined : allowedWitnessScripts;
363
+ let inputsToSign = psbt.data.inputs.map((input, i)=>({
350
364
  input,
351
365
  index: i
352
- })).filter(({ input })=>btcUtils.doesInputBelongToAddress(input, accountAddress, network));
366
+ })).filter(({ input })=>btcUtils.doesInputBelongToAddress(input, accountAddress, network, walletPubKey, p2wshAllowlist));
367
+ inputsToSign = btcUtils.filterInputsBySigningIndexes(inputsToSign, signingIndexes);
353
368
  if (inputsToSign.length === 0) {
354
369
  throw new Error('No inputs found that belong to the account address');
355
370
  }
356
- if (addressType === core.BitcoinAddressType.TAPROOT) {
371
+ btcUtils.assertSighashAllowed(inputsToSign, isTaproot, allowedSighash);
372
+ if (isTaproot) {
357
373
  const tweak = btcUtils.calculateTaprootTweak(pubKey);
358
374
  const completeBitcoinConfig = _extends({}, bitcoinConfig, {
359
375
  addressType,
@@ -364,7 +380,8 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
364
380
  if (!input.witnessUtxo) {
365
381
  throw new Error(`Input ${i} missing witnessUtxo`);
366
382
  }
367
- const hash = Buffer.from(tx.hashForWitnessV1(i, prevOutScripts, values, bitcoin__namespace.Transaction.SIGHASH_DEFAULT));
383
+ const sigHashType = btcUtils.getSigHashType(input, true);
384
+ const hash = Buffer.from(tx.hashForWitnessV1(i, prevOutScripts, values, sigHashType));
368
385
  const signature = await this.sign({
369
386
  message: new Uint8Array(hash),
370
387
  accountAddress,
@@ -383,7 +400,7 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
383
400
  walletMetadata,
384
401
  passwordPreVerified: !(externalServerKeyShares == null ? void 0 : externalServerKeyShares.length) && !!password
385
402
  });
386
- const sigBuffer = btcUtils.convertSignatureToTaprootBuffer(signature);
403
+ const sigBuffer = btcUtils.convertSignatureToTaprootBuffer(signature, sigHashType);
387
404
  psbt.updateInput(i, {
388
405
  tapKeySig: sigBuffer
389
406
  });
@@ -398,15 +415,11 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
398
415
  throw new Error(`Input ${i} missing witnessUtxo`);
399
416
  }
400
417
  const { script, value } = input.witnessUtxo;
401
- const p2pkh = bitcoin__namespace.payments.p2pkh({
402
- hash: script.slice(2),
403
- network: btcUtils.getBitcoinNetwork(network)
404
- });
405
- const scriptCode = p2pkh.output;
406
- if (!scriptCode) {
407
- throw new Error('Failed to generate scriptCode');
408
- }
409
- const hash = tx.hashForWitnessV0(i, scriptCode, value, bitcoin__namespace.Transaction.SIGHASH_ALL);
418
+ // Shared with extractPsbtSighashes; re-verifies the P2WSH
419
+ // commitment at the signer, independent of the ownership filter.
420
+ const scriptCode = btcUtils.getSegwitV0ScriptCode(input, script, i, btcUtils.getBitcoinNetwork(network));
421
+ const sigHashType = btcUtils.getSigHashType(input, false);
422
+ const hash = tx.hashForWitnessV0(i, scriptCode, value, sigHashType);
410
423
  const signature = await this.sign({
411
424
  message: new Uint8Array(hash),
412
425
  accountAddress,
@@ -425,7 +438,7 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
425
438
  walletMetadata,
426
439
  passwordPreVerified: !(externalServerKeyShares == null ? void 0 : externalServerKeyShares.length) && !!password
427
440
  });
428
- const derSignature = btcUtils.convertSignatureToDER(signature);
441
+ const derSignature = btcUtils.convertSignatureToDER(signature, sigHashType);
429
442
  psbt.updateInput(i, {
430
443
  partialSig: [
431
444
  {
package/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createLogError, DynamicWalletClient, getMPCChainConfig, WalletOperation } from '@dynamic-labs-wallet/node';
2
2
  import { BitcoinNetwork, BitcoinAddressType } from '@dynamic-labs-wallet/core';
3
- import { initEccLib, normalizePublicKey, publicKeyToBitcoinAddress, getAddressTypeFromDerivationPath, extractPublicKeyHex, calculateBip322Hash, calculateTaprootTweak, encodeBip322Signature, doesInputBelongToAddress, collectPSBTInputData, convertSignatureToTaprootBuffer, getBitcoinNetwork, convertSignatureToDER, privateKeyToWIF, wifToPrivateKey, getPublicKeyFromPrivateKey } from '@dynamic-labs-wallet/btc-utils';
3
+ import { initEccLib, normalizePublicKey, publicKeyToBitcoinAddress, getAddressTypeFromDerivationPath, extractPublicKeyHex, calculateBip322Hash, calculateTaprootTweak, encodeBip322Signature, doesInputBelongToAddress, filterInputsBySigningIndexes, assertSighashAllowed, collectPSBTInputData, getSigHashType, convertSignatureToTaprootBuffer, getSegwitV0ScriptCode, getBitcoinNetwork, convertSignatureToDER, privateKeyToWIF, wifToPrivateKey, getPublicKeyFromPrivateKey } from '@dynamic-labs-wallet/btc-utils';
4
4
  import * as bitcoin from 'bitcoinjs-lib';
5
5
  import * as ecc from 'tiny-secp256k1';
6
6
 
@@ -282,6 +282,14 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
282
282
  * Only inputs belonging to the account address are signed. Supports both TAPROOT
283
283
  * (BIP-341) and Native SegWit (BIP-143) signing methods.
284
284
  *
285
+ * ECDSA wallets can also co-sign P2WSH multisig inputs, but only opt-in: pass the
286
+ * hex-encoded witnessScripts you constructed via `allowedWitnessScripts`. An input
287
+ * is signed when its witnessScript is allowlisted, hashes to the scriptPubKey
288
+ * commitment, and is a canonical multisig containing this wallet's public key.
289
+ * Omitting `allowedWitnessScripts` disables P2WSH signing entirely. The returned
290
+ * PSBT carries this wallet's partialSig and is NOT finalized — remaining
291
+ * co-signers add their signatures before finalizing.
292
+ *
285
293
  * @param transaction - The PSBT to sign as a base64 string
286
294
  * @param accountAddress - The account address (must match inputs to be signed)
287
295
  * @param network - The Bitcoin network (MAINNET or TESTNET)
@@ -291,7 +299,7 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
291
299
  * @param onError - Optional. Error callback function
292
300
  * @returns Promise resolving to the signed PSBT as a base64 string
293
301
  * @throws Error if required parameters are missing, no inputs belong to account address, or signing fails
294
- */ async signTransaction({ transaction, walletMetadata, network, password = undefined, externalServerKeyShares, context, onError }) {
302
+ */ async signTransaction({ transaction, walletMetadata, network, password = undefined, externalServerKeyShares, context, onError, signingIndexes, allowedSighash, allowedWitnessScripts }) {
295
303
  const { accountAddress } = walletMetadata;
296
304
  try {
297
305
  if (!accountAddress) {
@@ -323,15 +331,23 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
323
331
  }
324
332
  const pubKey = normalizePublicKey(derivedPublicKey, addressType);
325
333
  const tx = psbt.__CACHE.__TX;
326
- // Filter inputs to only sign those that belong to the current address
327
- const inputsToSign = psbt.data.inputs.map((input, i)=>({
334
+ const isTaproot = addressType === BitcoinAddressType.TAPROOT;
335
+ // Filter inputs to only sign those that belong to the current address.
336
+ // P2WSH (multisig) inputs are opt-in: matched only when the caller
337
+ // allowlisted the witnessScript and it contains this wallet's key —
338
+ // ECDSA wallets only.
339
+ const walletPubKey = isTaproot ? undefined : pubKey;
340
+ const p2wshAllowlist = isTaproot ? undefined : allowedWitnessScripts;
341
+ let inputsToSign = psbt.data.inputs.map((input, i)=>({
328
342
  input,
329
343
  index: i
330
- })).filter(({ input })=>doesInputBelongToAddress(input, accountAddress, network));
344
+ })).filter(({ input })=>doesInputBelongToAddress(input, accountAddress, network, walletPubKey, p2wshAllowlist));
345
+ inputsToSign = filterInputsBySigningIndexes(inputsToSign, signingIndexes);
331
346
  if (inputsToSign.length === 0) {
332
347
  throw new Error('No inputs found that belong to the account address');
333
348
  }
334
- if (addressType === BitcoinAddressType.TAPROOT) {
349
+ assertSighashAllowed(inputsToSign, isTaproot, allowedSighash);
350
+ if (isTaproot) {
335
351
  const tweak = calculateTaprootTweak(pubKey);
336
352
  const completeBitcoinConfig = _extends({}, bitcoinConfig, {
337
353
  addressType,
@@ -342,7 +358,8 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
342
358
  if (!input.witnessUtxo) {
343
359
  throw new Error(`Input ${i} missing witnessUtxo`);
344
360
  }
345
- const hash = Buffer.from(tx.hashForWitnessV1(i, prevOutScripts, values, bitcoin.Transaction.SIGHASH_DEFAULT));
361
+ const sigHashType = getSigHashType(input, true);
362
+ const hash = Buffer.from(tx.hashForWitnessV1(i, prevOutScripts, values, sigHashType));
346
363
  const signature = await this.sign({
347
364
  message: new Uint8Array(hash),
348
365
  accountAddress,
@@ -361,7 +378,7 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
361
378
  walletMetadata,
362
379
  passwordPreVerified: !(externalServerKeyShares == null ? void 0 : externalServerKeyShares.length) && !!password
363
380
  });
364
- const sigBuffer = convertSignatureToTaprootBuffer(signature);
381
+ const sigBuffer = convertSignatureToTaprootBuffer(signature, sigHashType);
365
382
  psbt.updateInput(i, {
366
383
  tapKeySig: sigBuffer
367
384
  });
@@ -376,15 +393,11 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
376
393
  throw new Error(`Input ${i} missing witnessUtxo`);
377
394
  }
378
395
  const { script, value } = input.witnessUtxo;
379
- const p2pkh = bitcoin.payments.p2pkh({
380
- hash: script.slice(2),
381
- network: getBitcoinNetwork(network)
382
- });
383
- const scriptCode = p2pkh.output;
384
- if (!scriptCode) {
385
- throw new Error('Failed to generate scriptCode');
386
- }
387
- const hash = tx.hashForWitnessV0(i, scriptCode, value, bitcoin.Transaction.SIGHASH_ALL);
396
+ // Shared with extractPsbtSighashes; re-verifies the P2WSH
397
+ // commitment at the signer, independent of the ownership filter.
398
+ const scriptCode = getSegwitV0ScriptCode(input, script, i, getBitcoinNetwork(network));
399
+ const sigHashType = getSigHashType(input, false);
400
+ const hash = tx.hashForWitnessV0(i, scriptCode, value, sigHashType);
388
401
  const signature = await this.sign({
389
402
  message: new Uint8Array(hash),
390
403
  accountAddress,
@@ -403,7 +416,7 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
403
416
  walletMetadata,
404
417
  passwordPreVerified: !(externalServerKeyShares == null ? void 0 : externalServerKeyShares.length) && !!password
405
418
  });
406
- const derSignature = convertSignatureToDER(signature);
419
+ const derSignature = convertSignatureToDER(signature, sigHashType);
407
420
  psbt.updateInput(i, {
408
421
  partialSig: [
409
422
  {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/node-btc",
3
- "version": "1.0.105",
3
+ "version": "1.0.107",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "1.0.105",
8
- "@dynamic-labs-wallet/node": "1.0.105",
9
- "@dynamic-labs-wallet/btc-utils": "1.0.105",
7
+ "@dynamic-labs-wallet/core": "1.0.107",
8
+ "@dynamic-labs-wallet/node": "1.0.107",
9
+ "@dynamic-labs-wallet/btc-utils": "1.0.107",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.1093",
11
11
  "bitcoinjs-lib": "^7.0.0",
12
12
  "tiny-secp256k1": "^2.2.3"
@@ -93,6 +93,14 @@ export declare class DynamicBtcWalletClient extends DynamicWalletClient {
93
93
  * Only inputs belonging to the account address are signed. Supports both TAPROOT
94
94
  * (BIP-341) and Native SegWit (BIP-143) signing methods.
95
95
  *
96
+ * ECDSA wallets can also co-sign P2WSH multisig inputs, but only opt-in: pass the
97
+ * hex-encoded witnessScripts you constructed via `allowedWitnessScripts`. An input
98
+ * is signed when its witnessScript is allowlisted, hashes to the scriptPubKey
99
+ * commitment, and is a canonical multisig containing this wallet's public key.
100
+ * Omitting `allowedWitnessScripts` disables P2WSH signing entirely. The returned
101
+ * PSBT carries this wallet's partialSig and is NOT finalized — remaining
102
+ * co-signers add their signatures before finalizing.
103
+ *
96
104
  * @param transaction - The PSBT to sign as a base64 string
97
105
  * @param accountAddress - The account address (must match inputs to be signed)
98
106
  * @param network - The Bitcoin network (MAINNET or TESTNET)
@@ -103,7 +111,7 @@ export declare class DynamicBtcWalletClient extends DynamicWalletClient {
103
111
  * @returns Promise resolving to the signed PSBT as a base64 string
104
112
  * @throws Error if required parameters are missing, no inputs belong to account address, or signing fails
105
113
  */
106
- signTransaction({ transaction, walletMetadata, network, password, externalServerKeyShares, context, onError, }: {
114
+ signTransaction({ transaction, walletMetadata, network, password, externalServerKeyShares, context, onError, signingIndexes, allowedSighash, allowedWitnessScripts, }: {
107
115
  transaction: string;
108
116
  walletMetadata: WalletMetadata;
109
117
  network: BitcoinNetwork;
@@ -111,6 +119,10 @@ export declare class DynamicBtcWalletClient extends DynamicWalletClient {
111
119
  externalServerKeyShares?: ServerKeyShare[];
112
120
  context?: SignMessageContext;
113
121
  onError?: (error: Error) => void;
122
+ signingIndexes?: number[];
123
+ allowedSighash?: number[];
124
+ /** Hex-encoded witnessScripts the wallet may co-sign (P2WSH opt-in). */
125
+ allowedWitnessScripts?: string[];
114
126
  }): Promise<string>;
115
127
  /**
116
128
  * Exports the private key for a wallet
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}