@dynamic-labs-wallet/browser 1.1.19 → 1.1.21

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
@@ -667,6 +667,12 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
667
667
  * retried. `alsoRetry` lets callers opt into additional retryable statuses
668
668
  * (e.g. 429 / 5xx) on top of the nonce refresh.
669
669
  */ refreshShouldRetry({ onRefreshed, operationName, logContext, alsoRetry }) {
670
+ // Per-operation state: a slow-but-succeeding attempt can consume the nonce
671
+ // after the client already moved on (e.g. a transient error on attempt 1
672
+ // triggered an `alsoRetry`), so the replay 400 can land on any attempt, not
673
+ // just the first. Refresh on the first such 400 seen, whichever attempt
674
+ // it's on, and never again — preserves the single-refresh-per-operation limit.
675
+ let hasRefreshed = false;
670
676
  return async (error, attempt)=>{
671
677
  const status = getHttpStatus(error);
672
678
  // A 400 is a refreshable replay nonce; a 401 is a session-key mismatch the
@@ -677,7 +683,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
677
683
  const isSessionSignatureFailure = status === 401 && SESSION_SIGNATURE_FAILURE_REASONS.has(classifyNonceFailure(readErrorBody(error)));
678
684
  const shouldInstrument = status === 400 || isSessionSignatureFailure;
679
685
  if (shouldInstrument) {
680
- const willRefresh = status === 400 && attempt === 1 && this.canRefresh && this.supportsReverseChannel();
686
+ const willRefresh = status === 400 && !hasRefreshed && this.canRefresh && this.supportsReverseChannel();
681
687
  this.instrumentNonceFailure({
682
688
  error,
683
689
  attempt,
@@ -687,7 +693,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
687
693
  logContext
688
694
  });
689
695
  }
690
- if (status === 400 && attempt === 1 && this.canRefresh) {
696
+ if (status === 400 && !hasRefreshed && this.canRefresh) {
691
697
  // canRefresh only proves a local callback exists, not that the host answers it.
692
698
  if (!this.supportsReverseChannel()) {
693
699
  this.logger.warn(`[${operationName}] host SDK version predates the signed-session reverse channel, declining nonce refresh`, _extends({
@@ -697,6 +703,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
697
703
  }, logContext));
698
704
  return alsoRetry ? alsoRetry(status) : false;
699
705
  }
706
+ hasRefreshed = true;
700
707
  onRefreshed(await this.resolve());
701
708
  this.logger.info(`[${operationName}] refreshed signed session, retrying`, _extends({
702
709
  http: {
@@ -1686,34 +1693,7 @@ const isHexString = (str)=>{
1686
1693
  * Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
1687
1694
  * TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
1688
1695
  * algorithm is applied inside the MPC signer, not here.
1689
- */ const formatRawBytesMessage = (message)=>{
1690
- if (typeof message !== 'string') {
1691
- return message;
1692
- }
1693
- if (isHexString(message)) {
1694
- return new Uint8Array(Buffer.from(message, 'hex'));
1695
- }
1696
- return Buffer.from(message).toString('hex');
1697
- };
1698
- const formatSolanaMessage = (message)=>formatRawBytesMessage(message);
1699
- const formatTonMessage = (message)=>formatRawBytesMessage(message);
1700
- const formatStellarMessage = (message)=>formatRawBytesMessage(message);
1701
- const formatMidnightMessage = (message)=>formatRawBytesMessage(message);
1702
- /**
1703
- * EdBls12377.signBytes takes a raw Uint8Array (no hex-string form accepted),
1704
- * unlike formatRawBytesMessage's other consumers — so hex input decodes to
1705
- * bytes and plain text UTF-8-encodes to bytes, instead of staying a string.
1706
- */ const formatAleoMessage = (message)=>{
1707
- if (typeof message !== 'string') {
1708
- return message;
1709
- }
1710
- if (isHexString(message)) {
1711
- const hex = message.startsWith('0x') ? message.slice(2) : message;
1712
- return new Uint8Array(Buffer.from(hex, 'hex'));
1713
- }
1714
- return new Uint8Array(Buffer.from(message, 'utf-8'));
1715
- };
1716
- const formatMessage = (chainName, message)=>{
1696
+ */ const formatMessage = (chainName, message)=>{
1717
1697
  switch(chainName){
1718
1698
  case 'EVM':
1719
1699
  case 'TEMPO':
@@ -1721,17 +1701,17 @@ const formatMessage = (chainName, message)=>{
1721
1701
  case 'TRON':
1722
1702
  return formatTronMessage(message);
1723
1703
  case 'SVM':
1724
- return formatSolanaMessage(message);
1704
+ return core.formatRawMessageForSigning('SVM', message);
1725
1705
  case 'SUI':
1726
1706
  return message;
1727
1707
  case 'TON':
1728
- return formatTonMessage(message);
1708
+ return core.formatRawMessageForSigning('TON', message);
1729
1709
  case 'STELLAR':
1730
- return formatStellarMessage(message);
1710
+ return core.formatRawMessageForSigning('STELLAR', message);
1731
1711
  case 'MIDNIGHT':
1732
- return formatMidnightMessage(message);
1712
+ return core.formatRawMessageForSigning('MIDNIGHT', message);
1733
1713
  case 'ALEO':
1734
- return formatAleoMessage(message);
1714
+ return core.formatRawMessageForSigning('ALEO', message);
1735
1715
  default:
1736
1716
  throw new Error('Unsupported chain name');
1737
1717
  }
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, DEFAULT_ED25519_VARIANT, getMPCChainConfig, parseNamespacedVersion, WalletApiError, NETWORK_ERROR_STATUS, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, handleAxiosError, WalletOperation, ThresholdSignatureScheme, WalletReadyState, classifyForwardMpcError, isRecoveredForwardMpcConnectionChurn, FEATURE_FLAGS, getClientThreshold, MPC_CONFIG, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, serializeError, createRejectablePromise, getReshareConfig, isBusinessAccountActionRequired, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, BusinessAccountClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
1
+ import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, DEFAULT_ED25519_VARIANT, getMPCChainConfig, parseNamespacedVersion, WalletApiError, NETWORK_ERROR_STATUS, formatRawMessageForSigning, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, handleAxiosError, WalletOperation, ThresholdSignatureScheme, WalletReadyState, classifyForwardMpcError, isRecoveredForwardMpcConnectionChurn, FEATURE_FLAGS, getClientThreshold, MPC_CONFIG, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, serializeError, createRejectablePromise, getReshareConfig, isBusinessAccountActionRequired, 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, Ed25519, ExportableEd25519, Ecdsa, MessageHash, EcdsaSignature, EcdsaKeygenResult, ExportableEd25519KeygenResult, Ed25519KeygenResult, BIP340KeygenResult } from '#internal/web';
@@ -668,6 +668,12 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
668
668
  * retried. `alsoRetry` lets callers opt into additional retryable statuses
669
669
  * (e.g. 429 / 5xx) on top of the nonce refresh.
670
670
  */ refreshShouldRetry({ onRefreshed, operationName, logContext, alsoRetry }) {
671
+ // Per-operation state: a slow-but-succeeding attempt can consume the nonce
672
+ // after the client already moved on (e.g. a transient error on attempt 1
673
+ // triggered an `alsoRetry`), so the replay 400 can land on any attempt, not
674
+ // just the first. Refresh on the first such 400 seen, whichever attempt
675
+ // it's on, and never again — preserves the single-refresh-per-operation limit.
676
+ let hasRefreshed = false;
671
677
  return async (error, attempt)=>{
672
678
  const status = getHttpStatus(error);
673
679
  // A 400 is a refreshable replay nonce; a 401 is a session-key mismatch the
@@ -678,7 +684,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
678
684
  const isSessionSignatureFailure = status === 401 && SESSION_SIGNATURE_FAILURE_REASONS.has(classifyNonceFailure(readErrorBody(error)));
679
685
  const shouldInstrument = status === 400 || isSessionSignatureFailure;
680
686
  if (shouldInstrument) {
681
- const willRefresh = status === 400 && attempt === 1 && this.canRefresh && this.supportsReverseChannel();
687
+ const willRefresh = status === 400 && !hasRefreshed && this.canRefresh && this.supportsReverseChannel();
682
688
  this.instrumentNonceFailure({
683
689
  error,
684
690
  attempt,
@@ -688,7 +694,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
688
694
  logContext
689
695
  });
690
696
  }
691
- if (status === 400 && attempt === 1 && this.canRefresh) {
697
+ if (status === 400 && !hasRefreshed && this.canRefresh) {
692
698
  // canRefresh only proves a local callback exists, not that the host answers it.
693
699
  if (!this.supportsReverseChannel()) {
694
700
  this.logger.warn(`[${operationName}] host SDK version predates the signed-session reverse channel, declining nonce refresh`, _extends({
@@ -698,6 +704,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
698
704
  }, logContext));
699
705
  return alsoRetry ? alsoRetry(status) : false;
700
706
  }
707
+ hasRefreshed = true;
701
708
  onRefreshed(await this.resolve());
702
709
  this.logger.info(`[${operationName}] refreshed signed session, retrying`, _extends({
703
710
  http: {
@@ -1687,34 +1694,7 @@ const isHexString = (str)=>{
1687
1694
  * Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
1688
1695
  * TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
1689
1696
  * algorithm is applied inside the MPC signer, not here.
1690
- */ const formatRawBytesMessage = (message)=>{
1691
- if (typeof message !== 'string') {
1692
- return message;
1693
- }
1694
- if (isHexString(message)) {
1695
- return new Uint8Array(Buffer.from(message, 'hex'));
1696
- }
1697
- return Buffer.from(message).toString('hex');
1698
- };
1699
- const formatSolanaMessage = (message)=>formatRawBytesMessage(message);
1700
- const formatTonMessage = (message)=>formatRawBytesMessage(message);
1701
- const formatStellarMessage = (message)=>formatRawBytesMessage(message);
1702
- const formatMidnightMessage = (message)=>formatRawBytesMessage(message);
1703
- /**
1704
- * EdBls12377.signBytes takes a raw Uint8Array (no hex-string form accepted),
1705
- * unlike formatRawBytesMessage's other consumers — so hex input decodes to
1706
- * bytes and plain text UTF-8-encodes to bytes, instead of staying a string.
1707
- */ const formatAleoMessage = (message)=>{
1708
- if (typeof message !== 'string') {
1709
- return message;
1710
- }
1711
- if (isHexString(message)) {
1712
- const hex = message.startsWith('0x') ? message.slice(2) : message;
1713
- return new Uint8Array(Buffer.from(hex, 'hex'));
1714
- }
1715
- return new Uint8Array(Buffer.from(message, 'utf-8'));
1716
- };
1717
- const formatMessage = (chainName, message)=>{
1697
+ */ const formatMessage = (chainName, message)=>{
1718
1698
  switch(chainName){
1719
1699
  case 'EVM':
1720
1700
  case 'TEMPO':
@@ -1722,17 +1702,17 @@ const formatMessage = (chainName, message)=>{
1722
1702
  case 'TRON':
1723
1703
  return formatTronMessage(message);
1724
1704
  case 'SVM':
1725
- return formatSolanaMessage(message);
1705
+ return formatRawMessageForSigning('SVM', message);
1726
1706
  case 'SUI':
1727
1707
  return message;
1728
1708
  case 'TON':
1729
- return formatTonMessage(message);
1709
+ return formatRawMessageForSigning('TON', message);
1730
1710
  case 'STELLAR':
1731
- return formatStellarMessage(message);
1711
+ return formatRawMessageForSigning('STELLAR', message);
1732
1712
  case 'MIDNIGHT':
1733
- return formatMidnightMessage(message);
1713
+ return formatRawMessageForSigning('MIDNIGHT', message);
1734
1714
  case 'ALEO':
1735
- return formatAleoMessage(message);
1715
+ return formatRawMessageForSigning('ALEO', message);
1736
1716
  default:
1737
1717
  throw new Error('Unsupported chain name');
1738
1718
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "1.1.19",
3
+ "version": "1.1.21",
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.1.19",
7
+ "@dynamic-labs-wallet/core": "1.1.21",
8
8
  "@dynamic-labs-wallet/forward-mpc-client": "2.0.2",
9
- "@dynamic-labs-wallet/primitives": "1.1.19",
9
+ "@dynamic-labs-wallet/primitives": "1.1.21",
10
10
  "@dynamic-labs/sdk-api-core": "0.50.0",
11
11
  "@noble/curves": "1.8.0",
12
12
  "argon2id": "1.0.1",
@@ -1 +1 @@
1
- {"version":3,"file":"signedSession.d.ts","sourceRoot":"","sources":["../../src/services/signedSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,gEAAgE;AAChE,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,2BAA2B,GAC3B,oBAAoB,GACpB,OAAO,CAAC;AAkCZ,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,sBAAuB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,kBAoB7F,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IAGxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;gBAEtC,EACV,MAAM,EACN,UAAU,EACV,WAAW,GACZ,EAAE;QACD,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;KACxD;IAQD,+EAA+E;IAC/E,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;OAGG;IACG,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAaxD,uEAAuE;IACvE,UAAU,IAAI,OAAO;IAIrB,2GAA2G;IAC3G,sBAAsB,IAAI,OAAO;IAIjC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE;QACD,WAAW,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;KACrD,GAAG,WAAW;IAoCf;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CA+B/B"}
1
+ {"version":3,"file":"signedSession.d.ts","sourceRoot":"","sources":["../../src/services/signedSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,gEAAgE;AAChE,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,2BAA2B,GAC3B,oBAAoB,GACpB,OAAO,CAAC;AAkCZ,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,sBAAuB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,kBAoB7F,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IAGxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;gBAEtC,EACV,MAAM,EACN,UAAU,EACV,WAAW,GACZ,EAAE;QACD,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;KACxD;IAQD,+EAA+E;IAC/E,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;OAGG;IACG,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAaxD,uEAAuE;IACvE,UAAU,IAAI,OAAO;IAIrB,2GAA2G;IAC3G,sBAAsB,IAAI,OAAO;IAIjC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE;QACD,WAAW,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;KACrD,GAAG,WAAW;IA2Cf;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CA+B/B"}
package/src/utils.d.ts CHANGED
@@ -117,6 +117,16 @@ export declare const formatEvmMessage: (message: string | Uint8Array) => Message
117
117
  */
118
118
  export declare const formatTronMessage: (message: string | Uint8Array) => MessageHash;
119
119
  export declare const isHexString: (str: string) => boolean;
120
+ /**
121
+ * Normalizes a message to the bytes/hex form an MPC signer consumes:
122
+ * - string + hex charset → Uint8Array
123
+ * - string + plain text → hex-encoded string
124
+ * - Uint8Array → passthrough
125
+ *
126
+ * Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
127
+ * TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
128
+ * algorithm is applied inside the MPC signer, not here.
129
+ */
120
130
  export declare const formatMessage: (chainName: string, message: string | Uint8Array) => string | Uint8Array | MessageHash;
121
131
  export declare const getGoogleOAuthAccountId: (verifiedCredentials: JwtVerifiedCredential[]) => string | undefined;
122
132
  export declare const createBackupData: ({ encryptedKeyShares, accountAddress, thresholdSignatureScheme, hasPassword, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"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"}