@dynamic-labs-wallet/browser-wallet-client 1.0.11 → 1.0.12
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/index.cjs
CHANGED
|
@@ -553,7 +553,7 @@ class IframeManager {
|
|
|
553
553
|
// timeout calls triggerRecovery. block() must run before we await anything
|
|
554
554
|
// so the request channel's recursive sendMessage() lands on the queue
|
|
555
555
|
// instead of the dead bridge.
|
|
556
|
-
transport.recoveryManager.onRecoveryRequested(()=>{
|
|
556
|
+
this.cleanupRecoverySubscription = transport.recoveryManager.onRecoveryRequested(()=>{
|
|
557
557
|
this.logger.info('(recoverIframe) Iframe transport recovery requested — rebuilding iframe');
|
|
558
558
|
transport.block();
|
|
559
559
|
void this.recoverIframe(transport).catch((error)=>{
|
|
@@ -588,7 +588,15 @@ class IframeManager {
|
|
|
588
588
|
// real dead-container case below falls through to the rebuild.
|
|
589
589
|
if ((_IframeManager_sharedWaasSDKContainer = IframeManager.sharedWaasSDKContainer) == null ? void 0 : _IframeManager_sharedWaasSDKContainer.isAlive()) {
|
|
590
590
|
this.logger.info('(recoverIframe) Container still alive — request-channel timeout, skipping rebuild');
|
|
591
|
-
this.waasSDKContainer
|
|
591
|
+
if (this.waasSDKContainer !== IframeManager.sharedWaasSDKContainer) {
|
|
592
|
+
// A concurrent recovery already swapped in a fresh shared container. Our
|
|
593
|
+
// bridge still forwards to the old (now-dead) one, so re-point it before
|
|
594
|
+
// unblock flushes the queued retry — otherwise the flush calls sendMessage
|
|
595
|
+
// on a torn-down iframe ("iframe not loaded").
|
|
596
|
+
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
597
|
+
this.waasSDKContainer = IframeManager.sharedWaasSDKContainer;
|
|
598
|
+
this.cleanupBridge = this.setupWaasSDKContainerBridge(transport, this.waasSDKContainer);
|
|
599
|
+
}
|
|
592
600
|
transport.unblock();
|
|
593
601
|
return;
|
|
594
602
|
}
|
|
@@ -704,6 +712,8 @@ class IframeManager {
|
|
|
704
712
|
*/ resetSharedWaasSDKContainer() {
|
|
705
713
|
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
706
714
|
this.cleanupBridge = null;
|
|
715
|
+
this.cleanupRecoverySubscription == null ? void 0 : this.cleanupRecoverySubscription.call(this);
|
|
716
|
+
this.cleanupRecoverySubscription = null;
|
|
707
717
|
if (IframeManager.sharedWaasSDKContainer) {
|
|
708
718
|
IframeManager.sharedWaasSDKContainer.destroy();
|
|
709
719
|
IframeManager.sharedWaasSDKContainer = null;
|
|
@@ -969,14 +979,27 @@ class IframeManager {
|
|
|
969
979
|
}
|
|
970
980
|
if (this.waasSDKContainer) {
|
|
971
981
|
IframeManager.iframeInstanceCount--;
|
|
982
|
+
// Always detach THIS instance's bridge + recovery subscription, even when
|
|
983
|
+
// other instances keep the shared container alive (multi-chain sessions
|
|
984
|
+
// share one static container). Leaving them attached lets a logged-out
|
|
985
|
+
// transport's retry timer fire recovery and flush a queued message into a
|
|
986
|
+
// torn-down container on the next session — the "iframe not loaded" pageerror.
|
|
987
|
+
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
988
|
+
this.cleanupBridge = null;
|
|
989
|
+
this.cleanupRecoverySubscription == null ? void 0 : this.cleanupRecoverySubscription.call(this);
|
|
990
|
+
this.cleanupRecoverySubscription = null;
|
|
972
991
|
if (IframeManager.sharedWaasSDKContainer && IframeManager.iframeInstanceCount === 0) {
|
|
973
|
-
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
974
|
-
this.cleanupBridge = null;
|
|
975
992
|
IframeManager.sharedWaasSDKContainer.destroy();
|
|
976
993
|
IframeManager.sharedWaasSDKContainer = null;
|
|
977
994
|
IframeManager.iframeLoadPromise = null;
|
|
978
995
|
}
|
|
979
996
|
this.waasSDKContainer = null;
|
|
997
|
+
// Drop the transport + handler so the next operation re-inits and rebuilds a
|
|
998
|
+
// fresh bridge instead of short-circuiting on initializeMessageTransport's
|
|
999
|
+
// "already initialized" guard with a now-detached bridge.
|
|
1000
|
+
this.messageTransport = null;
|
|
1001
|
+
this.iframeMessageHandler = null;
|
|
1002
|
+
this.iframeRequestChannel = undefined;
|
|
980
1003
|
}
|
|
981
1004
|
}
|
|
982
1005
|
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = core.AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts }, internalOptions){
|
|
@@ -988,6 +1011,9 @@ class IframeManager {
|
|
|
988
1011
|
/** Teardown function returned by setupMessageTransportBridge — detaches all
|
|
989
1012
|
* listeners. Tracked so we can rebuild the bridge on iframe recovery without
|
|
990
1013
|
* leaking listeners against the dead iframe. */ this.cleanupBridge = null;
|
|
1014
|
+
/** Unsubscribe for the onRecoveryRequested listener. Tracked so logout detaches
|
|
1015
|
+
* it — otherwise the request channel's retry timer keeps firing recovery against
|
|
1016
|
+
* a torn-down transport on the next session. */ this.cleanupRecoverySubscription = null;
|
|
991
1017
|
this.iframe = null;
|
|
992
1018
|
this.waasSDKContainer = null;
|
|
993
1019
|
this.environmentId = environmentId;
|
package/index.esm.js
CHANGED
|
@@ -552,7 +552,7 @@ class IframeManager {
|
|
|
552
552
|
// timeout calls triggerRecovery. block() must run before we await anything
|
|
553
553
|
// so the request channel's recursive sendMessage() lands on the queue
|
|
554
554
|
// instead of the dead bridge.
|
|
555
|
-
transport.recoveryManager.onRecoveryRequested(()=>{
|
|
555
|
+
this.cleanupRecoverySubscription = transport.recoveryManager.onRecoveryRequested(()=>{
|
|
556
556
|
this.logger.info('(recoverIframe) Iframe transport recovery requested — rebuilding iframe');
|
|
557
557
|
transport.block();
|
|
558
558
|
void this.recoverIframe(transport).catch((error)=>{
|
|
@@ -587,7 +587,15 @@ class IframeManager {
|
|
|
587
587
|
// real dead-container case below falls through to the rebuild.
|
|
588
588
|
if ((_IframeManager_sharedWaasSDKContainer = IframeManager.sharedWaasSDKContainer) == null ? void 0 : _IframeManager_sharedWaasSDKContainer.isAlive()) {
|
|
589
589
|
this.logger.info('(recoverIframe) Container still alive — request-channel timeout, skipping rebuild');
|
|
590
|
-
this.waasSDKContainer
|
|
590
|
+
if (this.waasSDKContainer !== IframeManager.sharedWaasSDKContainer) {
|
|
591
|
+
// A concurrent recovery already swapped in a fresh shared container. Our
|
|
592
|
+
// bridge still forwards to the old (now-dead) one, so re-point it before
|
|
593
|
+
// unblock flushes the queued retry — otherwise the flush calls sendMessage
|
|
594
|
+
// on a torn-down iframe ("iframe not loaded").
|
|
595
|
+
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
596
|
+
this.waasSDKContainer = IframeManager.sharedWaasSDKContainer;
|
|
597
|
+
this.cleanupBridge = this.setupWaasSDKContainerBridge(transport, this.waasSDKContainer);
|
|
598
|
+
}
|
|
591
599
|
transport.unblock();
|
|
592
600
|
return;
|
|
593
601
|
}
|
|
@@ -703,6 +711,8 @@ class IframeManager {
|
|
|
703
711
|
*/ resetSharedWaasSDKContainer() {
|
|
704
712
|
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
705
713
|
this.cleanupBridge = null;
|
|
714
|
+
this.cleanupRecoverySubscription == null ? void 0 : this.cleanupRecoverySubscription.call(this);
|
|
715
|
+
this.cleanupRecoverySubscription = null;
|
|
706
716
|
if (IframeManager.sharedWaasSDKContainer) {
|
|
707
717
|
IframeManager.sharedWaasSDKContainer.destroy();
|
|
708
718
|
IframeManager.sharedWaasSDKContainer = null;
|
|
@@ -968,14 +978,27 @@ class IframeManager {
|
|
|
968
978
|
}
|
|
969
979
|
if (this.waasSDKContainer) {
|
|
970
980
|
IframeManager.iframeInstanceCount--;
|
|
981
|
+
// Always detach THIS instance's bridge + recovery subscription, even when
|
|
982
|
+
// other instances keep the shared container alive (multi-chain sessions
|
|
983
|
+
// share one static container). Leaving them attached lets a logged-out
|
|
984
|
+
// transport's retry timer fire recovery and flush a queued message into a
|
|
985
|
+
// torn-down container on the next session — the "iframe not loaded" pageerror.
|
|
986
|
+
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
987
|
+
this.cleanupBridge = null;
|
|
988
|
+
this.cleanupRecoverySubscription == null ? void 0 : this.cleanupRecoverySubscription.call(this);
|
|
989
|
+
this.cleanupRecoverySubscription = null;
|
|
971
990
|
if (IframeManager.sharedWaasSDKContainer && IframeManager.iframeInstanceCount === 0) {
|
|
972
|
-
this.cleanupBridge == null ? void 0 : this.cleanupBridge.call(this);
|
|
973
|
-
this.cleanupBridge = null;
|
|
974
991
|
IframeManager.sharedWaasSDKContainer.destroy();
|
|
975
992
|
IframeManager.sharedWaasSDKContainer = null;
|
|
976
993
|
IframeManager.iframeLoadPromise = null;
|
|
977
994
|
}
|
|
978
995
|
this.waasSDKContainer = null;
|
|
996
|
+
// Drop the transport + handler so the next operation re-inits and rebuilds a
|
|
997
|
+
// fresh bridge instead of short-circuiting on initializeMessageTransport's
|
|
998
|
+
// "already initialized" guard with a now-detached bridge.
|
|
999
|
+
this.messageTransport = null;
|
|
1000
|
+
this.iframeMessageHandler = null;
|
|
1001
|
+
this.iframeRequestChannel = undefined;
|
|
979
1002
|
}
|
|
980
1003
|
}
|
|
981
1004
|
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts }, internalOptions){
|
|
@@ -987,6 +1010,9 @@ class IframeManager {
|
|
|
987
1010
|
/** Teardown function returned by setupMessageTransportBridge — detaches all
|
|
988
1011
|
* listeners. Tracked so we can rebuild the bridge on iframe recovery without
|
|
989
1012
|
* leaking listeners against the dead iframe. */ this.cleanupBridge = null;
|
|
1013
|
+
/** Unsubscribe for the onRecoveryRequested listener. Tracked so logout detaches
|
|
1014
|
+
* it — otherwise the request channel's retry timer keeps firing recovery against
|
|
1015
|
+
* a torn-down transport on the next session. */ this.cleanupRecoverySubscription = null;
|
|
990
1016
|
this.iframe = null;
|
|
991
1017
|
this.waasSDKContainer = null;
|
|
992
1018
|
this.environmentId = environmentId;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/browser-wallet-client",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@dynamic-labs-wallet/core": "1.0.
|
|
7
|
+
"@dynamic-labs-wallet/core": "1.0.12",
|
|
8
8
|
"@dynamic-labs/logger": "^4.45.2",
|
|
9
9
|
"@dynamic-labs/message-transport": "^4.45.2"
|
|
10
10
|
},
|
|
@@ -17,6 +17,10 @@ export declare class IframeManager {
|
|
|
17
17
|
* listeners. Tracked so we can rebuild the bridge on iframe recovery without
|
|
18
18
|
* leaking listeners against the dead iframe. */
|
|
19
19
|
private cleanupBridge;
|
|
20
|
+
/** Unsubscribe for the onRecoveryRequested listener. Tracked so logout detaches
|
|
21
|
+
* it — otherwise the request channel's retry timer keeps firing recovery against
|
|
22
|
+
* a torn-down transport on the next session. */
|
|
23
|
+
private cleanupRecoverySubscription;
|
|
20
24
|
private static iframeLoadPromise;
|
|
21
25
|
protected iframe: HTMLIFrameElement | null;
|
|
22
26
|
private readonly debug;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/IframeManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/IframeManager.ts"],"names":[],"mappings":"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"}
|