@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 +36 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +7 -7
- package/src/connectors/MidnightWalletConnector.cjs +5 -8
- package/src/connectors/MidnightWalletConnector.d.ts +2 -5
- package/src/connectors/MidnightWalletConnector.js +5 -8
- package/src/wallet/MidnightWallet.cjs +3 -4
- package/src/wallet/MidnightWallet.d.ts +1 -1
- package/src/wallet/MidnightWallet.js +4 -5
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
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/midnight",
|
|
3
|
-
"version": "4.
|
|
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.
|
|
22
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
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.
|
|
25
|
-
"@dynamic-labs/utils": "4.
|
|
26
|
-
"@dynamic-labs/wallet-book": "4.
|
|
27
|
-
"@dynamic-labs/wallet-connector-core": "4.
|
|
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
|
-
|
|
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('
|
|
40
|
+
throw new Error('createTransfer is not supported by this connector');
|
|
42
41
|
}
|
|
43
42
|
if (params.transfers.length === 0) {
|
|
44
|
-
throw new Error('
|
|
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
|
|
60
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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('
|
|
36
|
+
throw new Error('createTransfer is not supported by this connector');
|
|
38
37
|
}
|
|
39
38
|
if (params.transfers.length === 0) {
|
|
40
|
-
throw new Error('
|
|
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
|
|
56
|
-
|
|
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 :
|
|
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
|
|
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
|
-
|
|
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 {
|
|
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 :
|
|
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
|
|
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
|
-
|
|
29
|
-
yield this._connector.submitTransaction(signedTransaction);
|
|
28
|
+
return transactionId;
|
|
30
29
|
});
|
|
31
30
|
}
|
|
32
31
|
getBalance() {
|