@dynamic-labs-wallet/node-btc 1.0.2 → 1.0.3

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
@@ -79,7 +79,7 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
79
79
  addressType: btcUtils.getAddressTypeFromDerivationPath(derivationPath)
80
80
  };
81
81
  }
82
- buildWalletMetadata({ walletId, accountAddress, thresholdSignatureScheme, addressType, bitcoinConfig }) {
82
+ buildWalletMetadata({ walletId, accountAddress, thresholdSignatureScheme, addressType, bitcoinConfig, shareSetId }) {
83
83
  const chainConfig = node.getMPCChainConfig(this.chainName, bitcoinConfig);
84
84
  return {
85
85
  walletId,
@@ -90,7 +90,8 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
90
90
  index,
91
91
  value
92
92
  ]))),
93
- addressType
93
+ addressType,
94
+ shareSetId
94
95
  };
95
96
  }
96
97
  /**
@@ -128,6 +129,7 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
128
129
  network
129
130
  };
130
131
  let resolvedWalletId;
132
+ let resolvedShareSetId;
131
133
  let ceremonyCeremonyCompleteResolver;
132
134
  let ceremonyAccountAddress;
133
135
  const ceremonyCompletePromise = new Promise((resolve)=>{
@@ -142,9 +144,10 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
142
144
  password,
143
145
  backUpToDynamic,
144
146
  onError,
145
- onCeremonyComplete: (accountAddress, walletId)=>{
147
+ onCeremonyComplete: (accountAddress, walletId, shareSetId)=>{
146
148
  ceremonyAccountAddress = accountAddress;
147
149
  resolvedWalletId = walletId;
150
+ resolvedShareSetId = shareSetId;
148
151
  ceremonyCeremonyCompleteResolver(undefined);
149
152
  }
150
153
  });
@@ -162,7 +165,8 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
162
165
  accountAddress,
163
166
  thresholdSignatureScheme,
164
167
  addressType,
165
- bitcoinConfig: resolvedBitcoinConfig
168
+ bitcoinConfig: resolvedBitcoinConfig,
169
+ shareSetId: resolvedShareSetId
166
170
  });
167
171
  const { keySharesWithBackupStatus, backupInfo } = await this.storeEncryptedBackupByWalletWithRetry({
168
172
  accountAddress,
@@ -495,6 +499,7 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
495
499
  throw new Error(`Invalid addressType: ${addressType}. Must be one of: ${core.BitcoinAddressType.NATIVE_SEGWIT}, ${core.BitcoinAddressType.TAPROOT}`);
496
500
  }
497
501
  let resolvedWalletId;
502
+ let resolvedShareSetId;
498
503
  let ceremonyCeremonyCompleteResolver;
499
504
  let ceremonyAccountAddress;
500
505
  const ceremonyCompletePromise = new Promise((resolve)=>{
@@ -517,9 +522,10 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
517
522
  password,
518
523
  backUpToDynamic,
519
524
  onError,
520
- onCeremonyComplete: (accountAddress, walletId)=>{
525
+ onCeremonyComplete: (accountAddress, walletId, shareSetId)=>{
521
526
  ceremonyAccountAddress = accountAddress;
522
527
  resolvedWalletId = walletId;
528
+ resolvedShareSetId = shareSetId;
523
529
  // Verify address matches
524
530
  if (accountAddress !== expectedAddress) {
525
531
  throw new Error(`Public address mismatch: derived address ${accountAddress} !== expected address ${expectedAddress}`);
@@ -546,7 +552,8 @@ class DynamicBtcWalletClient extends node.DynamicWalletClient {
546
552
  accountAddress,
547
553
  thresholdSignatureScheme,
548
554
  addressType,
549
- bitcoinConfig
555
+ bitcoinConfig,
556
+ shareSetId: resolvedShareSetId
550
557
  });
551
558
  const { keySharesWithBackupStatus, backupInfo } = await this.storeEncryptedBackupByWalletWithRetry({
552
559
  accountAddress,
package/index.esm.js CHANGED
@@ -57,7 +57,7 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
57
57
  addressType: getAddressTypeFromDerivationPath(derivationPath)
58
58
  };
59
59
  }
60
- buildWalletMetadata({ walletId, accountAddress, thresholdSignatureScheme, addressType, bitcoinConfig }) {
60
+ buildWalletMetadata({ walletId, accountAddress, thresholdSignatureScheme, addressType, bitcoinConfig, shareSetId }) {
61
61
  const chainConfig = getMPCChainConfig(this.chainName, bitcoinConfig);
62
62
  return {
63
63
  walletId,
@@ -68,7 +68,8 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
68
68
  index,
69
69
  value
70
70
  ]))),
71
- addressType
71
+ addressType,
72
+ shareSetId
72
73
  };
73
74
  }
74
75
  /**
@@ -106,6 +107,7 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
106
107
  network
107
108
  };
108
109
  let resolvedWalletId;
110
+ let resolvedShareSetId;
109
111
  let ceremonyCeremonyCompleteResolver;
110
112
  let ceremonyAccountAddress;
111
113
  const ceremonyCompletePromise = new Promise((resolve)=>{
@@ -120,9 +122,10 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
120
122
  password,
121
123
  backUpToDynamic,
122
124
  onError,
123
- onCeremonyComplete: (accountAddress, walletId)=>{
125
+ onCeremonyComplete: (accountAddress, walletId, shareSetId)=>{
124
126
  ceremonyAccountAddress = accountAddress;
125
127
  resolvedWalletId = walletId;
128
+ resolvedShareSetId = shareSetId;
126
129
  ceremonyCeremonyCompleteResolver(undefined);
127
130
  }
128
131
  });
@@ -140,7 +143,8 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
140
143
  accountAddress,
141
144
  thresholdSignatureScheme,
142
145
  addressType,
143
- bitcoinConfig: resolvedBitcoinConfig
146
+ bitcoinConfig: resolvedBitcoinConfig,
147
+ shareSetId: resolvedShareSetId
144
148
  });
145
149
  const { keySharesWithBackupStatus, backupInfo } = await this.storeEncryptedBackupByWalletWithRetry({
146
150
  accountAddress,
@@ -473,6 +477,7 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
473
477
  throw new Error(`Invalid addressType: ${addressType}. Must be one of: ${BitcoinAddressType.NATIVE_SEGWIT}, ${BitcoinAddressType.TAPROOT}`);
474
478
  }
475
479
  let resolvedWalletId;
480
+ let resolvedShareSetId;
476
481
  let ceremonyCeremonyCompleteResolver;
477
482
  let ceremonyAccountAddress;
478
483
  const ceremonyCompletePromise = new Promise((resolve)=>{
@@ -495,9 +500,10 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
495
500
  password,
496
501
  backUpToDynamic,
497
502
  onError,
498
- onCeremonyComplete: (accountAddress, walletId)=>{
503
+ onCeremonyComplete: (accountAddress, walletId, shareSetId)=>{
499
504
  ceremonyAccountAddress = accountAddress;
500
505
  resolvedWalletId = walletId;
506
+ resolvedShareSetId = shareSetId;
501
507
  // Verify address matches
502
508
  if (accountAddress !== expectedAddress) {
503
509
  throw new Error(`Public address mismatch: derived address ${accountAddress} !== expected address ${expectedAddress}`);
@@ -524,7 +530,8 @@ class DynamicBtcWalletClient extends DynamicWalletClient {
524
530
  accountAddress,
525
531
  thresholdSignatureScheme,
526
532
  addressType,
527
- bitcoinConfig
533
+ bitcoinConfig,
534
+ shareSetId: resolvedShareSetId
528
535
  });
529
536
  const { keySharesWithBackupStatus, backupInfo } = await this.storeEncryptedBackupByWalletWithRetry({
530
537
  accountAddress,
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/node-btc",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "1.0.2",
8
- "@dynamic-labs-wallet/node": "1.0.2",
9
- "@dynamic-labs-wallet/btc-utils": "1.0.2",
7
+ "@dynamic-labs-wallet/core": "1.0.3",
8
+ "@dynamic-labs-wallet/node": "1.0.3",
9
+ "@dynamic-labs-wallet/btc-utils": "1.0.3",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.984",
11
11
  "bitcoinjs-lib": "^7.0.0",
12
12
  "tiny-secp256k1": "^2.2.3"
@@ -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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"}