@dynamic-labs/starknet 5.0.0 → 5.1.0

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,25 @@
1
1
 
2
+ ## [5.1.0](https://github.com/dynamic-labs/dynamic-auth/compare/v5.0.0...v5.1.0) (2026-08-04)
3
+
4
+
5
+ ### Features
6
+
7
+ * **midnight:** expose contract wallet provider ([#12120](https://github.com/dynamic-labs/dynamic-auth/issues/12120)) ([2cecf23](https://github.com/dynamic-labs/dynamic-auth/commit/2cecf23f1f51819b99dfde4afd20264ea1abebf8))
8
+ * **webview-messages,webview-controller:** add waas_backupKeySharesToICloud webview message ([#12147](https://github.com/dynamic-labs/dynamic-auth/issues/12147)) ([ca4edda](https://github.com/dynamic-labs/dynamic-auth/commit/ca4edda54adf0673a9fe41c17d861a739f1b8f2e))
9
+ * **webview:** add business accounts message contract and controller ([#12144](https://github.com/dynamic-labs/dynamic-auth/issues/12144)) ([d9f80c1](https://github.com/dynamic-labs/dynamic-auth/commit/d9f80c10bb3c332c2f3e3dc401b95025b930fa4e))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * bump brace-expansion to latest patched maintenance releases ([#12130](https://github.com/dynamic-labs/dynamic-auth/issues/12130)) ([1b26671](https://github.com/dynamic-labs/dynamic-auth/commit/1b26671ad8e62025904e04f9dfed8b3faafb9c19))
15
+ * **ethereum-aa:** resolve chainId from network for ZeroDev v2 multichain projects ([#12105](https://github.com/dynamic-labs/dynamic-auth/issues/12105)) ([fe2c5d2](https://github.com/dynamic-labs/dynamic-auth/commit/fe2c5d239758ea79e8647006d9d77cc27c2ab647))
16
+ * **midnight:** name the missing RPCs when the wallet client is too old ([#12121](https://github.com/dynamic-labs/dynamic-auth/issues/12121)) ([3a8a77f](https://github.com/dynamic-labs/dynamic-auth/commit/3a8a77f89d368d8634497a5b49ff345b004cdffa))
17
+ * **midnight:** return the submission identifier from the contract provider ([#12122](https://github.com/dynamic-labs/dynamic-auth/issues/12122)) ([8aa5289](https://github.com/dynamic-labs/dynamic-auth/commit/8aa52895fbdf09a3cf481049009a95f03cddda54))
18
+ * remediate high-severity dependency vulnerabilities ([#12149](https://github.com/dynamic-labs/dynamic-auth/issues/12149)) ([14058ee](https://github.com/dynamic-labs/dynamic-auth/commit/14058eeed34351791ad7ab7ac1fa720eb2cf9948))
19
+ * **starknet:** restore Braavos L2 session after lock and unlock ([#12124](https://github.com/dynamic-labs/dynamic-auth/issues/12124)) ([ab3b11b](https://github.com/dynamic-labs/dynamic-auth/commit/ab3b11bd71fbca8d32d4f2badfa49e3b9641eecf))
20
+ * **wallet-book:** add App Store id for Robinhood Wallet iOS install link ([#11877](https://github.com/dynamic-labs/dynamic-auth/issues/11877)) ([ef28619](https://github.com/dynamic-labs/dynamic-auth/commit/ef28619ba4396e01046717ea7ad560870a56c78f))
21
+ * **wallet-book:** add universal deep link for Exodus Solana WalletConnect ([#12123](https://github.com/dynamic-labs/dynamic-auth/issues/12123)) ([cd7223e](https://github.com/dynamic-labs/dynamic-auth/commit/cd7223eb2dc21314f351b96d9a06d795d282c35d))
22
+
2
23
  ## [5.0.0](https://github.com/dynamic-labs/dynamic-auth/compare/v5.0.0-rc.4...v5.0.0) (2026-07-29)
3
24
 
4
25
  ## 🚀 Dynamic SDK v5 is live
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "5.0.0";
6
+ var version = "5.1.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "5.0.0";
2
+ var version = "5.1.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/starknet",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -24,14 +24,14 @@
24
24
  "starknetkit": "2.10.4",
25
25
  "text-encoding": "0.7.0",
26
26
  "@dynamic-labs/sdk-api-core": "0.0.1093",
27
- "@dynamic-labs/assert-package-version": "5.0.0",
28
- "@dynamic-labs/logger": "5.0.0",
29
- "@dynamic-labs/rpc-providers": "5.0.0",
30
- "@dynamic-labs/starknet-core": "5.0.0",
31
- "@dynamic-labs/types": "5.0.0",
32
- "@dynamic-labs/utils": "5.0.0",
33
- "@dynamic-labs/wallet-book": "5.0.0",
34
- "@dynamic-labs/wallet-connector-core": "5.0.0",
27
+ "@dynamic-labs/assert-package-version": "5.1.0",
28
+ "@dynamic-labs/logger": "5.1.0",
29
+ "@dynamic-labs/rpc-providers": "5.1.0",
30
+ "@dynamic-labs/starknet-core": "5.1.0",
31
+ "@dynamic-labs/types": "5.1.0",
32
+ "@dynamic-labs/utils": "5.1.0",
33
+ "@dynamic-labs/wallet-book": "5.1.0",
34
+ "@dynamic-labs/wallet-connector-core": "5.1.0",
35
35
  "assert": "2.1.0"
36
36
  },
37
37
  "peerDependencies": {}
@@ -156,7 +156,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
156
156
  this.handleAccountChange = (accounts) => _tslib.__awaiter(this, void 0, void 0, function* () {
157
157
  var _a;
158
158
  this.logger.debug(`[accountsChanged] Received argument: ${accounts === null || accounts === void 0 ? void 0 : accounts.toString()}`);
159
- if (!accounts || accounts[0] === null) {
159
+ if (!accounts || accounts.length === 0 || accounts[0] === null) {
160
160
  this.emit('disconnect');
161
161
  return;
162
162
  }
@@ -152,7 +152,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
152
152
  this.handleAccountChange = (accounts) => __awaiter(this, void 0, void 0, function* () {
153
153
  var _a;
154
154
  this.logger.debug(`[accountsChanged] Received argument: ${accounts === null || accounts === void 0 ? void 0 : accounts.toString()}`);
155
- if (!accounts || accounts[0] === null) {
155
+ if (!accounts || accounts.length === 0 || accounts[0] === null) {
156
156
  this.emit('disconnect');
157
157
  return;
158
158
  }
package/src/index.cjs CHANGED
@@ -9,7 +9,6 @@ var argentx = require('./wallets/argent/injected/argentx.cjs');
9
9
  var webwallet = require('./wallets/argent/webwallet/webwallet.cjs');
10
10
  var metamask = require('./wallets/injected/metamask.cjs');
11
11
  var fetchStarknetInjectedWalletConnectors = require('./wallets/injected/fetchStarknetInjectedWalletConnectors.cjs');
12
- var braavos = require('./wallets/injected/braavos.cjs');
13
12
  var FallbackStarknetConnector = require('./wallets/injected/FallbackStarknetConnector.cjs');
14
13
  require('@dynamic-labs/starknet-core');
15
14
  var StarknetWallet = require('./wallet/StarknetWallet.cjs');
@@ -24,7 +23,6 @@ const StarknetWalletConnectors = (props) => [
24
23
  argentx.ArgentX,
25
24
  webwallet.WebWallet,
26
25
  metamask.MetaMask,
27
- braavos.Braavos,
28
26
  FallbackStarknetConnector.FallbackStarknetConnector,
29
27
  ];
30
28
 
package/src/index.js CHANGED
@@ -5,7 +5,6 @@ import { ArgentX } from './wallets/argent/injected/argentx.js';
5
5
  import { WebWallet } from './wallets/argent/webwallet/webwallet.js';
6
6
  import { MetaMask } from './wallets/injected/metamask.js';
7
7
  import { fetchStarknetInjectedWalletConnectors } from './wallets/injected/fetchStarknetInjectedWalletConnectors.js';
8
- import { Braavos } from './wallets/injected/braavos.js';
9
8
  import { FallbackStarknetConnector } from './wallets/injected/FallbackStarknetConnector.js';
10
9
  import '@dynamic-labs/starknet-core';
11
10
  export { StarknetWallet } from './wallet/StarknetWallet.js';
@@ -20,7 +19,6 @@ const StarknetWalletConnectors = (props) => [
20
19
  ArgentX,
21
20
  WebWallet,
22
21
  MetaMask,
23
- Braavos,
24
22
  FallbackStarknetConnector,
25
23
  ];
26
24
 
@@ -8,8 +8,6 @@ var injected = require('./injected.cjs');
8
8
  const filteredStarknetWalletKeysOverrides = [
9
9
  // TODO(starknet-v6): Remove once these wallets support v6
10
10
  'bitgetstarknet',
11
- // Braavos has its own connector to implement specific logic
12
- 'braavos',
13
11
  ];
14
12
  const fetchStarknetInjectedWalletConnectors = ({ walletBook, }) => {
15
13
  var _a;
@@ -4,8 +4,6 @@ import { Injected } from './injected.js';
4
4
  const filteredStarknetWalletKeysOverrides = [
5
5
  // TODO(starknet-v6): Remove once these wallets support v6
6
6
  'bitgetstarknet',
7
- // Braavos has its own connector to implement specific logic
8
- 'braavos',
9
7
  ];
10
8
  const fetchStarknetInjectedWalletConnectors = ({ walletBook, }) => {
11
9
  var _a;
@@ -1,59 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../../../_virtual/_tslib.cjs');
7
- var utils = require('@dynamic-labs/utils');
8
- var injected = require('./injected.cjs');
9
-
10
- class Braavos extends injected.Injected {
11
- constructor(opts) {
12
- super('Braavos', 'braavos', 'braavos', opts);
13
- this.overrideKey = 'braavos';
14
- }
15
- /**
16
- * Overrides getConnectedAccounts to always use silent mode, preventing
17
- * the wallet popup from appearing during account discovery. This avoids
18
- * a double-popup issue where the Braavos extension would prompt the user
19
- * both during getConnectedAccounts (via shouldPromptSilently detecting
20
- * existing permissions) and the subsequent connect flow.
21
- *
22
- * Also adds a timeout to prevent the SDK from becoming unresponsive
23
- * when Braavos is locked and does not prompt the user to unlock.
24
- * If getConnectedAccounts() doesn't resolve within 3 seconds, the operation
25
- * will timeout and return an empty array.
26
- */
27
- getConnectedAccounts() {
28
- return utils.retryableFn(() => _tslib.__awaiter(this, void 0, void 0, function* () {
29
- var _a;
30
- if ((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.account) {
31
- this.logger.debug('[getConnectedAccounts] Found existing account:', this.walletData.account);
32
- return [this.walletData.account];
33
- }
34
- this.logger.debug('[getConnectedAccounts] No existing account, attempting to connect with silent mode: true');
35
- try {
36
- const { data, wallet } = yield this.prompt({ silently: true });
37
- this.logger.debug(`[getConnectedAccounts] Connect returned account: ${data === null || data === void 0 ? void 0 : data.account}`);
38
- if (!(data === null || data === void 0 ? void 0 : data.account) || !wallet) {
39
- return [];
40
- }
41
- this.walletData = data;
42
- this.wallet = wallet;
43
- this.setupEventListeners();
44
- return [data.account];
45
- }
46
- catch (error) {
47
- this.logger.debug(`[getConnectedAccounts] Silent connect errored out: ${error}`);
48
- return [];
49
- }
50
- }), {
51
- fallbackValue: [],
52
- maxRetries: 0,
53
- retryStrategy: 'timeout-only',
54
- timeoutMs: 3000,
55
- });
56
- }
57
- }
58
-
59
- exports.Braavos = Braavos;
@@ -1,18 +0,0 @@
1
- import { Injected } from './injected';
2
- export declare class Braavos extends Injected {
3
- overrideKey: string;
4
- constructor(opts: any);
5
- /**
6
- * Overrides getConnectedAccounts to always use silent mode, preventing
7
- * the wallet popup from appearing during account discovery. This avoids
8
- * a double-popup issue where the Braavos extension would prompt the user
9
- * both during getConnectedAccounts (via shouldPromptSilently detecting
10
- * existing permissions) and the subsequent connect flow.
11
- *
12
- * Also adds a timeout to prevent the SDK from becoming unresponsive
13
- * when Braavos is locked and does not prompt the user to unlock.
14
- * If getConnectedAccounts() doesn't resolve within 3 seconds, the operation
15
- * will timeout and return an empty array.
16
- */
17
- getConnectedAccounts(): Promise<string[]>;
18
- }
@@ -1,55 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../../_virtual/_tslib.js';
3
- import { retryableFn } from '@dynamic-labs/utils';
4
- import { Injected } from './injected.js';
5
-
6
- class Braavos extends Injected {
7
- constructor(opts) {
8
- super('Braavos', 'braavos', 'braavos', opts);
9
- this.overrideKey = 'braavos';
10
- }
11
- /**
12
- * Overrides getConnectedAccounts to always use silent mode, preventing
13
- * the wallet popup from appearing during account discovery. This avoids
14
- * a double-popup issue where the Braavos extension would prompt the user
15
- * both during getConnectedAccounts (via shouldPromptSilently detecting
16
- * existing permissions) and the subsequent connect flow.
17
- *
18
- * Also adds a timeout to prevent the SDK from becoming unresponsive
19
- * when Braavos is locked and does not prompt the user to unlock.
20
- * If getConnectedAccounts() doesn't resolve within 3 seconds, the operation
21
- * will timeout and return an empty array.
22
- */
23
- getConnectedAccounts() {
24
- return retryableFn(() => __awaiter(this, void 0, void 0, function* () {
25
- var _a;
26
- if ((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.account) {
27
- this.logger.debug('[getConnectedAccounts] Found existing account:', this.walletData.account);
28
- return [this.walletData.account];
29
- }
30
- this.logger.debug('[getConnectedAccounts] No existing account, attempting to connect with silent mode: true');
31
- try {
32
- const { data, wallet } = yield this.prompt({ silently: true });
33
- this.logger.debug(`[getConnectedAccounts] Connect returned account: ${data === null || data === void 0 ? void 0 : data.account}`);
34
- if (!(data === null || data === void 0 ? void 0 : data.account) || !wallet) {
35
- return [];
36
- }
37
- this.walletData = data;
38
- this.wallet = wallet;
39
- this.setupEventListeners();
40
- return [data.account];
41
- }
42
- catch (error) {
43
- this.logger.debug(`[getConnectedAccounts] Silent connect errored out: ${error}`);
44
- return [];
45
- }
46
- }), {
47
- fallbackValue: [],
48
- maxRetries: 0,
49
- retryStrategy: 'timeout-only',
50
- timeoutMs: 3000,
51
- });
52
- }
53
- }
54
-
55
- export { Braavos };