@dynamic-labs/midnight 4.83.1 → 4.84.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,40 @@
1
1
 
2
+ ## [4.84.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.83.2-alpha.0...v4.84.0) (2026-05-22)
3
+
4
+
5
+ ### Features
6
+
7
+ * **ethereum-gasless:** add @dynamic-labs/ethereum-gasless-{core,extension} and webview controller ([#11267](https://github.com/dynamic-labs/dynamic-auth/issues/11267)) ([edac5df](https://github.com/dynamic-labs/dynamic-auth/commit/edac5df8180483093f69caee508cbdebf2e4e663)), closes [#11274](https://github.com/dynamic-labs/dynamic-auth/issues/11274) [#11274](https://github.com/dynamic-labs/dynamic-auth/issues/11274) [#11274](https://github.com/dynamic-labs/dynamic-auth/issues/11274)
8
+ * **mobile-demo:** add EVM gasless screens for 7702 delegation and sponsored transactions ([#11274](https://github.com/dynamic-labs/dynamic-auth/issues/11274)) ([2961b8f](https://github.com/dynamic-labs/dynamic-auth/commit/2961b8f732ef3a172fcf0e814db3b74961015edf)), closes [#11267](https://github.com/dynamic-labs/dynamic-auth/issues/11267) [#11267](https://github.com/dynamic-labs/dynamic-auth/issues/11267) [#11267](https://github.com/dynamic-labs/dynamic-auth/issues/11267)
9
+ * **mobile-demo:** wire Maestro Cloud E2E for iOS smoke flow ([#11144](https://github.com/dynamic-labs/dynamic-auth/issues/11144)) ([d25b694](https://github.com/dynamic-labs/dynamic-auth/commit/d25b694017277fbe97fc13e21f82201350551862))
10
+ * **starknet:** rename Argent X to Ready X, remove Ready Mobile ([#11299](https://github.com/dynamic-labs/dynamic-auth/issues/11299)) ([addc5dd](https://github.com/dynamic-labs/dynamic-auth/commit/addc5dd9f18310c474dd7ad3ff15c9ab1b652136))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **playwright:** unflake allow/block on 4201/4202 (domain-access-control) DYNT-777 ([#11118](https://github.com/dynamic-labs/dynamic-auth/issues/11118)) ([86e0d72](https://github.com/dynamic-labs/dynamic-auth/commit/86e0d72b7d094f25ce9efd2173cd478b93eb8393)), closes [#11119](https://github.com/dynamic-labs/dynamic-auth/issues/11119)
16
+ * **playwright:** unflake demo-v2 phantom flows (tolerate get-started splash skip) ([#11185](https://github.com/dynamic-labs/dynamic-auth/issues/11185)) ([b648d39](https://github.com/dynamic-labs/dynamic-auth/commit/b648d39c11580b5fbedb5a6972c174a42aa13326))
17
+ * **sdk-react-core:** prevent duplicate deviceRegistration calls and stale list refetch after self-revoke ([#11298](https://github.com/dynamic-labs/dynamic-auth/issues/11298)) ([8ae5180](https://github.com/dynamic-labs/dynamic-auth/commit/8ae51803517bcde9503a20c290e82f3068dfda66))
18
+ * **wallet-book:** correct sprite IDs for bitgetwallet and coin98 wallet groups ([#11291](https://github.com/dynamic-labs/dynamic-auth/issues/11291)) ([d56763c](https://github.com/dynamic-labs/dynamic-auth/commit/d56763c741a93c279c8dd9e548ab7d5ab14cd30d))
19
+
20
+ ### [4.83.2-alpha.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.83.1...v4.83.2-alpha.0) (2026-05-18)
21
+
22
+
23
+ ### Features
24
+
25
+ * **ci:** add structured DD event reporting on RWX CI failure ([#11231](https://github.com/dynamic-labs/dynamic-auth/issues/11231)) ([2a6e19f](https://github.com/dynamic-labs/dynamic-auth/commit/2a6e19f5746bed28993b73c9dc43656ef9c8b75e)), closes [dynamic-labs/pw-configs#30](https://github.com/dynamic-labs/pw-configs/issues/30) [pw-configs#30](https://github.com/dynamic-labs/pw-configs/issues/30) [pw-configs#30](https://github.com/dynamic-labs/pw-configs/issues/30)
26
+ * **playwright:** support local e2e + document workflow + .env.example ([#11230](https://github.com/dynamic-labs/dynamic-auth/issues/11230)) ([492cc5c](https://github.com/dynamic-labs/dynamic-auth/commit/492cc5ce6b5f9241ac670ebf140d1c2dce66dd58))
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * **aleo:** dedup concurrent shieldToken calls + hide manual CTA during auto-shield ([#11264](https://github.com/dynamic-labs/dynamic-auth/issues/11264)) ([f466373](https://github.com/dynamic-labs/dynamic-auth/commit/f4663732d50cc3e617c15d41c5131a6f84ee44d5)), closes [#3](https://github.com/dynamic-labs/dynamic-auth/issues/3) [#11263](https://github.com/dynamic-labs/dynamic-auth/issues/11263)
32
+ * **aleo:** render real brand logos on the shielded balance tab ([#11270](https://github.com/dynamic-labs/dynamic-auth/issues/11270)) ([0482fb7](https://github.com/dynamic-labs/dynamic-auth/commit/0482fb7134ee85677e4e48d1cb1e323073703f92))
33
+ * **aleo:** reuse pollOnShielded backoff for the manual shield refresh ([#11265](https://github.com/dynamic-labs/dynamic-auth/issues/11265)) ([4956798](https://github.com/dynamic-labs/dynamic-auth/commit/4956798bfd455caef2844dd1a1db1af3bb6d7daf)), closes [#11264](https://github.com/dynamic-labs/dynamic-auth/issues/11264) [#11263](https://github.com/dynamic-labs/dynamic-auth/issues/11263)
34
+ * **ci:** drop doubled-playwright prefix from in-task dd reporter paths ([#11261](https://github.com/dynamic-labs/dynamic-auth/issues/11261)) ([459693d](https://github.com/dynamic-labs/dynamic-auth/commit/459693d74b73d534ed96ef6afdc5de930e2da9de)), closes [#11255](https://github.com/dynamic-labs/dynamic-auth/issues/11255) [#11255](https://github.com/dynamic-labs/dynamic-auth/issues/11255) [post-#11255](https://github.com/dynamic-labs/post-/issues/11255) [#11251](https://github.com/dynamic-labs/dynamic-auth/issues/11251) [#11231](https://github.com/dynamic-labs/dynamic-auth/issues/11231) [#11251](https://github.com/dynamic-labs/dynamic-auth/issues/11251) [#11231](https://github.com/dynamic-labs/dynamic-auth/issues/11231) [#11255](https://github.com/dynamic-labs/dynamic-auth/issues/11255) [#11251](https://github.com/dynamic-labs/dynamic-auth/issues/11251)
35
+ * **ci:** pass captain log by path so dd reporter dodges ARG_MAX ([#11255](https://github.com/dynamic-labs/dynamic-auth/issues/11255)) ([43dfad0](https://github.com/dynamic-labs/dynamic-auth/commit/43dfad0fda0fdd487a246315d9c6e2be6d61edb1)), closes [#11251](https://github.com/dynamic-labs/dynamic-auth/issues/11251)
36
+ * **widget:** theme TransactionMode segmented control for dark mode ([#11269](https://github.com/dynamic-labs/dynamic-auth/issues/11269)) ([21d6da2](https://github.com/dynamic-labs/dynamic-auth/commit/21d6da2b3edc8b3107c396ac7631b1dcb477533f)), closes [#e5e7](https://github.com/dynamic-labs/dynamic-auth/issues/e5e7) [#cbd5e1](https://github.com/dynamic-labs/dynamic-auth/issues/cbd5e1) [#f9](https://github.com/dynamic-labs/dynamic-auth/issues/f9)
37
+
2
38
  ### [4.83.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.83.0...v4.83.1) (2026-05-14)
3
39
 
4
40
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.83.1";
6
+ var version = "4.84.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.83.1";
2
+ var version = "4.84.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/midnight",
3
- "version": "4.83.1",
3
+ "version": "4.84.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",
@@ -18,13 +18,13 @@
18
18
  },
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
- "@dynamic-labs/assert-package-version": "4.83.1",
22
- "@dynamic-labs/sdk-api-core": "0.0.964",
21
+ "@dynamic-labs/assert-package-version": "4.84.0",
22
+ "@dynamic-labs/sdk-api-core": "0.0.985",
23
23
  "@midnight-ntwrk/dapp-connector-api": "4.0.1",
24
- "@dynamic-labs/types": "4.83.1",
25
- "@dynamic-labs/utils": "4.83.1",
26
- "@dynamic-labs/wallet-book": "4.83.1",
27
- "@dynamic-labs/wallet-connector-core": "4.83.1"
24
+ "@dynamic-labs/types": "4.84.0",
25
+ "@dynamic-labs/utils": "4.84.0",
26
+ "@dynamic-labs/wallet-book": "4.84.0",
27
+ "@dynamic-labs/wallet-connector-core": "4.84.0"
28
28
  },
29
29
  "peerDependencies": {}
30
30
  }
@@ -33,15 +33,14 @@ class MidnightWalletConnector extends walletConnectorCore.WalletConnectorBase {
33
33
  return undefined;
34
34
  });
35
35
  }
36
- createTransferTransaction(params) {
36
+ createTransfer(params) {
37
37
  return _tslib.__awaiter(this, void 0, void 0, function* () {
38
- var _a;
39
38
  const api = yield this.getConnectedAPI();
40
39
  if (!api) {
41
- throw new Error('createTransferTransaction is not supported by this connector');
40
+ throw new Error('createTransfer is not supported by this connector');
42
41
  }
43
42
  if (params.transfers.length === 0) {
44
- throw new Error('createTransferTransaction requires at least one transfer');
43
+ throw new Error('createTransfer requires at least one transfer');
45
44
  }
46
45
  const types = new Set(params.transfers.map((t) => t.type));
47
46
  if (types.size > 1) {
@@ -56,10 +55,8 @@ class MidnightWalletConnector extends walletConnectorCore.WalletConnectorBase {
56
55
  value: BigInt(t.amount),
57
56
  });
58
57
  });
59
- const { tx } = yield api.makeTransfer(desiredOutputs, {
60
- payFees: (_a = params.payFees) !== null && _a !== void 0 ? _a : false,
61
- });
62
- return { serializedTransaction: tx };
58
+ const response = (yield api.makeTransfer(desiredOutputs));
59
+ return response.tx_id;
63
60
  });
64
61
  }
65
62
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -20,17 +20,14 @@ export declare abstract class MidnightWalletConnector extends WalletConnectorBas
20
20
  }>;
21
21
  getEnabledNetworks(): GenericNetwork[];
22
22
  protected getConnectedAPI(): Promise<ConnectedAPI | undefined>;
23
- createTransferTransaction(params: {
23
+ createTransfer(params: {
24
24
  transfers: Array<{
25
25
  type: 'unshielded' | 'shielded';
26
26
  recipientAddress: string;
27
27
  amount: string;
28
28
  tokenType?: string;
29
29
  }>;
30
- payFees?: boolean;
31
- }): Promise<{
32
- serializedTransaction: string;
33
- }>;
30
+ }): Promise<string>;
34
31
  signTransaction(serializedTransaction: string): Promise<string>;
35
32
  getShieldedBalances(): Promise<Record<TokenType, bigint>>;
36
33
  getUnshieldedBalances(): Promise<Record<TokenType, bigint>>;
@@ -29,15 +29,14 @@ class MidnightWalletConnector extends WalletConnectorBase {
29
29
  return undefined;
30
30
  });
31
31
  }
32
- createTransferTransaction(params) {
32
+ createTransfer(params) {
33
33
  return __awaiter(this, void 0, void 0, function* () {
34
- var _a;
35
34
  const api = yield this.getConnectedAPI();
36
35
  if (!api) {
37
- throw new Error('createTransferTransaction is not supported by this connector');
36
+ throw new Error('createTransfer is not supported by this connector');
38
37
  }
39
38
  if (params.transfers.length === 0) {
40
- throw new Error('createTransferTransaction requires at least one transfer');
39
+ throw new Error('createTransfer requires at least one transfer');
41
40
  }
42
41
  const types = new Set(params.transfers.map((t) => t.type));
43
42
  if (types.size > 1) {
@@ -52,10 +51,8 @@ class MidnightWalletConnector extends WalletConnectorBase {
52
51
  value: BigInt(t.amount),
53
52
  });
54
53
  });
55
- const { tx } = yield api.makeTransfer(desiredOutputs, {
56
- payFees: (_a = params.payFees) !== null && _a !== void 0 ? _a : false,
57
- });
58
- return { serializedTransaction: tx };
54
+ const response = (yield api.makeTransfer(desiredOutputs));
55
+ return response.tx_id;
59
56
  });
60
57
  }
61
58
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -17,9 +17,9 @@ class MidnightWallet extends walletConnectorCore.Wallet {
17
17
  // Midnight address format: shielded addresses begin with "mn_shield",
18
18
  // all others are unshielded. This prefix is defined by the Midnight protocol.
19
19
  const type = toAddress.startsWith('mn_shield') ? 'shielded' : 'unshielded';
20
- const decimals = (_b = token === null || token === void 0 ? void 0 : token.decimals) !== null && _b !== void 0 ? _b : constants.MIDNIGHT_NATIVE_UNSHIELDED_DECIMALS;
20
+ const decimals = (_b = token === null || token === void 0 ? void 0 : token.decimals) !== null && _b !== void 0 ? _b : 0;
21
21
  const atomicAmount = parseMidnightAtomicAmount.parseMidnightAtomicAmount(amount, decimals).toString();
22
- const { serializedTransaction } = yield this._connector.createTransferTransaction({
22
+ const transactionId = yield this._connector.createTransfer({
23
23
  transfers: [
24
24
  {
25
25
  amount: atomicAmount,
@@ -29,8 +29,7 @@ class MidnightWallet extends walletConnectorCore.Wallet {
29
29
  },
30
30
  ],
31
31
  });
32
- const signedTransaction = yield this._connector.signTransaction(serializedTransaction);
33
- yield this._connector.submitTransaction(signedTransaction);
32
+ return transactionId;
34
33
  });
35
34
  }
36
35
  getBalance() {
@@ -11,7 +11,7 @@ export declare class MidnightWallet extends Wallet<MidnightWalletConnector> {
11
11
  decimals?: number;
12
12
  };
13
13
  addressType?: WalletAddressType;
14
- }): Promise<undefined>;
14
+ }): Promise<string | undefined>;
15
15
  getBalance(): Promise<string | undefined>;
16
16
  getBalances(): Promise<{
17
17
  shielded: Record<TokenType, bigint>;
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
3
  import { Wallet } from '@dynamic-labs/wallet-connector-core';
4
- import { MIDNIGHT_NATIVE_UNSHIELDED_DECIMALS, MIDNIGHT_NATIVE_SHIELDED_TOKEN_TYPE, MIDNIGHT_NATIVE_TOKEN_TYPE } from '../constants.js';
4
+ import { MIDNIGHT_NATIVE_SHIELDED_TOKEN_TYPE, MIDNIGHT_NATIVE_TOKEN_TYPE } from '../constants.js';
5
5
  import { formatMidnightConnectorDustBalance } from '../utils/formatMidnightConnectorDustBalance/formatMidnightConnectorDustBalance.js';
6
6
  import { formatMidnightNativeUnshieldedBalance } from '../utils/formatMidnightNativeUnshieldedBalance/formatMidnightNativeUnshieldedBalance.js';
7
7
  import { parseMidnightAtomicAmount } from '../utils/parseMidnightAtomicAmount/parseMidnightAtomicAmount.js';
@@ -13,9 +13,9 @@ class MidnightWallet extends Wallet {
13
13
  // Midnight address format: shielded addresses begin with "mn_shield",
14
14
  // all others are unshielded. This prefix is defined by the Midnight protocol.
15
15
  const type = toAddress.startsWith('mn_shield') ? 'shielded' : 'unshielded';
16
- const decimals = (_b = token === null || token === void 0 ? void 0 : token.decimals) !== null && _b !== void 0 ? _b : MIDNIGHT_NATIVE_UNSHIELDED_DECIMALS;
16
+ const decimals = (_b = token === null || token === void 0 ? void 0 : token.decimals) !== null && _b !== void 0 ? _b : 0;
17
17
  const atomicAmount = parseMidnightAtomicAmount(amount, decimals).toString();
18
- const { serializedTransaction } = yield this._connector.createTransferTransaction({
18
+ const transactionId = yield this._connector.createTransfer({
19
19
  transfers: [
20
20
  {
21
21
  amount: atomicAmount,
@@ -25,8 +25,7 @@ class MidnightWallet extends Wallet {
25
25
  },
26
26
  ],
27
27
  });
28
- const signedTransaction = yield this._connector.signTransaction(serializedTransaction);
29
- yield this._connector.submitTransaction(signedTransaction);
28
+ return transactionId;
30
29
  });
31
30
  }
32
31
  getBalance() {