@dynamic-labs-wallet/browser 1.0.28 → 1.0.30

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
@@ -1846,12 +1846,18 @@ const initializeCloudKit = async (config, signInButtonId, onSignInRequired, onSi
1846
1846
  * (e.g. wrong password). These are logged at `info` instead of `error`
1847
1847
  * so they don't pollute error dashboards with user mistakes.
1848
1848
  */ const isExpectedUserError = (error)=>error instanceof InvalidPasswordError;
1849
+ /**
1850
+ * Returns true for transient API errors that are already logged at the
1851
+ * appropriate level by `handleAxiosError` but may be re-thrown as
1852
+ * `WalletApiError` and caught again (e.g. by queue error handlers).
1853
+ * Logging these at `warn` prevents double-counting them as real errors.
1854
+ */ const isTransientApiError = (error)=>error instanceof core.WalletApiError && error.status === 429;
1849
1855
  const logError = ({ message, error, context, level = 'error' })=>{
1850
1856
  if (error instanceof axios.AxiosError) {
1851
1857
  core.handleAxiosError(error, message, context);
1852
1858
  return;
1853
1859
  }
1854
- const resolvedLevel = isExpectedUserError(error) ? 'info' : level;
1860
+ const resolvedLevel = isExpectedUserError(error) ? 'info' : isTransientApiError(error) ? 'warn' : level;
1855
1861
  // Surface the unwrapped `cause` (name only — never its raw fields, which may
1856
1862
  // carry key material). Errors like EncryptionSelfTestFailedError wrap the real
1857
1863
  // failure (e.g. KeyShareDecryptionError) as `cause`; without this the original
@@ -2760,7 +2766,7 @@ class DynamicWalletClient {
2760
2766
  };
2761
2767
  }
2762
2768
  }
2763
- async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete }) {
2769
+ async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
2764
2770
  // Initialize keygen, create room, and create the wallet account on the server
2765
2771
  const data = await this.apiClient.createWalletAccount({
2766
2772
  chainName,
@@ -2768,6 +2774,7 @@ class DynamicWalletClient {
2768
2774
  dynamicRequestId,
2769
2775
  thresholdSignatureScheme,
2770
2776
  bitcoinConfig,
2777
+ businessAccountId,
2771
2778
  onError,
2772
2779
  onCeremonyComplete
2773
2780
  });
@@ -2992,7 +2999,7 @@ class DynamicWalletClient {
2992
2999
  shouldRetry: (error)=>!isNonRetryableCeremonyError(error)
2993
3000
  });
2994
3001
  }
2995
- async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, onCeremonyComplete, traceContext, password, signedSessionId }) {
3002
+ async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
2996
3003
  const dynamicRequestId = uuid.v4();
2997
3004
  try {
2998
3005
  this.assertPasswordRequired(password);
@@ -3022,6 +3029,7 @@ class DynamicWalletClient {
3022
3029
  dynamicRequestId,
3023
3030
  thresholdSignatureScheme,
3024
3031
  bitcoinConfig,
3032
+ businessAccountId,
3025
3033
  onCeremonyComplete
3026
3034
  });
3027
3035
  this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
@@ -3052,6 +3060,7 @@ class DynamicWalletClient {
3052
3060
  dynamicRequestId,
3053
3061
  thresholdSignatureScheme,
3054
3062
  bitcoinConfig,
3063
+ businessAccountId,
3055
3064
  onCeremonyComplete
3056
3065
  })
3057
3066
  });
