@dynamic-labs/tempo 4.91.3 → 4.91.5

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/CHANGELOG.md CHANGED
@@ -1,4 +1,21 @@
1
1
 
2
+ ### [4.91.5](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.4...v4.91.5) (2026-07-02)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * revoke WaaS signed-session callback on client rebuild to stop iOS nonce race ([#11766](https://github.com/dynamic-labs/dynamic-auth/issues/11766)) ([c895b5d](https://github.com/dynamic-labs/dynamic-auth/commit/c895b5d0987d62a9f5597741dbeae0ec7fedfe5b))
8
+ * **sdk-react-core:** allow sendOneTimeCode to target non-primary chain wallets ([#11777](https://github.com/dynamic-labs/dynamic-auth/issues/11777)) ([63f82af](https://github.com/dynamic-labs/dynamic-auth/commit/63f82af7c52be595bc2948ec88ee9c919ac9275a))
9
+ * **webview-controller:** resolve post-login wallet race in Viem and ZeroDev controllers ([#11774](https://github.com/dynamic-labs/dynamic-auth/issues/11774)) ([95ed26e](https://github.com/dynamic-labs/dynamic-auth/commit/95ed26eee09d9aff5a5af6517ab7e1360ef5f337))
10
+
11
+ ### [4.91.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.3...v4.91.4) (2026-07-01)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * conditionally use /op/ route for AA transactions based on block explorer support ([#11628](https://github.com/dynamic-labs/dynamic-auth/issues/11628)) ([95822dc](https://github.com/dynamic-labs/dynamic-auth/commit/95822dc0edbcd739afe870f0b3881555fdb17eb6))
17
+ * require error codes in all SDK error classes ([#11761](https://github.com/dynamic-labs/dynamic-auth/issues/11761)) ([5744811](https://github.com/dynamic-labs/dynamic-auth/commit/5744811efdd1e415aaf51eec5b3300b323ec1347))
18
+
2
19
  ### [4.91.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.2...v4.91.3) (2026-06-30)
3
20
 
4
21
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.91.3";
6
+ var version = "4.91.5";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.91.3";
2
+ var version = "4.91.5";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/tempo",
3
- "version": "4.91.3",
3
+ "version": "4.91.5",
4
4
  "description": "A React SDK for implementing Tempo wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -19,13 +19,13 @@
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
21
  "@dynamic-labs/sdk-api-core": "0.0.1046",
22
- "@dynamic-labs/wallet-connector-core": "4.91.3",
23
- "@dynamic-labs/ethereum-core": "4.91.3",
24
- "@dynamic-labs/waas": "4.91.3",
25
- "@dynamic-labs/assert-package-version": "4.91.3",
26
- "@dynamic-labs/logger": "4.91.3",
27
- "@dynamic-labs/types": "4.91.3",
28
- "@dynamic-labs/utils": "4.91.3",
22
+ "@dynamic-labs/wallet-connector-core": "4.91.5",
23
+ "@dynamic-labs/ethereum-core": "4.91.5",
24
+ "@dynamic-labs/waas": "4.91.5",
25
+ "@dynamic-labs/assert-package-version": "4.91.5",
26
+ "@dynamic-labs/logger": "4.91.5",
27
+ "@dynamic-labs/types": "4.91.5",
28
+ "@dynamic-labs/utils": "4.91.5",
29
29
  "viem": "^2.45.3"
30
30
  }
31
31
  }
@@ -154,7 +154,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
154
154
  signedSessionId: '',
155
155
  });
156
156
  if (!targetWallet) {
157
- throw new utils.DynamicError('Account not found');
157
+ throw new utils.DynamicError('Account not found', 'account_not_found');
158
158
  }
159
159
  const isWalletActive = walletConnectorCore.isSameAddress(targetWallet.accountAddress, ((_b = this.getActiveAccount()) === null || _b === void 0 ? void 0 : _b.address) || '', this.connectedChain);
160
160
  if (!isWalletActive) {
@@ -174,7 +174,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
174
174
  const client = yield this.getWaasWalletClient();
175
175
  const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
176
176
  if (!signedSessionId) {
177
- throw new utils.DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED);
177
+ throw new utils.DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED, 'errorsignedsessionidrequired');
178
178
  }
179
179
  return {
180
180
  address: accountAddress,
@@ -338,7 +338,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
338
338
  var _a;
339
339
  const evmNetwork = this.currentEvmNetwork();
340
340
  if (!evmNetwork) {
341
- throw new utils.DynamicError(ERROR_TEMPO_NETWORK_NOT_FOUND);
341
+ throw new utils.DynamicError(ERROR_TEMPO_NETWORK_NOT_FOUND, 'errortemponetworknotfound');
342
342
  }
343
343
  const rpcUrl = ((_a = evmNetwork.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || evmNetwork.rpcUrls[0];
344
344
  return viem.createPublicClient({
@@ -357,7 +357,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
357
357
  const walletClient = yield this.getWaasWalletClient();
358
358
  const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
359
359
  if (!signedSessionId) {
360
- throw new utils.DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED);
360
+ throw new utils.DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED, 'errorsignedsessionidrequired');
361
361
  }
362
362
  const accountAddress = (_c = this.getActiveAccount()) === null || _c === void 0 ? void 0 : _c.address;
363
363
  const mfaToken = yield ((_d = this.getMfaToken) === null || _d === void 0 ? void 0 : _d.call(this, {
@@ -402,7 +402,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
402
402
  const walletClient = this.getWalletClient();
403
403
  const publicClient = yield this.getPublicClient();
404
404
  if (!publicClient || !walletClient) {
405
- throw new utils.DynamicError('No public client available');
405
+ throw new utils.DynamicError('No public client available', 'no_public_client_available');
406
406
  }
407
407
  const uiTransaction = new ethereumCore.ViemUiTransaction({
408
408
  account: from,
@@ -411,7 +411,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
411
411
  // Build native Tempo type 118 transaction with fee token support
412
412
  const chainId = yield this.getNetwork();
413
413
  if (!chainId) {
414
- throw new utils.DynamicError('No chain ID available');
414
+ throw new utils.DynamicError('No chain ID available', 'no_chain_id_available');
415
415
  }
416
416
  // Build the call data for the transaction
417
417
  const callData = transaction.nonNativeAddress
@@ -460,7 +460,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
460
460
  const waasClient = yield this.getWaasWalletClient();
461
461
  const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
462
462
  if (!signedSessionId) {
463
- throw new utils.DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED);
463
+ throw new utils.DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED, 'errorsignedsessionidrequired');
464
464
  }
465
465
  const mfaToken = yield ((_c = this.getMfaToken) === null || _c === void 0 ? void 0 : _c.call(this, {
466
466
  mfaAction: sdkApiCore.MFAAction.WalletWaasSign,
@@ -533,7 +533,7 @@ class DynamicWaasTempoConnector extends waas.withDynamicWaas(TempoWalletConnecto
533
533
  this.setActiveAccount(address);
534
534
  return address;
535
535
  }
536
- throw new utils.DynamicError('No active wallet address found');
536
+ throw new utils.DynamicError('No active wallet address found', 'no_active_wallet_address_found');
537
537
  }
538
538
  return activeAccount.address;
539
539
  });
@@ -29,6 +29,7 @@ declare const DynamicWaasTempoConnector_base: (abstract new (...args: any[]) =>
29
29
  relayUrl?: string | undefined;
30
30
  baseClientKeysharesRelayApiUrl?: string | undefined;
31
31
  dynamicWaasClient: import("@dynamic-labs-wallet/browser-wallet-client").DynamicWalletClient | undefined;
32
+ revokeSignedSession: (() => void) | undefined;
32
33
  chainName: string;
33
34
  authMode: "cookie" | "header";
34
35
  logger: Logger;
@@ -60,6 +61,9 @@ declare const DynamicWaasTempoConnector_base: (abstract new (...args: any[]) =>
60
61
  accountAddress: string;
61
62
  password?: string | undefined;
62
63
  }): Promise<void>;
64
+ createRevocableSignedSessionCallback(): {
65
+ getSignedSessionId: () => Promise<string>;
66
+ };
63
67
  createDynamicWaasClient(traceContext?: import("dist/packages/waas/utils/instrumentation").TraceContext | undefined): Promise<import("@dynamic-labs-wallet/browser-wallet-client").DynamicWalletClient>;
64
68
  getWaasWalletClient(traceContext?: import("dist/packages/waas/utils/instrumentation").TraceContext | undefined, { forceRebuild }?: {
65
69
  forceRebuild?: boolean | undefined;
@@ -150,7 +150,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
150
150
  signedSessionId: '',
151
151
  });
152
152
  if (!targetWallet) {
153
- throw new DynamicError('Account not found');
153
+ throw new DynamicError('Account not found', 'account_not_found');
154
154
  }
155
155
  const isWalletActive = isSameAddress(targetWallet.accountAddress, ((_b = this.getActiveAccount()) === null || _b === void 0 ? void 0 : _b.address) || '', this.connectedChain);
156
156
  if (!isWalletActive) {
@@ -170,7 +170,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
170
170
  const client = yield this.getWaasWalletClient();
171
171
  const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
172
172
  if (!signedSessionId) {
173
- throw new DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED);
173
+ throw new DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED, 'errorsignedsessionidrequired');
174
174
  }
175
175
  return {
176
176
  address: accountAddress,
@@ -334,7 +334,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
334
334
  var _a;
335
335
  const evmNetwork = this.currentEvmNetwork();
336
336
  if (!evmNetwork) {
337
- throw new DynamicError(ERROR_TEMPO_NETWORK_NOT_FOUND);
337
+ throw new DynamicError(ERROR_TEMPO_NETWORK_NOT_FOUND, 'errortemponetworknotfound');
338
338
  }
339
339
  const rpcUrl = ((_a = evmNetwork.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || evmNetwork.rpcUrls[0];
340
340
  return createPublicClient({
@@ -353,7 +353,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
353
353
  const walletClient = yield this.getWaasWalletClient();
354
354
  const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
355
355
  if (!signedSessionId) {
356
- throw new DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED);
356
+ throw new DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED, 'errorsignedsessionidrequired');
357
357
  }
358
358
  const accountAddress = (_c = this.getActiveAccount()) === null || _c === void 0 ? void 0 : _c.address;
359
359
  const mfaToken = yield ((_d = this.getMfaToken) === null || _d === void 0 ? void 0 : _d.call(this, {
@@ -398,7 +398,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
398
398
  const walletClient = this.getWalletClient();
399
399
  const publicClient = yield this.getPublicClient();
400
400
  if (!publicClient || !walletClient) {
401
- throw new DynamicError('No public client available');
401
+ throw new DynamicError('No public client available', 'no_public_client_available');
402
402
  }
403
403
  const uiTransaction = new ViemUiTransaction({
404
404
  account: from,
@@ -407,7 +407,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
407
407
  // Build native Tempo type 118 transaction with fee token support
408
408
  const chainId = yield this.getNetwork();
409
409
  if (!chainId) {
410
- throw new DynamicError('No chain ID available');
410
+ throw new DynamicError('No chain ID available', 'no_chain_id_available');
411
411
  }
412
412
  // Build the call data for the transaction
413
413
  const callData = transaction.nonNativeAddress
@@ -456,7 +456,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
456
456
  const waasClient = yield this.getWaasWalletClient();
457
457
  const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
458
458
  if (!signedSessionId) {
459
- throw new DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED);
459
+ throw new DynamicError(ERROR_SIGNED_SESSION_ID_REQUIRED, 'errorsignedsessionidrequired');
460
460
  }
461
461
  const mfaToken = yield ((_c = this.getMfaToken) === null || _c === void 0 ? void 0 : _c.call(this, {
462
462
  mfaAction: MFAAction.WalletWaasSign,
@@ -529,7 +529,7 @@ class DynamicWaasTempoConnector extends withDynamicWaas(TempoWalletConnector) {
529
529
  this.setActiveAccount(address);
530
530
  return address;
531
531
  }
532
- throw new DynamicError('No active wallet address found');
532
+ throw new DynamicError('No active wallet address found', 'no_active_wallet_address_found');
533
533
  }
534
534
  return activeAccount.address;
535
535
  });