@dynamic-labs/waas 4.73.1 → 4.74.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 +23 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +9 -9
- package/src/DynamicWaasMixin.cjs +28 -14
- package/src/DynamicWaasMixin.d.ts +12 -1
- package/src/DynamicWaasMixin.js +28 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.74.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.73.2...v4.74.0) (2026-04-02)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **client:** expose waitForReady() on SdkModule ([#10771](https://github.com/dynamic-labs/dynamic-auth/issues/10771)) ([8d94615](https://github.com/dynamic-labs/dynamic-auth/commit/8d946158ab284fe338c78cfba38504b1bca91cd7))
|
|
8
|
+
* **waas:** wire up signed session ID reverse channel ([#10577](https://github.com/dynamic-labs/dynamic-auth/issues/10577)) ([e07815f](https://github.com/dynamic-labs/dynamic-auth/commit/e07815ff370634c8a5a674cbf27bc79782a27f1a))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **react-native:** keep WebView ref valid during URL reloads ([#10769](https://github.com/dynamic-labs/dynamic-auth/issues/10769)) ([691bef2](https://github.com/dynamic-labs/dynamic-auth/commit/691bef277c5190b7cd88d12f95e2b6fbfa827b64))
|
|
14
|
+
* require device registration before sdk is in logged in state ([#10831](https://github.com/dynamic-labs/dynamic-auth/issues/10831)) ([7ebae17](https://github.com/dynamic-labs/dynamic-auth/commit/7ebae17f01b9db59b88dd997d511ff84bd6b2d1a))
|
|
15
|
+
* **waas:** always prompt for password on cloud backup/export operations [DYNT-269] ([#10829](https://github.com/dynamic-labs/dynamic-auth/issues/10829)) ([5d2898b](https://github.com/dynamic-labs/dynamic-auth/commit/5d2898b9e6e06bbf13813b912b366f522fb66b70))
|
|
16
|
+
* **webview:** preserve secure storage key map during recovery clear ([#10770](https://github.com/dynamic-labs/dynamic-auth/issues/10770)) ([888bfe9](https://github.com/dynamic-labs/dynamic-auth/commit/888bfe9f27dd3b4751dddf2027a3e4d219130860))
|
|
17
|
+
|
|
18
|
+
### [4.73.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.73.1...v4.73.2) (2026-03-31)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* use initial URL for device registration redirect detection ([#10821](https://github.com/dynamic-labs/dynamic-auth/issues/10821)) ([dbec178](https://github.com/dynamic-labs/dynamic-auth/commit/dbec178e0bad9a7e99c529b79cb0fbe0fd347904))
|
|
24
|
+
|
|
2
25
|
### [4.73.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.73.0...v4.73.1) (2026-03-30)
|
|
3
26
|
|
|
4
27
|
|
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.
|
|
3
|
+
"version": "4.74.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@dynamic-labs-sdk/client": "0.19.0",
|
|
20
|
-
"@dynamic-labs/assert-package-version": "4.
|
|
20
|
+
"@dynamic-labs/assert-package-version": "4.74.0",
|
|
21
21
|
"@dynamic-labs/sdk-api-core": "0.0.909",
|
|
22
22
|
"@dynamic-labs-wallet/browser-wallet-client": "0.0.314",
|
|
23
|
-
"@dynamic-labs/ethereum-core": "4.
|
|
24
|
-
"@dynamic-labs/logger": "4.
|
|
25
|
-
"@dynamic-labs/solana-core": "4.
|
|
26
|
-
"@dynamic-labs/sui-core": "4.
|
|
27
|
-
"@dynamic-labs/utils": "4.
|
|
28
|
-
"@dynamic-labs/wallet-book": "4.
|
|
29
|
-
"@dynamic-labs/wallet-connector-core": "4.
|
|
23
|
+
"@dynamic-labs/ethereum-core": "4.74.0",
|
|
24
|
+
"@dynamic-labs/logger": "4.74.0",
|
|
25
|
+
"@dynamic-labs/solana-core": "4.74.0",
|
|
26
|
+
"@dynamic-labs/sui-core": "4.74.0",
|
|
27
|
+
"@dynamic-labs/utils": "4.74.0",
|
|
28
|
+
"@dynamic-labs/wallet-book": "4.74.0",
|
|
29
|
+
"@dynamic-labs/wallet-connector-core": "4.74.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {}
|
|
32
32
|
}
|
package/src/DynamicWaasMixin.cjs
CHANGED
|
@@ -47,7 +47,6 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
47
47
|
/**
|
|
48
48
|
* Checks if the wallet needs a password for signing operations.
|
|
49
49
|
* Returns the password if needed, or undefined if the wallet is already unlocked.
|
|
50
|
-
* Automatically retrieves the signed session ID internally.
|
|
51
50
|
*/
|
|
52
51
|
getPasswordIfNeeded(_a) {
|
|
53
52
|
return _tslib.__awaiter(this, arguments, void 0, function* ({ accountAddress, }) {
|
|
@@ -72,6 +71,26 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
72
71
|
return password;
|
|
73
72
|
});
|
|
74
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Always prompts for the wallet password regardless of wallet state.
|
|
76
|
+
*
|
|
77
|
+
* Unlike `getPasswordIfNeeded` (which skips the prompt when the wallet is
|
|
78
|
+
* already unlocked in memory), this method always asks for the password.
|
|
79
|
+
* Use it for operations that encrypt/decrypt data stored externally
|
|
80
|
+
* (e.g. cloud backup/restore), where the password is required to
|
|
81
|
+
* encrypt/decrypt the shares on disk — not just to unlock the wallet.
|
|
82
|
+
*/
|
|
83
|
+
getPassword(_a) {
|
|
84
|
+
return _tslib.__awaiter(this, arguments, void 0, function* ({ accountAddress, }) {
|
|
85
|
+
if (!this.getWalletPassword) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
return this.getWalletPassword({
|
|
89
|
+
accountAddress,
|
|
90
|
+
chainName: this.chainName,
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
75
94
|
setEnvironmentId(environmentId) {
|
|
76
95
|
this.environmentId = environmentId;
|
|
77
96
|
}
|
|
@@ -156,16 +175,11 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
156
175
|
chainName: this.chainName,
|
|
157
176
|
environmentId: this.environmentId,
|
|
158
177
|
sdkVersion: _package.version,
|
|
159
|
-
},
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
utils.PlatformService.isWaasSecureStorageSupported
|
|
165
|
-
? {
|
|
166
|
-
secureStorage: createWaasClientSecureStorage.createWaasClientSecureStorage(),
|
|
167
|
-
}
|
|
168
|
-
: undefined);
|
|
178
|
+
}, Object.assign(Object.assign({}, (utils.PlatformService.isWaasSecureStorageSupported
|
|
179
|
+
? { secureStorage: createWaasClientSecureStorage.createWaasClientSecureStorage() }
|
|
180
|
+
: {})), (this.getSignedSessionId
|
|
181
|
+
? { getSignedSessionId: this.getSignedSessionId }
|
|
182
|
+
: {})));
|
|
169
183
|
this.instrumentAsync({
|
|
170
184
|
context: traceContext,
|
|
171
185
|
fn: () => _tslib.__awaiter(this, void 0, void 0, function* () { return client.initialize(); }),
|
|
@@ -287,7 +301,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
287
301
|
if (!accountAddress) {
|
|
288
302
|
throw new utils.DynamicError('Account address is required');
|
|
289
303
|
}
|
|
290
|
-
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.
|
|
304
|
+
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.getPassword({ accountAddress }));
|
|
291
305
|
const walletClient = yield this.getWaasWalletClient();
|
|
292
306
|
const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
293
307
|
if (!signedSessionId) {
|
|
@@ -307,7 +321,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
307
321
|
if (!accountAddress) {
|
|
308
322
|
throw new utils.DynamicError('Account address is required');
|
|
309
323
|
}
|
|
310
|
-
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.
|
|
324
|
+
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.getPassword({ accountAddress }));
|
|
311
325
|
const walletClient = yield this.getWaasWalletClient();
|
|
312
326
|
const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
313
327
|
if (!signedSessionId) {
|
|
@@ -327,7 +341,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
327
341
|
if (!accountAddress) {
|
|
328
342
|
throw new utils.DynamicError('Account address is required');
|
|
329
343
|
}
|
|
330
|
-
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.
|
|
344
|
+
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.getPassword({ accountAddress }));
|
|
331
345
|
const walletClient = yield this.getWaasWalletClient();
|
|
332
346
|
const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
333
347
|
if (!signedSessionId) {
|
|
@@ -45,11 +45,22 @@ export declare const withDynamicWaas: <T extends abstract new (...args: any[]) =
|
|
|
45
45
|
/**
|
|
46
46
|
* Checks if the wallet needs a password for signing operations.
|
|
47
47
|
* Returns the password if needed, or undefined if the wallet is already unlocked.
|
|
48
|
-
* Automatically retrieves the signed session ID internally.
|
|
49
48
|
*/
|
|
50
49
|
getPasswordIfNeeded({ accountAddress, }: {
|
|
51
50
|
accountAddress: string;
|
|
52
51
|
}): Promise<string | undefined>;
|
|
52
|
+
/**
|
|
53
|
+
* Always prompts for the wallet password regardless of wallet state.
|
|
54
|
+
*
|
|
55
|
+
* Unlike `getPasswordIfNeeded` (which skips the prompt when the wallet is
|
|
56
|
+
* already unlocked in memory), this method always asks for the password.
|
|
57
|
+
* Use it for operations that encrypt/decrypt data stored externally
|
|
58
|
+
* (e.g. cloud backup/restore), where the password is required to
|
|
59
|
+
* encrypt/decrypt the shares on disk — not just to unlock the wallet.
|
|
60
|
+
*/
|
|
61
|
+
getPassword({ accountAddress, }: {
|
|
62
|
+
accountAddress: string;
|
|
63
|
+
}): Promise<string | undefined>;
|
|
53
64
|
setEnvironmentId(environmentId: string): void;
|
|
54
65
|
setBaseApiUrl(baseApiUrl: string): void;
|
|
55
66
|
setBaseClientKeysharesRelayApiUrl(baseClientKeysharesRelayApiUrl?: string): void;
|
package/src/DynamicWaasMixin.js
CHANGED
|
@@ -43,7 +43,6 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
43
43
|
/**
|
|
44
44
|
* Checks if the wallet needs a password for signing operations.
|
|
45
45
|
* Returns the password if needed, or undefined if the wallet is already unlocked.
|
|
46
|
-
* Automatically retrieves the signed session ID internally.
|
|
47
46
|
*/
|
|
48
47
|
getPasswordIfNeeded(_a) {
|
|
49
48
|
return __awaiter(this, arguments, void 0, function* ({ accountAddress, }) {
|
|
@@ -68,6 +67,26 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
68
67
|
return password;
|
|
69
68
|
});
|
|
70
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Always prompts for the wallet password regardless of wallet state.
|
|
72
|
+
*
|
|
73
|
+
* Unlike `getPasswordIfNeeded` (which skips the prompt when the wallet is
|
|
74
|
+
* already unlocked in memory), this method always asks for the password.
|
|
75
|
+
* Use it for operations that encrypt/decrypt data stored externally
|
|
76
|
+
* (e.g. cloud backup/restore), where the password is required to
|
|
77
|
+
* encrypt/decrypt the shares on disk — not just to unlock the wallet.
|
|
78
|
+
*/
|
|
79
|
+
getPassword(_a) {
|
|
80
|
+
return __awaiter(this, arguments, void 0, function* ({ accountAddress, }) {
|
|
81
|
+
if (!this.getWalletPassword) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
return this.getWalletPassword({
|
|
85
|
+
accountAddress,
|
|
86
|
+
chainName: this.chainName,
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
71
90
|
setEnvironmentId(environmentId) {
|
|
72
91
|
this.environmentId = environmentId;
|
|
73
92
|
}
|
|
@@ -152,16 +171,11 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
152
171
|
chainName: this.chainName,
|
|
153
172
|
environmentId: this.environmentId,
|
|
154
173
|
sdkVersion: version,
|
|
155
|
-
},
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
PlatformService.isWaasSecureStorageSupported
|
|
161
|
-
? {
|
|
162
|
-
secureStorage: createWaasClientSecureStorage(),
|
|
163
|
-
}
|
|
164
|
-
: undefined);
|
|
174
|
+
}, Object.assign(Object.assign({}, (PlatformService.isWaasSecureStorageSupported
|
|
175
|
+
? { secureStorage: createWaasClientSecureStorage() }
|
|
176
|
+
: {})), (this.getSignedSessionId
|
|
177
|
+
? { getSignedSessionId: this.getSignedSessionId }
|
|
178
|
+
: {})));
|
|
165
179
|
this.instrumentAsync({
|
|
166
180
|
context: traceContext,
|
|
167
181
|
fn: () => __awaiter(this, void 0, void 0, function* () { return client.initialize(); }),
|
|
@@ -283,7 +297,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
283
297
|
if (!accountAddress) {
|
|
284
298
|
throw new DynamicError('Account address is required');
|
|
285
299
|
}
|
|
286
|
-
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.
|
|
300
|
+
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.getPassword({ accountAddress }));
|
|
287
301
|
const walletClient = yield this.getWaasWalletClient();
|
|
288
302
|
const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
289
303
|
if (!signedSessionId) {
|
|
@@ -303,7 +317,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
303
317
|
if (!accountAddress) {
|
|
304
318
|
throw new DynamicError('Account address is required');
|
|
305
319
|
}
|
|
306
|
-
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.
|
|
320
|
+
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.getPassword({ accountAddress }));
|
|
307
321
|
const walletClient = yield this.getWaasWalletClient();
|
|
308
322
|
const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
309
323
|
if (!signedSessionId) {
|
|
@@ -323,7 +337,7 @@ const withDynamicWaas = (BaseClass) => {
|
|
|
323
337
|
if (!accountAddress) {
|
|
324
338
|
throw new DynamicError('Account address is required');
|
|
325
339
|
}
|
|
326
|
-
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.
|
|
340
|
+
const resolvedPassword = password !== null && password !== void 0 ? password : (yield this.getPassword({ accountAddress }));
|
|
327
341
|
const walletClient = yield this.getWaasWalletClient();
|
|
328
342
|
const signedSessionId = yield ((_b = this.getSignedSessionId) === null || _b === void 0 ? void 0 : _b.call(this));
|
|
329
343
|
if (!signedSessionId) {
|