@@ -3729,7 +3738,7 @@ class DynamicWalletClient {
3729
3738
  // would race ceremony_complete and the atomic swap could target the stale
3730
3739
  // row. refresh's API call returns on room_created (not the local MPC
3731
3740
  // result), so the gate await sits between the local MPC and the backup.
3732
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
3741
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
3733
3742
  this.logger.info('[WaasRefresh] ceremony_complete received', {
3734
3743
  context: {
3735
3744
  walletId: wallet.walletId,
@@ -3949,6 +3958,227 @@ class DynamicWalletClient {
3949
3958
  googleDriveTokenSource
3950
3959
  }));
3951
3960
  }
3961
+ /** Reshare into a new 2/2 share set for the target signer; seed it to CKS
3962
+ * on their behalf via a single-use grant. Does not touch the caller's set. */ async reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType = 'endUser', targetSignerIdentity, password = undefined, signedSessionId }) {
3963
+ var _backup_keyShareIds;
3964
+ const dynamicRequestId = uuid.v4();
3965
+ const ceremonyStartTime = Date.now();
3966
+ // Log identifier shape only — value may be email/phone.
3967
+ const logContext = {
3968
+ dynamicRequestId,
3969
+ businessAccountId,
3970
+ chainName,
3971
+ accountAddress,
3972
+ signerType,
3973
+ identityMode: targetSignerIdentity.userId ? 'userId' : 'identifier',
3974
+ identifierType: targetSignerIdentity.identifierType
3975
+ };
3976
+ this.logger.info('[BusinessAccountAddSigner] start reshareToNewSignerShareSet', {
3977
+ context: logContext
3978
+ });
3979
+ const wallet = await this.getWallet({
3980
+ accountAddress,
3981
+ walletOperation: core.WalletOperation.REACH_ALL_PARTIES,
3982
+ password,
3983
+ signedSessionId
3984
+ });
3985
+ const walletId = wallet.walletId;
3986
+ const currentScheme = this.getWalletFromMap(accountAddress).thresholdSignatureScheme;
3987
+ const bitcoinConfig = this.getBitcoinConfigForChain(chainName, accountAddress);
3988
+ // Same-parties reshare — only the caller's share participates.
3989
+ const [existingClientShare] = await this.ensureClientShare(accountAddress);
3990
+ const existingClientKeygenId = await this.getExportId({
3991
+ chainName,
3992
+ clientKeyShare: existingClientShare,
3993
+ bitcoinConfig
3994
+ });
3995
+ // Gate matches internalRefresh/Reshare — SSE error rejects awaitTerminal.
3996
+ let newShareSetId;
3997
+ let resolvedTargetUserId;
3998
+ let clientKeyshareBackupGrant;
3999
+ const ceremonyGate = this.createCeremonyTerminalGate((payload)=>{
4000
+ newShareSetId = payload.shareSetId;
4001
+ resolvedTargetUserId = payload.targetUserId;
4002
+ clientKeyshareBackupGrant = payload.clientKeyshareBackupGrant;
4003
+ this.logger.info('[BusinessAccountAddSigner] ceremony_complete received', {
4004
+ context: _extends({}, logContext, {
4005
+ walletId,
4006
+ newShareSetId: payload.shareSetId,
4007
+ shareSetType: payload.shareSetType,
4008
+ hasTargetUserId: !!payload.targetUserId,
4009
+ hasClientKeyshareBackupGrant: !!payload.clientKeyshareBackupGrant
4010
+ })
4011
+ });
4012
+ });
4013
+ const data = await this.apiClient.addBusinessAccountSignerCeremony({
4014
+ businessAccountId,
4015
+ walletId,
4016
+ clientKeygenIds: [
4017
+ existingClientKeygenId
4018
+ ],
4019
+ oldThresholdSignatureScheme: currentScheme,
4020
+ signerType,
4021
+ userId: targetSignerIdentity.userId,
4022
+ identifier: targetSignerIdentity.identifier,
4023
+ identifierType: targetSignerIdentity.identifierType,
4024
+ dynamicRequestId,
4025
+ onError: ceremonyGate.onError,
4026
+ onCeremonyComplete: ceremonyGate.onCeremonyComplete
4027
+ });
4028
+ const { roomId, serverKeygenIds, newServerKeygenIds = [] } = data;
4029
+ const newMpcConfig = core.MPC_CONFIG[core.ThresholdSignatureScheme.TWO_OF_TWO];
4030
+ const allPartyKeygenIds = [
4031
+ existingClientKeygenId,
4032
+ ...serverKeygenIds,
4033
+ ...newServerKeygenIds
4034
+ ];
4035
+ const mpcSigner = getMPCSigner({
4036
+ chainName,
4037
+ baseRelayUrl: this.baseMPCRelayApiUrl,
4038
+ bitcoinConfig
4039
+ });
4040
+ const newSignerClientShare = await mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, existingClientShare, allPartyKeygenIds);
4041
+ try {
4042
+ await ceremonyGate.awaitTerminal();
4043
+ } catch (streamError) {
4044
+ this.logger.error('[BusinessAccountAddSigner] ceremony stream error', {
4045
+ context: _extends({}, logContext, {
4046
+ walletId,
4047
+ roomId,
4048
+ error: streamError instanceof Error ? streamError.message : String(streamError),
4049
+ failure_reason: 'ceremony_stream_error'
4050
+ })
4051
+ });
4052
+ throw streamError;
4053
+ }
4054
+ if (!newShareSetId) {
4055
+ this.logger.error('[BusinessAccountAddSigner] ceremony_complete missing shareSetId', {
4056
+ context: _extends({}, logContext, {
4057
+ walletId,
4058
+ roomId,
4059
+ failure_reason: 'ceremony_complete_missing_share_set_id'
4060
+ })
4061
+ });
4062
+ throw new Error('addSigner reshare did not return a shareSetId');
4063
+ }
4064
+ // Target has no password yet — encryptKeyShare falls back to the env-default key.
4065
+ const encrypted = await this.encryptKeyShare({
4066
+ keyShare: newSignerClientShare
4067
+ });
4068
+ // Server contract: targetUserId is always set on successful ceremony_complete.
4069
+ if (!resolvedTargetUserId) {
4070
+ this.logger.error('[BusinessAccountAddSigner] no target userId resolved for on-behalf backup', {
4071
+ context: _extends({}, logContext, {
4072
+ walletId,
4073
+ newShareSetId,
4074
+ failure_reason: 'no_target_user_id_resolved'
4075
+ })
4076
+ });
4077
+ throw new Error('addSigner ceremony did not resolve a target userId for the on-behalf backup');
4078
+ }
4079
+ const targetUserId = resolvedTargetUserId;
4080
+ this.logger.info('[BusinessAccountAddSigner] backupOnBehalfOfAddedSigner -> client-keyshare-service', {
4081
+ context: _extends({}, logContext, {
4082
+ walletId,
4083
+ newShareSetId,
4084
+ hasClientKeyshareBackupGrant: !!clientKeyshareBackupGrant
4085
+ })
4086
+ });
4087
+ // Grant is primary auth; signedSession is belt-and-suspenders. Refresh-on-400
4088
+ // handles nonce reuse; transient 429/5xx retry via alsoRetry. 401/403 = grant
4089
+ // rejected (single-use, not replayable) → caller must re-run addSigner.
4090
+ let backup;
4091
+ try {
4092
+ let resolvedSignedSessionId = signedSessionId;
4093
+ backup = await retryPromise(()=>this.apiClient.backupOnBehalfOfAddedSigner({
4094
+ walletId,
4095
+ targetUserId,
4096
+ encryptedAccountCredentials: [
4097
+ encrypted
4098
+ ],
4099
+ passwordEncrypted: false,
4100
+ encryptionVersion: ENCRYPTION_VERSION_CURRENT,
4101
+ clientKeyshareBackupGrant,
4102
+ signedSessionId: resolvedSignedSessionId,
4103
+ dynamicRequestId
4104
+ }), {
4105
+ operationName: 'backupOnBehalfOfAddedSigner',
4106
+ shouldRetry: this.signedSession.refreshShouldRetry({
4107
+ onRefreshed: (id)=>{
4108
+ resolvedSignedSessionId = id;
4109
+ },
4110
+ operationName: 'backupOnBehalfOfAddedSigner',
4111
+ logContext: _extends({}, logContext, {
4112
+ walletId,
4113
+ dynamicRequestId
4114
+ }),
4115
+ alsoRetry: (status)=>status === undefined || status === 429 || status !== undefined && status >= 500
4116
+ })
4117
+ });
4118
+ } catch (err) {
4119
+ var _err_response;
4120
+ const status = err == null ? void 0 : (_err_response = err.response) == null ? void 0 : _err_response.status;
4121
+ if (clientKeyshareBackupGrant && (status === 401 || status === 403)) {
4122
+ this.logger.error('[BusinessAccountAddSigner] client_keyshare_backup_grant_exhausted', {
4123
+ context: _extends({}, logContext, {
4124
+ walletId,
4125
+ newShareSetId,
4126
+ status,
4127
+ failure_reason: 'grant_exhausted'
4128
+ })
4129
+ });
4130
+ }
4131
+ throw err;
4132
+ }
4133
+ const externalKeyShareId = (_backup_keyShareIds = backup.keyShareIds) == null ? void 0 : _backup_keyShareIds[0];
4134
+ if (!externalKeyShareId) {
4135
+ this.logger.error('[BusinessAccountAddSigner] on-behalf backup returned no keyShareId', {
4136
+ context: _extends({}, logContext, {
4137
+ walletId,
4138
+ newShareSetId,
4139
+ failure_reason: 'cks_write_no_keyshare_id'
4140
+ })
4141
+ });
4142
+ throw new Error('on-behalf backup did not return a keyShareId');
4143
+ }
4144
+ this.logger.info('[BusinessAccountAddSigner] on-behalf backup stored', {
4145
+ context: _extends({}, logContext, {
4146
+ walletId,
4147
+ newShareSetId,
4148
+ externalKeyShareId
4149
+ })
4150
+ });
4151
+ // Activate the share-set ↔ keyShareId mapping on redcoast.
4152
+ await retryPromise(()=>this.apiClient.markKeySharesAsBackedUp({
4153
+ walletId,
4154
+ shareSetId: newShareSetId,
4155
+ locations: [
4156
+ {
4157
+ location: core.BackupLocation.DYNAMIC,
4158
+ externalKeyShareId
4159
+ }
4160
+ ],
4161
+ dynamicRequestId,
4162
+ businessAccountId
4163
+ }), {
4164
+ operationName: 'addSigner.markKeySharesAsBackedUp',
4165
+ shouldRetry: (error)=>{
4166
+ const status = getHttpStatus(error);
4167
+ return status === undefined || status === 429 || status !== undefined && status >= 500;
4168
+ }
4169
+ });
4170
+ this.logger.info('[BusinessAccountAddSigner] done — share set activated', {
4171
+ context: _extends({}, logContext, {
4172
+ walletId,
4173
+ newShareSetId,
4174
+ externalKeyShareId,
4175
+ ceremony_duration_ms: Date.now() - ceremonyStartTime
4176
+ })
4177
+ });
4178
+ return {
4179
+ shareSetId: newShareSetId
4180
+ };
4181
+ }
3952
4182
  // Surfaces server-side bugs in the ceremony_complete payload without
