@dynamic-labs/waas 4.100.3 → 4.100.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 +17 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +13 -13
- package/src/DynamicWaasMixin.cjs +3 -2
- package/src/DynamicWaasMixin.js +3 -2
- package/utils/generateUUID.cjs +23 -0
- package/utils/generateUUID.d.ts +1 -0
- package/utils/generateUUID.js +19 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.100.5](https://github.com/dynamic-labs/dynamic-auth/compare/v4.100.4...v4.100.5) (2026-10-14)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **react-native:** fall back to a TEE-backed key when StrongBox key generation fails on Android [v4] ([#12485](https://github.com/dynamic-labs/dynamic-auth/issues/12485)) ([54dcc96](https://github.com/dynamic-labs/dynamic-auth/commit/54dcc9651cdce9b8e5bb509087ffddb627fd9d83))
|
|
8
|
+
|
|
9
|
+
### [4.100.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.100.3...v4.100.4) (2026-10-08)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **embedded-webview:** connect Coinbase Wallet via a real popup window [V4 backport] ([#12429](https://github.com/dynamic-labs/dynamic-auth/issues/12429)) ([82368fd](https://github.com/dynamic-labs/dynamic-auth/commit/82368fd41791e3a6e2ffec4dc6a0b401a7bec82f))
|
|
15
|
+
* **rpc-providers:** skip networks without an RPC URL instead of throwing [v4 backport] ([#12431](https://github.com/dynamic-labs/dynamic-auth/issues/12431)) ([95f05c5](https://github.com/dynamic-labs/dynamic-auth/commit/95f05c5c0c5195cc02f4dbc9969e90fc2e41eae0))
|
|
16
|
+
* unblock v4 CI (Playwright password/sign-message tests, shell-quote critical advisory) [V4 backport] ([#12475](https://github.com/dynamic-labs/dynamic-auth/issues/12475)) ([c4ad2ba](https://github.com/dynamic-labs/dynamic-auth/commit/c4ad2ba52a5d329a6b324b27c4ccfb3b48970223)), closes [#12468](https://github.com/dynamic-labs/dynamic-auth/issues/12468) [#1936](https://github.com/dynamic-labs/dynamic-auth/issues/1936) [#12476](https://github.com/dynamic-labs/dynamic-auth/issues/12476)
|
|
17
|
+
* **waas:** fall back when crypto.randomUUID is unavailable (v4 backport) ([#12436](https://github.com/dynamic-labs/dynamic-auth/issues/12436)) ([c72781e](https://github.com/dynamic-labs/dynamic-auth/commit/c72781ebf4269b356a98f3fc167bbd643a601bfd))
|
|
18
|
+
|
|
2
19
|
### [4.100.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.100.2...v4.100.3) (2026-09-18)
|
|
3
20
|
|
|
4
21
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/waas",
|
|
3
|
-
"version": "4.100.
|
|
3
|
+
"version": "4.100.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,19 +16,19 @@
|
|
|
16
16
|
"./package.json": "./package.json"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@dynamic-labs-sdk/client": "1.
|
|
20
|
-
"@dynamic-labs/assert-package-version": "4.100.
|
|
21
|
-
"@dynamic-labs/sdk-api-core": "0.
|
|
22
|
-
"@dynamic-labs-wallet/browser-wallet-client": "1.1.
|
|
23
|
-
"@dynamic-labs-wallet/core": "1.1.
|
|
19
|
+
"@dynamic-labs-sdk/client": "1.39.1",
|
|
20
|
+
"@dynamic-labs/assert-package-version": "4.100.5",
|
|
21
|
+
"@dynamic-labs/sdk-api-core": "0.92.0",
|
|
22
|
+
"@dynamic-labs-wallet/browser-wallet-client": "1.1.33",
|
|
23
|
+
"@dynamic-labs-wallet/core": "1.1.33",
|
|
24
24
|
"@dynamic-labs-wallet/forward-mpc-client": "2.0.2",
|
|
25
|
-
"@dynamic-labs/ethereum-core": "4.100.
|
|
26
|
-
"@dynamic-labs/logger": "4.100.
|
|
27
|
-
"@dynamic-labs/solana-core": "4.100.
|
|
28
|
-
"@dynamic-labs/sui-core": "4.100.
|
|
29
|
-
"@dynamic-labs/utils": "4.100.
|
|
30
|
-
"@dynamic-labs/wallet-book": "4.100.
|
|
31
|
-
"@dynamic-labs/wallet-connector-core": "4.100.
|
|
25
|
+
"@dynamic-labs/ethereum-core": "4.100.5",
|
|
26
|
+
"@dynamic-labs/logger": "4.100.5",
|
|
27
|
+
"@dynamic-labs/solana-core": "4.100.5",
|
|
28
|
+
"@dynamic-labs/sui-core": "4.100.5",
|
|
29
|
+
"@dynamic-labs/utils": "4.100.5",
|
|
30
|
+
"@dynamic-labs/wallet-book": "4.100.5",
|
|
31
|
+
"@dynamic-labs/wallet-connector-core": "4.100.5"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {}
|
|
34
34
|
}
|
package/src/DynamicWaasMixin.cjs
CHANGED
|
@@ -11,6 +11,7 @@ var _package = require('../package.cjs');
|
|
|
11
11
|
var constants = require('../utils/constants.cjs');
|
|
12
12
|
var createWaasClientSecureStorage = require('../utils/createWaasClientSecureStorage.cjs');
|
|
13
13
|
var instrumentation = require('../utils/instrumentation.cjs');
|
|
14
|
+
var generateUUID = require('../utils/generateUUID.cjs');
|
|
14
15
|
var tokenHasPendingAuthScope = require('../utils/tokenHasPendingAuthScope.cjs');
|
|
15
16
|
|
|
16
17
|
// Fallback error code used when a thrown value carries no code, or when
|
|
@@ -643,7 +644,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
643
644
|
}
|
|
644
645
|
const wallets = yield walletClient.getAllWallets();
|
|
645
646
|
const encryptedWallets = wallets.filter((w) => { var _a; return (_a = w.clientKeySharesBackupInfo) === null || _a === void 0 ? void 0 : _a.passwordEncrypted; });
|
|
646
|
-
const passwordUpdateBatchId =
|
|
647
|
+
const passwordUpdateBatchId = generateUUID.generateUUID();
|
|
647
648
|
yield Promise.all(encryptedWallets.map((wallet) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
648
649
|
var _b, _c;
|
|
649
650
|
const signedSessionId = yield this.getSignedSessionId();
|
|
@@ -669,7 +670,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
669
670
|
throw new utils.DynamicError('Signed session ID is required', 'signed_session_id_is_required');
|
|
670
671
|
}
|
|
671
672
|
const wallets = yield walletClient.getAllWallets();
|
|
672
|
-
const passwordUpdateBatchId =
|
|
673
|
+
const passwordUpdateBatchId = generateUUID.generateUUID();
|
|
673
674
|
yield Promise.all(wallets.map((wallet) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
674
675
|
var _b, _c;
|
|
675
676
|
const signedSessionId = yield this.getSignedSessionId();
|
package/src/DynamicWaasMixin.js
CHANGED
|
@@ -7,6 +7,7 @@ import { version } from '../package.js';
|
|
|
7
7
|
import { DEFAULT_BASE_API_URL, DEFAULT_BASE_MPC_RELAY_API_URL } from '../utils/constants.js';
|
|
8
8
|
import { createWaasClientSecureStorage } from '../utils/createWaasClientSecureStorage.js';
|
|
9
9
|
import { InstrumentationTimer } from '../utils/instrumentation.js';
|
|
10
|
+
import { generateUUID } from '../utils/generateUUID.js';
|
|
10
11
|
import { tokenHasPendingAuthScope } from '../utils/tokenHasPendingAuthScope.js';
|
|
11
12
|
|
|
12
13
|
// Fallback error code used when a thrown value carries no code, or when
|
|
@@ -639,7 +640,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
639
640
|
}
|
|
640
641
|
const wallets = yield walletClient.getAllWallets();
|
|
641
642
|
const encryptedWallets = wallets.filter((w) => { var _a; return (_a = w.clientKeySharesBackupInfo) === null || _a === void 0 ? void 0 : _a.passwordEncrypted; });
|
|
642
|
-
const passwordUpdateBatchId =
|
|
643
|
+
const passwordUpdateBatchId = generateUUID();
|
|
643
644
|
yield Promise.all(encryptedWallets.map((wallet) => __awaiter(this, void 0, void 0, function* () {
|
|
644
645
|
var _b, _c;
|
|
645
646
|
const signedSessionId = yield this.getSignedSessionId();
|
|
@@ -665,7 +666,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
665
666
|
throw new DynamicError('Signed session ID is required', 'signed_session_id_is_required');
|
|
666
667
|
}
|
|
667
668
|
const wallets = yield walletClient.getAllWallets();
|
|
668
|
-
const passwordUpdateBatchId =
|
|
669
|
+
const passwordUpdateBatchId = generateUUID();
|
|
669
670
|
yield Promise.all(wallets.map((wallet) => __awaiter(this, void 0, void 0, function* () {
|
|
670
671
|
var _b, _c;
|
|
671
672
|
const signedSessionId = yield this.getSignedSessionId();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
// crypto.randomUUID is unavailable on older webviews (< Chrome 92) and in
|
|
7
|
+
// non-secure contexts; fall back to a getRandomValues-based v4 UUID there.
|
|
8
|
+
const generateUUID = () => {
|
|
9
|
+
const cryptoProvider = globalThis.crypto;
|
|
10
|
+
if (typeof (cryptoProvider === null || cryptoProvider === void 0 ? void 0 : cryptoProvider.randomUUID) === 'function') {
|
|
11
|
+
return cryptoProvider.randomUUID();
|
|
12
|
+
}
|
|
13
|
+
if (typeof (cryptoProvider === null || cryptoProvider === void 0 ? void 0 : cryptoProvider.getRandomValues) !== 'function') {
|
|
14
|
+
throw new TypeError('Secure UUID generation is unavailable');
|
|
15
|
+
}
|
|
16
|
+
const bytes = cryptoProvider.getRandomValues(new Uint8Array(16));
|
|
17
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
18
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
19
|
+
const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
|
|
20
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.generateUUID = generateUUID;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const generateUUID: () => string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
// crypto.randomUUID is unavailable on older webviews (< Chrome 92) and in
|
|
3
|
+
// non-secure contexts; fall back to a getRandomValues-based v4 UUID there.
|
|
4
|
+
const generateUUID = () => {
|
|
5
|
+
const cryptoProvider = globalThis.crypto;
|
|
6
|
+
if (typeof (cryptoProvider === null || cryptoProvider === void 0 ? void 0 : cryptoProvider.randomUUID) === 'function') {
|
|
7
|
+
return cryptoProvider.randomUUID();
|
|
8
|
+
}
|
|
9
|
+
if (typeof (cryptoProvider === null || cryptoProvider === void 0 ? void 0 : cryptoProvider.getRandomValues) !== 'function') {
|
|
10
|
+
throw new TypeError('Secure UUID generation is unavailable');
|
|
11
|
+
}
|
|
12
|
+
const bytes = cryptoProvider.getRandomValues(new Uint8Array(16));
|
|
13
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
14
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
15
|
+
const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
|
|
16
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { generateUUID };
|