3953
4183
  // breaking the operation. The two cases:
3954
4184
  //
@@ -4002,7 +4232,10 @@ class DynamicWalletClient {
4002
4232
  // The reject handle is wired synchronously (Promise executors run inline)
4003
4233
  // before the API call starts, so an immediate onError can never be dropped.
4004
4234
  // The lost branch's rejection is swallowed so it never surfaces as unhandled.
4005
- createCeremonyTerminalGate(onCeremonyComplete) {
4235
+ /**
4236
+ * Ceremony-complete payload — typed object so addSigner-only fields are
4237
+ * namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
4238
+ */ createCeremonyTerminalGate(onCeremonyComplete) {
4006
4239
  let resolveComplete;
4007
4240
  const completePromise = new Promise((resolve)=>{
4008
4241
  resolveComplete = resolve;
@@ -4016,9 +4249,19 @@ class DynamicWalletClient {
4016
4249
  let fired = false;
4017
4250
  return {
4018
4251
  onError: rejectOnError,
4019
- onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType)=>{
4252
+ // Positional shape preserved at the wire boundary — eventStream/utils
4253
+ // invokes this with positional args. Translates to the typed object
4254
+ // for the caller-supplied cb.
4255
+ onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType, targetUserId, clientKeyshareBackupGrant)=>{
4020
4256
  fired = true;
4021
- onCeremonyComplete == null ? void 0 : onCeremonyComplete(accountAddress, walletId, shareSetId, shareSetType);
4257
+ onCeremonyComplete == null ? void 0 : onCeremonyComplete({
4258
+ accountAddress,
4259
+ walletId,
4260
+ shareSetId,
4261
+ shareSetType,
4262
+ targetUserId,
4263
+ clientKeyshareBackupGrant
4264
+ });
4022
4265
  resolveComplete();
4023
4266
  },
4024
4267
  awaitTerminal: ()=>Promise.race([
@@ -4266,7 +4509,7 @@ class DynamicWalletClient {
4266
4509
  // walletMap.shareSetId rotation lands before storeEncryptedBackupByWallet
4267
4510
  // reads it; without it, backup would race ceremony_complete and the atomic
4268
4511
  // swap could target the stale row.
4269
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
4512
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
4270
4513
  this.logger.info('[WaasReshare] ceremony_complete received', {
4271
4514
  context: {
4272
4515
  walletId: wallet.walletId,
@@ -4988,21 +5231,10 @@ class DynamicWalletClient {
4988
5231
  accountAddress,
4989
5232
  shareCount: expectedShares.length
4990
5233
  });
4991
- // The preceding `/backup` upload consumed the caller's signed-session nonce, so
4992
- // the verify fetch needs a freshly-minted one — only possible over the reverse
4993
- // channel. Without one, skip the check (with a warning) rather than abort an
4994
- // otherwise-successful backup.
4995
- if (!this.getSignedSessionIdCallback) {
4996
- this.logger.warn('[keyshare-recovery-verify] skipped: no reverse channel to mint a fresh nonce for the verify fetch', {
4997
- walletId,
4998
- accountAddress
4999
- });
5000
- return;
5001
- }
5002
5234
  let data;
5003
5235
  try {
5004
- // Fresh session (the backup consumed the caller's), inside the try so a flaky
5005
- // reverse channel is treated as transient below, not a backup-abort.
5236
+ // Mint a fresh session (the backup consumed the caller's). A missing reverse
5237
+ // channel is skipped below; any other failure rethrows.
5006
5238
  const verifySignedSessionId = await this.signedSession.resolve();
5007
5239
  data = await this.recoverEncryptedSharesWithNonceRetry({
5008
5240
  walletId,
@@ -5015,13 +5247,18 @@ class DynamicWalletClient {
5015
5247
  context: 'verify-backup-recoverable'
5016
5248
  });
5017
5249
  } catch (error) {
5018
- // Mint or fetch failed (transient) not proof the backup is bad; rethrow as-is.
5019
- this.logger.warn('[keyshare-recovery-verify] could not run verify fetch, rethrowing', {
5250
+ // Only a missing reverse channel (no callback, or the host registered no
5251
+ // getSignedSessionId handler) is a benign "can't run" — skip without aborting a
5252
+ // successful backup. Anything else (fetch / transient) is rethrown.
5253
+ const message = error instanceof Error && error.message || '';
5254
+ const noReverseChannel = !this.getSignedSessionIdCallback || message.includes('No handlers were registered') || message.includes('no callback is configured');
5255
+ if (!noReverseChannel) throw error;
5256
+ this.logger.warn('[keyshare-recovery-verify] no reverse channel for verify nonce, skipping', {
5020
5257
  walletId,
5021
5258
  accountAddress,
5022
5259
  errorName: error instanceof Error ? error.name : undefined
5023
5260
  });
5024
- throw error;
5261
+ return;
5025
5262
  }
5026
5263
  try {
5027
5264
  var _data_keyShares;
@@ -5412,7 +5649,7 @@ class DynamicWalletClient {
5412
5649
  }
5413
5650
  return location;
5414
5651
  }
5415
- async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
5652
+ async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5416
5653
  const dynamicRequestId = uuid.v4();
5417
5654
  // Get wallet data early for logging context (also used in catch block)
5418
5655
  const walletData = this.getWalletFromMap(accountAddress);
@@ -5630,7 +5867,8 @@ class DynamicWalletClient {
5630
5867
  shareSetId: targetShareSetId,
5631
5868
  locations,
5632
5869
  dynamicRequestId,
5633
- passwordUpdateBatchId
5870
+ passwordUpdateBatchId,
5871
+ businessAccountId
5634
5872
  }), {
5635
5873
  operationName: BACKUP_OPERATION.MarkBackedUp,
5636
5874
  shouldRetry: (error)=>{
@@ -5821,7 +6059,7 @@ class DynamicWalletClient {
5821
6059
  * @param params.signedSessionId - Optional signed session ID for authentication
5822
6060
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
5823
6061
  * @returns Promise with backup metadata including share locations and IDs
5824
- */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
6062
+ */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5825
6063
  var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5826
6064
  const hasProvidedShares = clientKeyShares !== undefined;
5827
6065
  const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
@@ -5895,7 +6133,8 @@ class DynamicWalletClient {
5895
6133
  preserveDelegatedLocation,
5896
6134
  passwordUpdateBatchId,
5897
6135
  googleDriveAccessToken,
5898
- googleDriveTokenSource
6136
+ googleDriveTokenSource,
6137
+ businessAccountId
5899
6138
  });
5900
6139
  var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
5901
6140
  return _extends({}, backupData, {
@@ -7693,6 +7932,12 @@ class DynamicWalletClient {
7693
7932
  logger: this.logger,
7694
7933
  onUnauthorized: internalOptions == null ? void 0 : internalOptions.onUnauthorized
7695
7934
  });
7935
+ // `reshare` left unbound until the signer-reshare flavor (reshare into a new
7936
+ // signer's pending share set) exists; addSigner is stubbed until then.
7937
+ this.businessAccounts = new core.BusinessAccountClient({
7938
+ apiClient: this.apiClient,
7939
+ logger: this.logger
7940
+ });
7696
7941
  this.debug = Boolean(debug);
7697
7942
  this.featureFlags = featureFlags || {};
7698
7943
  // setup storage for walletMap metadata (used regardless of secureStorage)
@@ -7719,11 +7964,15 @@ class DynamicWalletClient {
7719
7964
  durationMs: Date.now() - forwardMPCConnectStartedAt
7720
7965
  });
7721
7966
  }).catch((error)=>{
7722
- this.logger.error('Error connecting to ForwardMPC enclave optimistically', {
7967
+ const errorInfo = core.classifyForwardMpcError(error);
7968
+ // A rate-limited upgrade falls back to relay → warn, not error, so the
7969
+ // recovered case doesn't pollute error triage.
7970
+ const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
7971
+ this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
7723
7972
  error,
7724
7973
  environmentId: this.environmentId,
7725
7974
  durationMs: Date.now() - forwardMPCConnectStartedAt
7726
- });
7975
+ }));
7727
7976
  });
7728
7977
  }
7729
7978
  }
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, getMPCChainConfig, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, WalletApiError, handleAxiosError, WalletOperation, parseNamespacedVersion, WalletReadyState, FEATURE_FLAGS, ThresholdSignatureScheme, getClientThreshold, MPC_CONFIG, classifyForwardMpcError, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, getReshareConfig, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
1
+ import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, getMPCChainConfig, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, WalletApiError, handleAxiosError, WalletOperation, parseNamespacedVersion, WalletReadyState, FEATURE_FLAGS, ThresholdSignatureScheme, getClientThreshold, MPC_CONFIG, classifyForwardMpcError, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, getReshareConfig, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, BusinessAccountClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
2
2
  export * from '@dynamic-labs-wallet/core';
3
3
  export { Logger } from '@dynamic-labs-wallet/core';
4
4
  import { EdBls12377, BIP340, ExportableEd25519, Ecdsa, MessageHash, EcdsaSignature, EcdsaKeygenResult, ExportableEd25519KeygenResult, BIP340KeygenResult } from '#internal/web';
@@ -1847,12 +1847,18 @@ const initializeCloudKit = async (config, signInButtonId, onSignInRequired, onSi
1847
1847
  * (e.g. wrong password). These are logged at `info` instead of `error`
1848
1848
  * so they don't pollute error dashboards with user mistakes.
1849
1849
  */ const isExpectedUserError = (error)=>error instanceof InvalidPasswordError;
1850
+ /**
1851
+ * Returns true for transient API errors that are already logged at the
1852
+ * appropriate level by `handleAxiosError` but may be re-thrown as
1853
+ * `WalletApiError` and caught again (e.g. by queue error handlers).
1854
+ * Logging these at `warn` prevents double-counting them as real errors.
1855
+ */ const isTransientApiError = (error)=>error instanceof WalletApiError && error.status === 429;
1850
1856
  const logError = ({ message, error, context, level = 'error' })=>{
1851
1857
  if (error instanceof AxiosError) {
1852
1858
  handleAxiosError(error, message, context);
1853
1859
  return;
1854
1860
  }
1855
- const resolvedLevel = isExpectedUserError(error) ? 'info' : level;
1861
+ const resolvedLevel = isExpectedUserError(error) ? 'info' : isTransientApiError(error) ? 'warn' : level;
1856
1862
  // Surface the unwrapped `cause` (name only — never its raw fields, which may
1857
1863
  // carry key material). Errors like EncryptionSelfTestFailedError wrap the real
1858
1864
  // failure (e.g. KeyShareDecryptionError) as `cause`; without this the original
@@ -2761,7 +2767,7 @@ class DynamicWalletClient {
2761
2767
  };
2762
2768
  }
2763
2769
  }
2764
- async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete }) {
2770
+ async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
2765
2771
  // Initialize keygen, create room, and create the wallet account on the server
2766
2772
  const data = await this.apiClient.createWalletAccount({
2767
2773
  chainName,
@@ -2769,6 +2775,7 @@ class DynamicWalletClient {
2769
2775
  dynamicRequestId,
2770
2776
  thresholdSignatureScheme,
2771
2777
  bitcoinConfig,
2778
+ businessAccountId,
2772
2779
  onError,
2773
2780
  onCeremonyComplete
2774
2781
  });
@@ -2993,7 +3000,7 @@ class DynamicWalletClient {
2993
3000
  shouldRetry: (error)=>!isNonRetryableCeremonyError(error)
2994
3001
  });
2995
3002
  }
2996
- async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, onCeremonyComplete, traceContext, password, signedSessionId }) {
3003
+ async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
2997
3004
  const dynamicRequestId = v4();
2998
3005
  try {
2999
3006
  this.assertPasswordRequired(password);
@@ -3023,6 +3030,7 @@ class DynamicWalletClient {
3023
3030
  dynamicRequestId,
3024
3031
  thresholdSignatureScheme,
3025
3032
  bitcoinConfig,
3033
+ businessAccountId,
3026
3034
  onCeremonyComplete
3027
3035
  });
3028
3036
  this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
@@ -3053,6 +3061,7 @@ class DynamicWalletClient {
3053
3061
  dynamicRequestId,
3054
3062
  thresholdSignatureScheme,
3055
3063
  bitcoinConfig,
3064
+ businessAccountId,
3056
3065
  onCeremonyComplete
3057
3066
  })
3058
3067
  });
@@ -3730,7 +3739,7 @@ class DynamicWalletClient {
3730
3739
  // would race ceremony_complete and the atomic swap could target the stale
3731
3740
  // row. refresh's API call returns on room_created (not the local MPC
3732
3741
  // result), so the gate await sits between the local MPC and the backup.
3733
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
3742
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
3734
3743
  this.logger.info('[WaasRefresh] ceremony_complete received', {
3735
3744
  context: {
3736
3745
  walletId: wallet.walletId,
@@ -3950,6 +3959,227 @@ class DynamicWalletClient {
3950
3959
  googleDriveTokenSource
3951
3960
  }));
3952
3961
  }
3962
+ /** Reshare into a new 2/2 share set for the target signer; seed it to CKS
3963
+ * on their behalf via a single-use grant. Does not touch the caller's set. */ async reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType = 'endUser', targetSignerIdentity, password = undefined, signedSessionId }) {
3964
+ var _backup_keyShareIds;
3965
+ const dynamicRequestId = v4();
3966
+ const ceremonyStartTime = Date.now();
3967
+ // Log identifier shape only — value may be email/phone.
3968
+ const logContext = {
3969
+ dynamicRequestId,
3970
+ businessAccountId,
3971
+ chainName,
3972
+ accountAddress,
3973
+ signerType,
3974
+ identityMode: targetSignerIdentity.userId ? 'userId' : 'identifier',
3975
+ identifierType: targetSignerIdentity.identifierType
3976
+ };
3977
+ this.logger.info('[BusinessAccountAddSigner] start reshareToNewSignerShareSet', {
3978
+ context: logContext
3979
+ });
3980
+ const wallet = await this.getWallet({
3981
+ accountAddress,
3982
+ walletOperation: WalletOperation.REACH_ALL_PARTIES,
3983
+ password,
3984
+ signedSessionId
3985
+ });
3986
+ const walletId = wallet.walletId;
3987
+ const currentScheme = this.getWalletFromMap(accountAddress).thresholdSignatureScheme;
3988
+ const bitcoinConfig = this.getBitcoinConfigForChain(chainName, accountAddress);
3989
+ // Same-parties reshare — only the caller's share participates.
3990
+ const [existingClientShare] = await this.ensureClientShare(accountAddress);
3991
+ const existingClientKeygenId = await this.getExportId({
3992
+ chainName,
3993
+ clientKeyShare: existingClientShare,
3994
+ bitcoinConfig
3995
+ });
3996
+ // Gate matches internalRefresh/Reshare — SSE error rejects awaitTerminal.
3997
+ let newShareSetId;
3998
+ let resolvedTargetUserId;
3999
+ let clientKeyshareBackupGrant;
4000
+ const ceremonyGate = this.createCeremonyTerminalGate((payload)=>{
4001
+ newShareSetId = payload.shareSetId;
4002
+ resolvedTargetUserId = payload.targetUserId;
4003
+ clientKeyshareBackupGrant = payload.clientKeyshareBackupGrant;
4004
+ this.logger.info('[BusinessAccountAddSigner] ceremony_complete received', {
4005
+ context: _extends({}, logContext, {
4006
+ walletId,
4007
+ newShareSetId: payload.shareSetId,
4008
+ shareSetType: payload.shareSetType,
4009
+ hasTargetUserId: !!payload.targetUserId,
4010
+ hasClientKeyshareBackupGrant: !!payload.clientKeyshareBackupGrant
4011
+ })
4012
+ });
4013
+ });
4014
+ const data = await this.apiClient.addBusinessAccountSignerCeremony({
4015
+ businessAccountId,
4016
+ walletId,
4017
+ clientKeygenIds: [
4018
+ existingClientKeygenId
4019
+ ],
4020
+ oldThresholdSignatureScheme: currentScheme,
4021
+ signerType,
4022
+ userId: targetSignerIdentity.userId,
4023
+ identifier: targetSignerIdentity.identifier,
4024
+ identifierType: targetSignerIdentity.identifierType,
4025
+ dynamicRequestId,
4026
+ onError: ceremonyGate.onError,
4027
+ onCeremonyComplete: ceremonyGate.onCeremonyComplete
4028
+ });
4029
+ const { roomId, serverKeygenIds, newServerKeygenIds = [] } = data;
4030
+ const newMpcConfig = MPC_CONFIG[ThresholdSignatureScheme.TWO_OF_TWO];
4031
+ const allPartyKeygenIds = [
4032
+ existingClientKeygenId,
4033
+ ...serverKeygenIds,
4034
+ ...newServerKeygenIds
4035
+ ];
4036
+ const mpcSigner = getMPCSigner({
4037
+ chainName,
4038
+ baseRelayUrl: this.baseMPCRelayApiUrl,
4039
+ bitcoinConfig
4040
+ });
4041
+ const newSignerClientShare = await mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, existingClientShare, allPartyKeygenIds);
4042
+ try {
4043
+ await ceremonyGate.awaitTerminal();
4044
+ } catch (streamError) {
4045
+ this.logger.error('[BusinessAccountAddSigner] ceremony stream error', {
4046
+ context: _extends({}, logContext, {
4047
+ walletId,
4048
+ roomId,
4049
+ error: streamError instanceof Error ? streamError.message : String(streamError),
4050
+ failure_reason: 'ceremony_stream_error'
4051
+ })
4052
+ });
4053
+ throw streamError;
4054
+ }
4055
+ if (!newShareSetId) {
4056
+ this.logger.error('[BusinessAccountAddSigner] ceremony_complete missing shareSetId', {
4057
+ context: _extends({}, logContext, {
4058
+ walletId,
4059
+ roomId,
4060
+ failure_reason: 'ceremony_complete_missing_share_set_id'
4061
+ })
4062
+ });
4063
+ throw new Error('addSigner reshare did not return a shareSetId');
4064
+ }
4065
+ // Target has no password yet — encryptKeyShare falls back to the env-default key.
4066
+ const encrypted = await this.encryptKeyShare({
4067
+ keyShare: newSignerClientShare
4068
+ });
4069
+ // Server contract: targetUserId is always set on successful ceremony_complete.
4070
+ if (!resolvedTargetUserId) {
4071
+ this.logger.error('[BusinessAccountAddSigner] no target userId resolved for on-behalf backup', {
4072
+ context: _extends({}, logContext, {
4073
+ walletId,
4074
+ newShareSetId,
4075
+ failure_reason: 'no_target_user_id_resolved'
4076
+ })
4077
+ });
4078
+ throw new Error('addSigner ceremony did not resolve a target userId for the on-behalf backup');
4079
+ }
4080
+ const targetUserId = resolvedTargetUserId;
4081
+ this.logger.info('[BusinessAccountAddSigner] backupOnBehalfOfAddedSigner -> client-keyshare-service', {
4082
+ context: _extends({}, logContext, {
4083
+ walletId,
4084
+ newShareSetId,
4085
+ hasClientKeyshareBackupGrant: !!clientKeyshareBackupGrant
4086
+ })
4087
+ });
4088
+ // Grant is primary auth; signedSession is belt-and-suspenders. Refresh-on-400
4089
+ // handles nonce reuse; transient 429/5xx retry via alsoRetry. 401/403 = grant
4090
+ // rejected (single-use, not replayable) → caller must re-run addSigner.
4091
+ let backup;
4092
+ try {
4093
+ let resolvedSignedSessionId = signedSessionId;
4094
+ backup = await retryPromise(()=>this.apiClient.backupOnBehalfOfAddedSigner({
4095
+ walletId,
4096
+ targetUserId,
4097
+ encryptedAccountCredentials: [
4098
+ encrypted
4099
+ ],
4100
+ passwordEncrypted: false,
4101
+ encryptionVersion: ENCRYPTION_VERSION_CURRENT,
4102
+ clientKeyshareBackupGrant,
4103
+ signedSessionId: resolvedSignedSessionId,
4104
+ dynamicRequestId
4105
+ }), {
4106
+ operationName: 'backupOnBehalfOfAddedSigner',
4107
+ shouldRetry: this.signedSession.refreshShouldRetry({
4108
+ onRefreshed: (id)=>{
4109
+ resolvedSignedSessionId = id;
4110
+ },
4111
+ operationName: 'backupOnBehalfOfAddedSigner',
4112
+ logContext: _extends({}, logContext, {
4113
+ walletId,
4114
+ dynamicRequestId
4115
+ }),
4116
+ alsoRetry: (status)=>status === undefined || status === 429 || status !== undefined && status >= 500
4117
+ })
4118
+ });
4119
+ } catch (err) {
4120
+ var _err_response;
4121
+ const status = err == null ? void 0 : (_err_response = err.response) == null ? void 0 : _err_response.status;
4122
+ if (clientKeyshareBackupGrant && (status === 401 || status === 403)) {
4123
+ this.logger.error('[BusinessAccountAddSigner] client_keyshare_backup_grant_exhausted', {
4124
+ context: _extends({}, logContext, {
4125
+ walletId,
4126
+ newShareSetId,
4127
+ status,
4128
+ failure_reason: 'grant_exhausted'
4129
+ })
4130
+ });
4131
+ }
4132
+ throw err;
4133
+ }
4134
+ const externalKeyShareId = (_backup_keyShareIds = backup.keyShareIds) == null ? void 0 : _backup_keyShareIds[0];
4135
+ if (!externalKeyShareId) {
4136
+ this.logger.error('[BusinessAccountAddSigner] on-behalf backup returned no keyShareId', {
4137
+ context: _extends({}, logContext, {
4138
+ walletId,
4139
+ newShareSetId,
4140
+ failure_reason: 'cks_write_no_keyshare_id'
4141
+ })
4142
+ });
4143
+ throw new Error('on-behalf backup did not return a keyShareId');
4144
+ }
4145
+ this.logger.info('[BusinessAccountAddSigner] on-behalf backup stored', {
4146
+ context: _extends({}, logContext, {
4147
+ walletId,
4148
+ newShareSetId,
4149
+ externalKeyShareId
4150
+ })
4151
+ });
4152
+ // Activate the share-set ↔ keyShareId mapping on redcoast.
4153
+ await retryPromise(()=>this.apiClient.markKeySharesAsBackedUp({
4154
+ walletId,
4155
+ shareSetId: newShareSetId,
4156
+ locations: [
4157
+ {
4158
+ location: BackupLocation.DYNAMIC,
4159
+ externalKeyShareId
4160
+ }
4161
+ ],
4162
+ dynamicRequestId,
4163
+ businessAccountId
4164
+ }), {
4165
+ operationName: 'addSigner.markKeySharesAsBackedUp',
4166
+ shouldRetry: (error)=>{
4167
+ const status = getHttpStatus(error);
4168
+ return status === undefined || status === 429 || status !== undefined && status >= 500;
4169
+ }
4170
+ });
4171
+ this.logger.info('[BusinessAccountAddSigner] done — share set activated', {
4172
+ context: _extends({}, logContext, {
4173
+ walletId,
4174
+ newShareSetId,
4175
+ externalKeyShareId,
4176
+ ceremony_duration_ms: Date.now() - ceremonyStartTime
4177
+ })
4178
+ });
4179
+ return {
4180
+ shareSetId: newShareSetId
4181
+ };
4182
+ }
3953
4183
  // Surfaces server-side bugs in the ceremony_complete payload without
3954
4184
  // breaking the operation. The two cases:
3955
4185
  //
@@ -4003,7 +4233,10 @@ class DynamicWalletClient {
4003
4233
  // The reject handle is wired synchronously (Promise executors run inline)
4004
4234
  // before the API call starts, so an immediate onError can never be dropped.
4005
4235
  // The lost branch's rejection is swallowed so it never surfaces as unhandled.
4006
- createCeremonyTerminalGate(onCeremonyComplete) {
4236
+ /**
4237
+ * Ceremony-complete payload — typed object so addSigner-only fields are
4238
+ * namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
4239
+ */ createCeremonyTerminalGate(onCeremonyComplete) {
4007
4240
  let resolveComplete;
4008
4241
  const completePromise = new Promise((resolve)=>{
4009
4242
  resolveComplete = resolve;
@@ -4017,9 +4250,19 @@ class DynamicWalletClient {
4017
4250
  let fired = false;
4018
4251
  return {
4019
4252
  onError: rejectOnError,
4020
- onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType)=>{
4253
+ // Positional shape preserved at the wire boundary — eventStream/utils
4254
+ // invokes this with positional args. Translates to the typed object
4255
+ // for the caller-supplied cb.
4256
+ onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType, targetUserId, clientKeyshareBackupGrant)=>{
4021
4257
  fired = true;
4022
- onCeremonyComplete == null ? void 0 : onCeremonyComplete(accountAddress, walletId, shareSetId, shareSetType);
4258
+ onCeremonyComplete == null ? void 0 : onCeremonyComplete({
4259
+ accountAddress,
4260
+ walletId,
4261
+ shareSetId,
4262
+ shareSetType,
4263
+ targetUserId,
4264
+ clientKeyshareBackupGrant
4265
+ });
4023
4266
  resolveComplete();
4024
4267
  },
4025
4268
  awaitTerminal: ()=>Promise.race([
@@ -4267,7 +4510,7 @@ class DynamicWalletClient {
4267
4510
  // walletMap.shareSetId rotation lands before storeEncryptedBackupByWallet
4268
4511
  // reads it; without it, backup would race ceremony_complete and the atomic
4269
4512
  // swap could target the stale row.
4270
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
4513
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
4271
4514
  this.logger.info('[WaasReshare] ceremony_complete received', {
4272
4515
  context: {
4273
4516
  walletId: wallet.walletId,
@@ -4989,21 +5232,10 @@ class DynamicWalletClient {
4989
5232
  accountAddress,
4990
5233
  shareCount: expectedShares.length
4991
5234
  });
4992
- // The preceding `/backup` upload consumed the caller's signed-session nonce, so
4993
- // the verify fetch needs a freshly-minted one — only possible over the reverse
4994
- // channel. Without one, skip the check (with a warning) rather than abort an
4995
- // otherwise-successful backup.
4996
- if (!this.getSignedSessionIdCallback) {
4997
- this.logger.warn('[keyshare-recovery-verify] skipped: no reverse channel to mint a fresh nonce for the verify fetch', {
4998
- walletId,
4999
- accountAddress
5000
- });
5001
- return;
5002
- }
5003
5235
  let data;
5004
5236
  try {
5005
- // Fresh session (the backup consumed the caller's), inside the try so a flaky
5006
- // reverse channel is treated as transient below, not a backup-abort.
5237
+ // Mint a fresh session (the backup consumed the caller's). A missing reverse
5238
+ // channel is skipped below; any other failure rethrows.
5007
5239
  const verifySignedSessionId = await this.signedSession.resolve();
5008
5240
  data = await this.recoverEncryptedSharesWithNonceRetry({
5009
5241
  walletId,
@@ -5016,13 +5248,18 @@ class DynamicWalletClient {
5016
5248
  context: 'verify-backup-recoverable'
5017
5249
  });
5018
5250
  } catch (error) {
5019
- // Mint or fetch failed (transient) not proof the backup is bad; rethrow as-is.
5020
- this.logger.warn('[keyshare-recovery-verify] could not run verify fetch, rethrowing', {
5251
+ // Only a missing reverse channel (no callback, or the host registered no
5252
+ // getSignedSessionId handler) is a benign "can't run" — skip without aborting a
5253
+ // successful backup. Anything else (fetch / transient) is rethrown.
5254
+ const message = error instanceof Error && error.message || '';
5255
+ const noReverseChannel = !this.getSignedSessionIdCallback || message.includes('No handlers were registered') || message.includes('no callback is configured');
5256
+ if (!noReverseChannel) throw error;
5257
+ this.logger.warn('[keyshare-recovery-verify] no reverse channel for verify nonce, skipping', {
5021
5258
  walletId,
5022
5259
  accountAddress,
5023
5260
  errorName: error instanceof Error ? error.name : undefined
5024
5261
  });
5025
- throw error;
5262
+ return;
5026
5263
  }
5027
5264
  try {
5028
5265
  var _data_keyShares;
@@ -5413,7 +5650,7 @@ class DynamicWalletClient {
5413
5650
  }
5414
5651
  return location;
5415
5652
  }
5416
- async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
5653
+ async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5417
5654
  const dynamicRequestId = v4();
5418
5655
  // Get wallet data early for logging context (also used in catch block)
5419
5656
  const walletData = this.getWalletFromMap(accountAddress);
@@ -5631,7 +5868,8 @@ class DynamicWalletClient {
5631
5868
  shareSetId: targetShareSetId,
5632
5869
  locations,
5633
5870
  dynamicRequestId,
5634
- passwordUpdateBatchId
5871
+ passwordUpdateBatchId,
5872
+ businessAccountId
5635
5873
  }), {
5636
5874
  operationName: BACKUP_OPERATION.MarkBackedUp,
5637
5875
  shouldRetry: (error)=>{
@@ -5822,7 +6060,7 @@ class DynamicWalletClient {
5822
6060
  * @param params.signedSessionId - Optional signed session ID for authentication
5823
6061
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
5824
6062
  * @returns Promise with backup metadata including share locations and IDs
5825
- */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
6063
+ */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5826
6064
  var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5827
6065
  const hasProvidedShares = clientKeyShares !== undefined;
5828
6066
  const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
@@ -5896,7 +6134,8 @@ class DynamicWalletClient {
5896
6134
  preserveDelegatedLocation,
5897
6135
  passwordUpdateBatchId,
5898
6136
  googleDriveAccessToken,
5899
- googleDriveTokenSource
6137
+ googleDriveTokenSource,
6138
+ businessAccountId
5900
6139
  });
5901
6140
  var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
5902
6141
  return _extends({}, backupData, {
@@ -7694,6 +7933,12 @@ class DynamicWalletClient {
7694
7933
  logger: this.logger,
7695
7934
  onUnauthorized: internalOptions == null ? void 0 : internalOptions.onUnauthorized
7696
7935
  });
7936
+ // `reshare` left unbound until the signer-reshare flavor (reshare into a new
7937
+ // signer's pending share set) exists; addSigner is stubbed until then.
7938
+ this.businessAccounts = new BusinessAccountClient({
7939
+ apiClient: this.apiClient,
7940
+ logger: this.logger
7941
+ });
7697
7942
  this.debug = Boolean(debug);
7698
7943
  this.featureFlags = featureFlags || {};
7699
7944
  // setup storage for walletMap metadata (used regardless of secureStorage)
@@ -7720,11 +7965,15 @@ class DynamicWalletClient {
7720
7965
  durationMs: Date.now() - forwardMPCConnectStartedAt
7721
7966
  });
7722
7967
  }).catch((error)=>{
7723
- this.logger.error('Error connecting to ForwardMPC enclave optimistically', {
7968
+ const errorInfo = classifyForwardMpcError(error);
7969
+ // A rate-limited upgrade falls back to relay → warn, not error, so the
7970
+ // recovered case doesn't pollute error triage.
7971
+ const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
7972
+ this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
7724
7973
  error,
7725
7974
  environmentId: this.environmentId,
7726
7975
  durationMs: Date.now() - forwardMPCConnectStartedAt
7727
- });
7976
+ }));
7728
7977
  });
7729
7978
  }
7730
7979
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "license": "Licensed under the Dynamic Labs, Inc. Terms Of Service (https://www.dynamic.xyz/terms-conditions)",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "1.0.28",
8
- "@dynamic-labs-wallet/forward-mpc-client": "0.11.0",
9
- "@dynamic-labs-wallet/primitives": "1.0.28",
7
+ "@dynamic-labs-wallet/core": "1.0.30",
8
+ "@dynamic-labs-wallet/forward-mpc-client": "0.12.0",
9
+ "@dynamic-labs-wallet/primitives": "1.0.30",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.984",
11
11
  "argon2id": "1.0.1",
12
12
  "axios": "1.16.0",
package/src/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { EcdsaSignature, MessageHash, type EcdsaPublicKey } from '#internal/web';
2
- import { AuthMode, BackupLocation, DynamicApiClient, ThresholdSignatureScheme, WalletOperation, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
2
+ import { AuthMode, BackupLocation, DynamicApiClient, BusinessAccountClient, type TargetSignerIdentity, type BusinessAccountSignerType, ThresholdSignatureScheme, WalletOperation, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
3
3
  import { RoomTypeEnum, type SignMessageContext } from '@dynamic-labs/sdk-api-core';
4
4
  import type { DerivationInputFingerprint } from './backup/encryption/types.js';
5
5
  import type { ClientInitKeygenResult, ClientKeyShare, MPCSigner } from './mpc/types.js';
@@ -35,6 +35,8 @@ export declare class DynamicWalletClient {
35
35
  protected initializePromise: Promise<InitializeResult> | null;
36
36
  protected logger: ILogger;
37
37
  protected apiClient: DynamicApiClient;
38
+ /** Business-account orchestration (create/list/get + member/signer ops). */
39
+ readonly businessAccounts: BusinessAccountClient;
38
40
  protected walletMap: Record<string, WalletProperties>;
39
41
  protected storage: SupportedStorage;
40
42
  protected memoryStorage: {
@@ -131,12 +133,13 @@ export declare class DynamicWalletClient {
131
133
  * Client initialization logic
132
134
  */
133
135
  protected _initialize(traceContext?: TraceContext): Promise<InitializeResult>;
134
- serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, }: {
136
+ serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete, }: {
135
137
  chainName: string;
136
138
  clientKeygenIds: string[];
137
139
  dynamicRequestId: string;
138
140
  thresholdSignatureScheme: ThresholdSignatureScheme;
139
141
  bitcoinConfig?: BitcoinConfig;
142
+ businessAccountId?: string;
140
143
  onError?: (error: Error) => void;
141
144
  onCeremonyComplete?: (accountAddress: string, walletId: string, shareSetId?: string) => void;
142
145
  }): Promise<import("@dynamic-labs-wallet/core").KeygenCompleteResponse>;
@@ -209,6 +212,7 @@ export declare class DynamicWalletClient {
209
212
  chainName: string;
210
213
  thresholdSignatureScheme: ThresholdSignatureScheme;
211
214
  bitcoinConfig?: BitcoinConfig;
215
+ businessAccountId?: string;
212
216
  onError?: (error: Error) => void;
213
217
  onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
214
218
  traceContext?: TraceContext;
@@ -380,7 +384,24 @@ export declare class DynamicWalletClient {
380
384
  googleDriveAccessToken?: string;
381
385
  googleDriveTokenSource?: 'external' | 'stored_oauth';
382
386
  }): Promise<void>;
387
+ /** Reshare into a new 2/2 share set for the target signer; seed it to CKS
388
+ * on their behalf via a single-use grant. Does not touch the caller's set. */
389
+ reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType, targetSignerIdentity, password, signedSessionId, }: {
390
+ chainName: string;
391
+ accountAddress: string;
392
+ businessAccountId: string;
393
+ signerType?: BusinessAccountSignerType;
394
+ targetSignerIdentity: TargetSignerIdentity;
395
+ password?: string;
396
+ signedSessionId: string;
397
+ }): Promise<{
398
+ shareSetId: string;
399
+ }>;
383
400
  private logOnMalformedCeremonyPayload;
401
+ /**
402
+ * Ceremony-complete payload — typed object so addSigner-only fields are
403
+ * namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
404
+ */
384
405
  private createCeremonyTerminalGate;
385
406
  private runBackupWithRotationRollback;
386
407
  private rotateRootUserShareSetIdIfChanged;
@@ -536,7 +557,7 @@ export declare class DynamicWalletClient {
536
557
  private backupToCloudProvider;
537
558
  private publishDelegatedShare;
538
559
  private createPreservedDelegatedLocation;
539
- backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, }: {
560
+ backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
540
561
  accountAddress: string;
541
562
  password?: string;
542
563
  signedSessionId?: string;
@@ -545,6 +566,7 @@ export declare class DynamicWalletClient {
545
566
  passwordUpdateBatchId?: string;
546
567
  googleDriveAccessToken?: string;
547
568
  googleDriveTokenSource?: 'external' | 'stored_oauth';
569
+ businessAccountId?: string;
548
570
  }): Promise<{
549
571
  message: string;
550
572
  walletId: string;
@@ -588,7 +610,7 @@ export declare class DynamicWalletClient {
588
610
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
589
611
  * @returns Promise with backup metadata including share locations and IDs
590
612
  */
591
- storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, }: {
613
+ storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
592
614
  accountAddress: string;
593
615
  clientKeyShares?: ClientKeyShare[];
594
616
  password?: string;
@@ -598,6 +620,7 @@ export declare class DynamicWalletClient {
598
620
  passwordUpdateBatchId?: string;
599
621
  googleDriveAccessToken?: string;
600
622
  googleDriveTokenSource?: 'external' | 'stored_oauth';
623
+ businessAccountId?: string;
601
624
  }): Promise<{
602
625
  keyShareIds: string[];
603
626
  keygenIds: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,QAAQ,wCAKlB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B,KAAG,IAkBH,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,QAAQ,wCAKlB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B,KAAG,IAkBH,CAAC"}