@dynamic-labs-wallet/browser-wallet-client 1.1.7 → 1.1.9

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
@@ -15,6 +15,19 @@ function _extends() {
15
15
  return _extends.apply(this, arguments);
16
16
  }
17
17
 
18
+ function _object_without_properties_loose(source, excluded) {
19
+ if (source == null) return {};
20
+ var target = {};
21
+ var sourceKeys = Object.keys(source);
22
+ var key, i;
23
+ for(i = 0; i < sourceKeys.length; i++){
24
+ key = sourceKeys[i];
25
+ if (excluded.indexOf(key) >= 0) continue;
26
+ target[key] = source[key];
27
+ }
28
+ return target;
29
+ }
30
+
18
31
  class IframeMessageHandler {
19
32
  // Handle error response from iframe message handler
20
33
  handleIframeMessageResponseError(response) {
@@ -612,6 +625,100 @@ const createIframeWaasSDKContainer = ()=>{
612
625
  }
613
626
  };
614
627
 
628
+ /**
629
+ * One `setupIframeRequestHandlers` call's worth of registrations, grouped by
630
+ * lifetime.
631
+ */ /** Unregisters every handler in `disposers` and empties the list. */ const drainDisposers = (disposers)=>{
632
+ disposers.forEach((unsubscribe)=>unsubscribe());
633
+ disposers.length = 0;
634
+ };
635
+ /** Unregisters both halves of a registration. */ const disposeAllHandlers = ({ disposeSessionHandlers, disposeStorageHandlers })=>{
636
+ disposeSessionHandlers();
637
+ disposeStorageHandlers();
638
+ };
639
+ /**
640
+ * Lifetime bookkeeping for the iframe → host ("reverse channel") request
641
+ * handlers one IframeManager has attached to the shared container.
642
+ *
643
+ * A page has one WaaS iframe but every client built on it stays bridged to it,
644
+ * so the reverse channel is first-response-wins: a superseded manager with a
645
+ * revoked session callback rejects `getSignedSessionId` instantly and beats the
646
+ * live client's round-trip. This registry is what lets such a manager leave the
647
+ * race (see {@link detach}) without disturbing the key-share handlers, which
648
+ * the iframe still calls back during teardown.
649
+ */ class IframeRequestHandlerRegistry {
650
+ get sessionHandlerCount() {
651
+ return this.sessionDisposers.length;
652
+ }
653
+ get storageHandlerCount() {
654
+ return this.storageDisposers.length;
655
+ }
656
+ /** Capture the current generations before awaiting the iframe. */ snapshot() {
657
+ return {
658
+ cleanupGeneration: this.cleanupGeneration,
659
+ detachGeneration: this.detachGeneration
660
+ };
661
+ }
662
+ /**
663
+ * Takes ownership of a registration whose setup started at `epoch`, keeping
664
+ * whichever halves are still legitimate, and reports whether the registration
665
+ * is the manager's current one (the caller's channel is only worth keeping
666
+ * then). The host doesn't await `initialize()`, so a detach or a cleanup can
667
+ * land while the iframe is still loading — which one moved decides:
668
+ *
669
+ * - **Torn down** (cleanup): keep nothing. The lists this would land on are
670
+ * already drained, so anything tracked here would stay attached to a
671
+ * logged-out manager forever.
672
+ * - **Superseded** (detach): the session handlers would put this manager back
673
+ * into the race, but its key-share handlers still answer honestly — and on a
674
+ * first initialization they are the only ones the page has.
675
+ * - **Neither**: track both.
676
+ */ adopt(epoch, registration) {
677
+ if (this.cleanupGeneration !== epoch.cleanupGeneration) {
678
+ disposeAllHandlers(registration);
679
+ return false;
680
+ }
681
+ if (this.detachGeneration !== epoch.detachGeneration) {
682
+ registration.disposeSessionHandlers();
683
+ this.storageDisposers.push(registration.disposeStorageHandlers);
684
+ return false;
685
+ }
686
+ this.sessionDisposers.push(registration.disposeSessionHandlers);
687
+ this.storageDisposers.push(registration.disposeStorageHandlers);
688
+ return true;
689
+ }
690
+ /**
691
+ * Stops answering the session-scoped requests, and nothing else. Safe to call
692
+ * repeatedly, and mid-initialization: a registration still in flight is
693
+ * adopted as "superseded".
694
+ */ detach() {
695
+ this.detachGeneration += 1;
696
+ drainDisposers(this.sessionDisposers);
697
+ }
698
+ /**
699
+ * First phase of a teardown: leave the session race immediately, and mark
700
+ * anything still initializing as torn down rather than merely superseded. The
701
+ * storage handlers stay until {@link disposeStorageHandlers}, because the
702
+ * iframe's own cleanup clears each wallet's shares over this channel.
703
+ */ markTornDown() {
704
+ this.cleanupGeneration += 1;
705
+ this.detach();
706
+ }
707
+ /** Second phase of a teardown: drop the key-share handlers, once the iframe has finished calling back. */ disposeStorageHandlers() {
708
+ drainDisposers(this.storageDisposers);
709
+ }
710
+ constructor(){
711
+ /**
712
+ * Lists, not single entries: `initializeMessageTransport` checks its guard
713
+ * *then* awaits, so one manager can end up registered on two transports that
714
+ * both answer, and overwriting would orphan the first.
715
+ */ this.sessionDisposers = [];
716
+ this.storageDisposers = [];
717
+ /** Bumped by {@link detach}. */ this.detachGeneration = 0;
718
+ /** Bumped by {@link markTornDown}. */ this.cleanupGeneration = 0;
719
+ }
720
+ }
721
+
615
722
  const FRAME_ANCESTORS_QUERY_PARAM = 'frameAncestors';
616
723
  /**
617
724
  * Builds the iframe message transport with the recovery + block decorators.
@@ -853,6 +960,8 @@ class IframeManager {
853
960
  this.logger.debug('Skipping initializeMessageTransport: transport and message handler already initialized');
854
961
  return;
855
962
  }
963
+ // Captured before the await: detach() or cleanup() can run while the iframe loads.
964
+ const epoch = this.requestHandlers.snapshot();
856
965
  await this.initializeIframeCommunication();
857
966
  const transport = createIframeMessageTransport();
858
967
  this.messageTransport = transport;
@@ -870,7 +979,12 @@ class IframeManager {
870
979
  // Set up request channel to handle messages from iframe (for secureStorage,
871
980
  // getSignedSessionId, and the unauthorized notification)
872
981
  if (this.secureStorage || this.getSignedSessionIdCallback || this.onUnauthorized) {
873
- this.iframeRequestChannel = this.setupIframeRequestHandlers(this.messageTransport);
982
+ const _this_setupIframeRequestHandlers = this.setupIframeRequestHandlers(this.messageTransport), { requestChannel } = _this_setupIframeRequestHandlers, registration = _object_without_properties_loose(_this_setupIframeRequestHandlers, [
983
+ "requestChannel"
984
+ ]);
985
+ if (this.requestHandlers.adopt(epoch, registration)) {
986
+ this.iframeRequestChannel = requestChannel;
987
+ }
874
988
  }
875
989
  // The recovery callback runs synchronously when the request channel's
876
990
  // timeout calls triggerRecovery. block() must run before we await anything
@@ -961,26 +1075,37 @@ class IframeManager {
961
1075
  }
962
1076
  /**
963
1077
  * Sets up message handlers for iframe → host requests (secureStorage and getSignedSessionId)
1078
+ *
1079
+ * Returns the channel plus one disposer per lifetime group, covering exactly the
1080
+ * handlers this call attached. Scoped per call because three different transports
1081
+ * use it — pooling them would let a display flow take ownership of the shared
1082
+ * container's handlers.
964
1083
  */ setupIframeRequestHandlers(transport) {
965
1084
  // Create a request channel to handle requests FROM iframe
966
1085
  const requestChannel = messageTransport.createRequestChannel(transport);
967
- if (this.secureStorage) {
968
- // Handle getClientKeyShare requests from iframe
969
- requestChannel.handle('getClientKeyShare', this.handleGetClientKeyShare.bind(this));
970
- // Handle setClientKeyShare requests from iframe
971
- requestChannel.handle('setClientKeyShare', this.handleSetClientKeyShare.bind(this));
972
- // Handle removeClientKeyShare requests from iframe
973
- requestChannel.handle('removeClientKeyShare', this.handleRemoveClientKeyShare.bind(this));
974
- }
1086
+ // handle() returns the unsubscribe; each entry here is one registration.
1087
+ // secureStorage: key-share reads/writes, answered identically by any manager
1088
+ // on the page, so they are not part of a detach.
1089
+ const storageDisposers = this.secureStorage ? [
1090
+ requestChannel.handle('getClientKeyShare', this.handleGetClientKeyShare.bind(this)),
1091
+ requestChannel.handle('setClientKeyShare', this.handleSetClientKeyShare.bind(this)),
1092
+ requestChannel.handle('removeClientKeyShare', this.handleRemoveClientKeyShare.bind(this))
1093
+ ] : [];
1094
+ // Session-scoped: both answer from this client's own session state, so a
1095
+ // superseded manager must stop answering them the moment it is detached.
1096
+ const sessionDisposers = [];
975
1097
  if (this.getSignedSessionIdCallback) {
976
- // Handle getSignedSessionId requests from iframe
977
- requestChannel.handle('getSignedSessionId', this.handleGetSignedSessionId.bind(this));
1098
+ sessionDisposers.push(requestChannel.handle('getSignedSessionId', this.handleGetSignedSessionId.bind(this)));
978
1099
  }
1100
+ // The iframe's 401 notification (iframe → host)
979
1101
  if (this.onUnauthorized) {
980
- // Handle the iframe's 401 notification (iframe → host)
981
- requestChannel.handle('notifyUnauthorized', this.handleNotifyUnauthorized.bind(this));
1102
+ sessionDisposers.push(requestChannel.handle('notifyUnauthorized', this.handleNotifyUnauthorized.bind(this)));
982
1103
  }
983
- return requestChannel;
1104
+ return {
1105
+ disposeSessionHandlers: ()=>drainDisposers(sessionDisposers),
1106
+ disposeStorageHandlers: ()=>drainDisposers(storageDisposers),
1107
+ requestChannel
1108
+ };
984
1109
  }
985
1110
  /**
986
1111
  * Handler for the iframe's `notifyUnauthorized` reverse-channel request.
@@ -1303,9 +1428,7 @@ class IframeManager {
1303
1428
  const iframeDisplay = new IframeMessageHandler(transport);
1304
1429
  // Set up iframe request handlers on this transport so the display iframe
1305
1430
  // can access key shares (e.g. for exportPrivateKey) and signed session ID
1306
- if (this.secureStorage || this.getSignedSessionIdCallback) {
1307
- this.setupIframeRequestHandlers(transport);
1308
- }
1431
+ const requestHandlers = this.secureStorage || this.getSignedSessionIdCallback ? this.setupIframeRequestHandlers(transport) : undefined;
1309
1432
  var _this_authMode;
1310
1433
  // if authMode is header: inform iframe the authMode with auth token
1311
1434
  // if authMode is cookie: inform iframe the authMode with empty authToken
@@ -1314,6 +1437,9 @@ class IframeManager {
1314
1437
  iframe,
1315
1438
  iframeDisplay,
1316
1439
  cleanup: ()=>{
1440
+ if (requestHandlers) {
1441
+ disposeAllHandlers(requestHandlers);
1442
+ }
1317
1443
  cleanupBridge();
1318
1444
  iframe.remove();
1319
1445
  }
@@ -1400,9 +1526,7 @@ class IframeManager {
1400
1526
  // Set up iframe request handlers on this transport so the display
1401
1527
  // container can access key shares (e.g. for exportPrivateKey) and the
1402
1528
  // signed session ID — mirrors initializeIframeDisplayForContainer.
1403
- if (this.secureStorage || this.getSignedSessionIdCallback) {
1404
- this.setupIframeRequestHandlers(transport);
1405
- }
1529
+ const requestHandlers = this.secureStorage || this.getSignedSessionIdCallback ? this.setupIframeRequestHandlers(transport) : undefined;
1406
1530
  var _this_authMode;
1407
1531
  // if authMode is header: inform the container of the authMode with auth token
1408
1532
  // if authMode is cookie: inform the container of the authMode with empty authToken
@@ -1410,6 +1534,9 @@ class IframeManager {
1410
1534
  return {
1411
1535
  iframeDisplay,
1412
1536
  cleanup: ()=>{
1537
+ if (requestHandlers) {
1538
+ disposeAllHandlers(requestHandlers);
1539
+ }
1413
1540
  cleanupBridge();
1414
1541
  waasSDKContainer.destroy();
1415
1542
  }
@@ -1419,7 +1546,30 @@ class IframeManager {
1419
1546
  throw error;
1420
1547
  }
1421
1548
  }
1549
+ /**
1550
+ * Stops this manager answering the iframe's *session-scoped* reverse-channel
1551
+ * requests (iframe → host), and nothing else. Call it on a manager superseded
1552
+ * by a newer one for the same page.
1553
+ *
1554
+ * Every bridged manager answers every iframe → host request and the channel is
1555
+ * first-response-wins, so a superseded manager with revoked host callbacks
1556
+ * rejects `getSignedSessionId` instantly and beats the live one's round-trip —
1557
+ * killing wallet creation for the life of the iframe.
1558
+ *
1559
+ * Narrow on purpose. The key-share handlers stay: they proxy host storage by
1560
+ * address, so any manager answers them identically, and the iframe still needs
1561
+ * them to clear shares during {@link cleanup}. Transport, bridge, recovery
1562
+ * subscription and container membership stay too, so in-flight operations still
1563
+ * get their responses (tearing them down makes an in-flight wallet creation hang
1564
+ * forever). Use {@link cleanup} for a real teardown, and call this any time —
1565
+ * including mid-initialization.
1566
+ */ detach() {
1567
+ this.requestHandlers.detach();
1568
+ }
1422
1569
  async cleanup() {
1570
+ // Detach up front, so a logged-out manager stops answering signed-session
1571
+ // requests immediately instead of once the ACK below returns (or times out).
1572
+ this.requestHandlers.markTornDown();
1423
1573
  // Best-effort ACK (the iframe clears its storage), only if already
1424
1574
  // initialized. Do NOT initialize here: that mounts a fresh container just to
1425
1575
  // ACK and then tears it down, churning the shared container across
@@ -1449,6 +1599,9 @@ class IframeManager {
1449
1599
  // detached one); re-arm the unauthorized guard for a future session.
1450
1600
  this.messageTransport = null;
1451
1601
  this.iframeMessageHandler = null;
1602
+ // Key-share handlers go last: the iframe's cleanup above clears each wallet's
1603
+ // shares over this channel and needs a host still answering.
1604
+ this.requestHandlers.disposeStorageHandlers();
1452
1605
  this.iframeRequestChannel = undefined;
1453
1606
  this.unauthorizedHandled = false;
1454
1607
  }
@@ -1465,6 +1618,11 @@ class IframeManager {
1465
1618
  * it — otherwise the request channel's retry timer keeps firing recovery against
1466
1619
  * a torn-down transport on the next session. */ this.cleanupRecoverySubscription = null;
1467
1620
  this.iframe = null;
1621
+ /**
1622
+ * Lifetimes of the shared container's reverse-channel handlers: which of them
1623
+ * a superseded manager stops answering ({@link detach}) and which outlive it
1624
+ * until teardown ({@link cleanup}).
1625
+ */ this.requestHandlers = new IframeRequestHandlerRegistry();
1468
1626
  this.waasSDKContainer = null;
1469
1627
  /** One-shot guard so a burst of 401 notifications triggers a single logout. */ this.unauthorizedHandled = false;
1470
1628
  this.environmentId = environmentId;
package/index.esm.js CHANGED
@@ -14,6 +14,19 @@ function _extends() {
14
14
  return _extends.apply(this, arguments);
15
15
  }
16
16
 
17
+ function _object_without_properties_loose(source, excluded) {
18
+ if (source == null) return {};
19
+ var target = {};
20
+ var sourceKeys = Object.keys(source);
21
+ var key, i;
22
+ for(i = 0; i < sourceKeys.length; i++){
23
+ key = sourceKeys[i];
24
+ if (excluded.indexOf(key) >= 0) continue;
25
+ target[key] = source[key];
26
+ }
27
+ return target;
28
+ }
29
+
17
30
  class IframeMessageHandler {
18
31
  // Handle error response from iframe message handler
19
32
  handleIframeMessageResponseError(response) {
@@ -611,6 +624,100 @@ const createIframeWaasSDKContainer = ()=>{
611
624
  }
612
625
  };
613
626
 
627
+ /**
628
+ * One `setupIframeRequestHandlers` call's worth of registrations, grouped by
629
+ * lifetime.
630
+ */ /** Unregisters every handler in `disposers` and empties the list. */ const drainDisposers = (disposers)=>{
631
+ disposers.forEach((unsubscribe)=>unsubscribe());
632
+ disposers.length = 0;
633
+ };
634
+ /** Unregisters both halves of a registration. */ const disposeAllHandlers = ({ disposeSessionHandlers, disposeStorageHandlers })=>{
635
+ disposeSessionHandlers();
636
+ disposeStorageHandlers();
637
+ };
638
+ /**
639
+ * Lifetime bookkeeping for the iframe → host ("reverse channel") request
640
+ * handlers one IframeManager has attached to the shared container.
641
+ *
642
+ * A page has one WaaS iframe but every client built on it stays bridged to it,
643
+ * so the reverse channel is first-response-wins: a superseded manager with a
644
+ * revoked session callback rejects `getSignedSessionId` instantly and beats the
645
+ * live client's round-trip. This registry is what lets such a manager leave the
646
+ * race (see {@link detach}) without disturbing the key-share handlers, which
647
+ * the iframe still calls back during teardown.
648
+ */ class IframeRequestHandlerRegistry {
649
+ get sessionHandlerCount() {
650
+ return this.sessionDisposers.length;
651
+ }
652
+ get storageHandlerCount() {
653
+ return this.storageDisposers.length;
654
+ }
655
+ /** Capture the current generations before awaiting the iframe. */ snapshot() {
656
+ return {
657
+ cleanupGeneration: this.cleanupGeneration,
658
+ detachGeneration: this.detachGeneration
659
+ };
660
+ }
661
+ /**
662
+ * Takes ownership of a registration whose setup started at `epoch`, keeping
663
+ * whichever halves are still legitimate, and reports whether the registration
664
+ * is the manager's current one (the caller's channel is only worth keeping
665
+ * then). The host doesn't await `initialize()`, so a detach or a cleanup can
666
+ * land while the iframe is still loading — which one moved decides:
667
+ *
668
+ * - **Torn down** (cleanup): keep nothing. The lists this would land on are
669
+ * already drained, so anything tracked here would stay attached to a
670
+ * logged-out manager forever.
671
+ * - **Superseded** (detach): the session handlers would put this manager back
672
+ * into the race, but its key-share handlers still answer honestly — and on a
673
+ * first initialization they are the only ones the page has.
674
+ * - **Neither**: track both.
675
+ */ adopt(epoch, registration) {
676
+ if (this.cleanupGeneration !== epoch.cleanupGeneration) {
677
+ disposeAllHandlers(registration);
678
+ return false;
679
+ }
680
+ if (this.detachGeneration !== epoch.detachGeneration) {
681
+ registration.disposeSessionHandlers();
682
+ this.storageDisposers.push(registration.disposeStorageHandlers);
683
+ return false;
684
+ }
685
+ this.sessionDisposers.push(registration.disposeSessionHandlers);
686
+ this.storageDisposers.push(registration.disposeStorageHandlers);
687
+ return true;
688
+ }
689
+ /**
690
+ * Stops answering the session-scoped requests, and nothing else. Safe to call
691
+ * repeatedly, and mid-initialization: a registration still in flight is
692
+ * adopted as "superseded".
693
+ */ detach() {
694
+ this.detachGeneration += 1;
695
+ drainDisposers(this.sessionDisposers);
696
+ }
697
+ /**
698
+ * First phase of a teardown: leave the session race immediately, and mark
699
+ * anything still initializing as torn down rather than merely superseded. The
700
+ * storage handlers stay until {@link disposeStorageHandlers}, because the
701
+ * iframe's own cleanup clears each wallet's shares over this channel.
702
+ */ markTornDown() {
703
+ this.cleanupGeneration += 1;
704
+ this.detach();
705
+ }
706
+ /** Second phase of a teardown: drop the key-share handlers, once the iframe has finished calling back. */ disposeStorageHandlers() {
707
+ drainDisposers(this.storageDisposers);
708
+ }
709
+ constructor(){
710
+ /**
711
+ * Lists, not single entries: `initializeMessageTransport` checks its guard
712
+ * *then* awaits, so one manager can end up registered on two transports that
713
+ * both answer, and overwriting would orphan the first.
714
+ */ this.sessionDisposers = [];
715
+ this.storageDisposers = [];
716
+ /** Bumped by {@link detach}. */ this.detachGeneration = 0;
717
+ /** Bumped by {@link markTornDown}. */ this.cleanupGeneration = 0;
718
+ }
719
+ }
720
+
614
721
  const FRAME_ANCESTORS_QUERY_PARAM = 'frameAncestors';
615
722
  /**
616
723
  * Builds the iframe message transport with the recovery + block decorators.
@@ -852,6 +959,8 @@ class IframeManager {
852
959
  this.logger.debug('Skipping initializeMessageTransport: transport and message handler already initialized');
853
960
  return;
854
961
  }
962
+ // Captured before the await: detach() or cleanup() can run while the iframe loads.
963
+ const epoch = this.requestHandlers.snapshot();
855
964
  await this.initializeIframeCommunication();
856
965
  const transport = createIframeMessageTransport();
857
966
  this.messageTransport = transport;
@@ -869,7 +978,12 @@ class IframeManager {
869
978
  // Set up request channel to handle messages from iframe (for secureStorage,
870
979
  // getSignedSessionId, and the unauthorized notification)
871
980
  if (this.secureStorage || this.getSignedSessionIdCallback || this.onUnauthorized) {
872
- this.iframeRequestChannel = this.setupIframeRequestHandlers(this.messageTransport);
981
+ const _this_setupIframeRequestHandlers = this.setupIframeRequestHandlers(this.messageTransport), { requestChannel } = _this_setupIframeRequestHandlers, registration = _object_without_properties_loose(_this_setupIframeRequestHandlers, [
982
+ "requestChannel"
983
+ ]);
984
+ if (this.requestHandlers.adopt(epoch, registration)) {
985
+ this.iframeRequestChannel = requestChannel;
986
+ }
873
987
  }
874
988
  // The recovery callback runs synchronously when the request channel's
875
989
  // timeout calls triggerRecovery. block() must run before we await anything
@@ -960,26 +1074,37 @@ class IframeManager {
960
1074
  }
961
1075
  /**
962
1076
  * Sets up message handlers for iframe → host requests (secureStorage and getSignedSessionId)
1077
+ *
1078
+ * Returns the channel plus one disposer per lifetime group, covering exactly the
1079
+ * handlers this call attached. Scoped per call because three different transports
1080
+ * use it — pooling them would let a display flow take ownership of the shared
1081
+ * container's handlers.
963
1082
  */ setupIframeRequestHandlers(transport) {
964
1083
  // Create a request channel to handle requests FROM iframe
965
1084
  const requestChannel = createRequestChannel(transport);
966
- if (this.secureStorage) {
967
- // Handle getClientKeyShare requests from iframe
968
- requestChannel.handle('getClientKeyShare', this.handleGetClientKeyShare.bind(this));
969
- // Handle setClientKeyShare requests from iframe
970
- requestChannel.handle('setClientKeyShare', this.handleSetClientKeyShare.bind(this));
971
- // Handle removeClientKeyShare requests from iframe
972
- requestChannel.handle('removeClientKeyShare', this.handleRemoveClientKeyShare.bind(this));
973
- }
1085
+ // handle() returns the unsubscribe; each entry here is one registration.
1086
+ // secureStorage: key-share reads/writes, answered identically by any manager
1087
+ // on the page, so they are not part of a detach.
1088
+ const storageDisposers = this.secureStorage ? [
1089
+ requestChannel.handle('getClientKeyShare', this.handleGetClientKeyShare.bind(this)),
1090
+ requestChannel.handle('setClientKeyShare', this.handleSetClientKeyShare.bind(this)),
1091
+ requestChannel.handle('removeClientKeyShare', this.handleRemoveClientKeyShare.bind(this))
1092
+ ] : [];
1093
+ // Session-scoped: both answer from this client's own session state, so a
1094
+ // superseded manager must stop answering them the moment it is detached.
1095
+ const sessionDisposers = [];
974
1096
  if (this.getSignedSessionIdCallback) {
975
- // Handle getSignedSessionId requests from iframe
976
- requestChannel.handle('getSignedSessionId', this.handleGetSignedSessionId.bind(this));
1097
+ sessionDisposers.push(requestChannel.handle('getSignedSessionId', this.handleGetSignedSessionId.bind(this)));
977
1098
  }
1099
+ // The iframe's 401 notification (iframe → host)
978
1100
  if (this.onUnauthorized) {
979
- // Handle the iframe's 401 notification (iframe → host)
980
- requestChannel.handle('notifyUnauthorized', this.handleNotifyUnauthorized.bind(this));
1101
+ sessionDisposers.push(requestChannel.handle('notifyUnauthorized', this.handleNotifyUnauthorized.bind(this)));
981
1102
  }
982
- return requestChannel;
1103
+ return {
1104
+ disposeSessionHandlers: ()=>drainDisposers(sessionDisposers),
1105
+ disposeStorageHandlers: ()=>drainDisposers(storageDisposers),
1106
+ requestChannel
1107
+ };
983
1108
  }
984
1109
  /**
985
1110
  * Handler for the iframe's `notifyUnauthorized` reverse-channel request.
@@ -1302,9 +1427,7 @@ class IframeManager {
1302
1427
  const iframeDisplay = new IframeMessageHandler(transport);
1303
1428
  // Set up iframe request handlers on this transport so the display iframe
1304
1429
  // can access key shares (e.g. for exportPrivateKey) and signed session ID
1305
- if (this.secureStorage || this.getSignedSessionIdCallback) {
1306
- this.setupIframeRequestHandlers(transport);
1307
- }
1430
+ const requestHandlers = this.secureStorage || this.getSignedSessionIdCallback ? this.setupIframeRequestHandlers(transport) : undefined;
1308
1431
  var _this_authMode;
1309
1432
  // if authMode is header: inform iframe the authMode with auth token
1310
1433
  // if authMode is cookie: inform iframe the authMode with empty authToken
@@ -1313,6 +1436,9 @@ class IframeManager {
1313
1436
  iframe,
1314
1437
  iframeDisplay,
1315
1438
  cleanup: ()=>{
1439
+ if (requestHandlers) {
1440
+ disposeAllHandlers(requestHandlers);
1441
+ }
1316
1442
  cleanupBridge();
1317
1443
  iframe.remove();
1318
1444
  }
@@ -1399,9 +1525,7 @@ class IframeManager {
1399
1525
  // Set up iframe request handlers on this transport so the display
1400
1526
  // container can access key shares (e.g. for exportPrivateKey) and the
1401
1527
  // signed session ID — mirrors initializeIframeDisplayForContainer.
1402
- if (this.secureStorage || this.getSignedSessionIdCallback) {
1403
- this.setupIframeRequestHandlers(transport);
1404
- }
1528
+ const requestHandlers = this.secureStorage || this.getSignedSessionIdCallback ? this.setupIframeRequestHandlers(transport) : undefined;
1405
1529
  var _this_authMode;
1406
1530
  // if authMode is header: inform the container of the authMode with auth token
1407
1531
  // if authMode is cookie: inform the container of the authMode with empty authToken
@@ -1409,6 +1533,9 @@ class IframeManager {
1409
1533
  return {
1410
1534
  iframeDisplay,
1411
1535
  cleanup: ()=>{
1536
+ if (requestHandlers) {
1537
+ disposeAllHandlers(requestHandlers);
1538
+ }
1412
1539
  cleanupBridge();
1413
1540
  waasSDKContainer.destroy();
1414
1541
  }
@@ -1418,7 +1545,30 @@ class IframeManager {
1418
1545
  throw error;
1419
1546
  }
1420
1547
  }
1548
+ /**
1549
+ * Stops this manager answering the iframe's *session-scoped* reverse-channel
1550
+ * requests (iframe → host), and nothing else. Call it on a manager superseded
1551
+ * by a newer one for the same page.
1552
+ *
1553
+ * Every bridged manager answers every iframe → host request and the channel is
1554
+ * first-response-wins, so a superseded manager with revoked host callbacks
1555
+ * rejects `getSignedSessionId` instantly and beats the live one's round-trip —
1556
+ * killing wallet creation for the life of the iframe.
1557
+ *
1558
+ * Narrow on purpose. The key-share handlers stay: they proxy host storage by
1559
+ * address, so any manager answers them identically, and the iframe still needs
1560
+ * them to clear shares during {@link cleanup}. Transport, bridge, recovery
1561
+ * subscription and container membership stay too, so in-flight operations still
1562
+ * get their responses (tearing them down makes an in-flight wallet creation hang
1563
+ * forever). Use {@link cleanup} for a real teardown, and call this any time —
1564
+ * including mid-initialization.
1565
+ */ detach() {
1566
+ this.requestHandlers.detach();
1567
+ }
1421
1568
  async cleanup() {
1569
+ // Detach up front, so a logged-out manager stops answering signed-session
1570
+ // requests immediately instead of once the ACK below returns (or times out).
1571
+ this.requestHandlers.markTornDown();
1422
1572
  // Best-effort ACK (the iframe clears its storage), only if already
1423
1573
  // initialized. Do NOT initialize here: that mounts a fresh container just to
1424
1574
  // ACK and then tears it down, churning the shared container across
@@ -1448,6 +1598,9 @@ class IframeManager {
1448
1598
  // detached one); re-arm the unauthorized guard for a future session.
1449
1599
  this.messageTransport = null;
1450
1600
  this.iframeMessageHandler = null;
1601
+ // Key-share handlers go last: the iframe's cleanup above clears each wallet's
1602
+ // shares over this channel and needs a host still answering.
1603
+ this.requestHandlers.disposeStorageHandlers();
1451
1604
  this.iframeRequestChannel = undefined;
1452
1605
  this.unauthorizedHandled = false;
1453
1606
  }
@@ -1464,6 +1617,11 @@ class IframeManager {
1464
1617
  * it — otherwise the request channel's retry timer keeps firing recovery against
1465
1618
  * a torn-down transport on the next session. */ this.cleanupRecoverySubscription = null;
1466
1619
  this.iframe = null;
1620
+ /**
1621
+ * Lifetimes of the shared container's reverse-channel handlers: which of them
1622
+ * a superseded manager stops answering ({@link detach}) and which outlive it
1623
+ * until teardown ({@link cleanup}).
1624
+ */ this.requestHandlers = new IframeRequestHandlerRegistry();
1467
1625
  this.waasSDKContainer = null;
1468
1626
  /** One-shot guard so a burst of 401 notifications triggers a single logout. */ this.unauthorizedHandled = false;
1469
1627
  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.1.7",
3
+ "version": "1.1.9",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "1.1.7",
7
+ "@dynamic-labs-wallet/core": "1.1.9",
8
8
  "@dynamic-labs/logger": "^5.0.0",
9
9
  "@dynamic-labs/message-transport": "^5.0.0"
10
10
  },
@@ -1,4 +1,4 @@
1
- import type { BackupKeySharesToGoogleDriveRequest, BackupKeySharesToICloudRequest, BitcoinConfig, CreateWaasSDKContainer, LinkWalletToBusinessAccountRequest, AddBusinessAccountMemberRequest, AddBusinessAccountSignerRequest, AddBusinessAccountSignerReshareRequest, CreateWalletAccountRequest, CreateWalletAccountResponse, CreateBusinessAccountRequest, DelegateKeySharesRequest, OfflineRecoveryRequest, ExportClientKeysharesRequest, GetWalletRecoveryStateRequest, GetWalletResponse, ImportPrivateKeyRequest, IsPasswordEncryptedRequest, MigrateFromFireblocksRequest, MigrateFromFireblocksResponse, OfflineExportPrivateKeyResponse, RefreshWalletAccountSharesRequest, RequestWithElevatedAccessToken, RequestWithTraceContext, RequiresPasswordForOperationRequest, ReshareRequest, RevokeDelegationRequest, SecureStorageAdapter, SetPasswordRequest, SignMessageRequestBrowser, SignRawMessageRequest, SignTransactionRequest, SignTypedDataRequest, GetPrivateBalanceRequest, GetPrivateBalanceResponse, GetWalletProviderRequest, GetWalletProviderResponse, BalanceWalletProviderTransactionRequest, BalanceWalletProviderTransactionResponse, RegisterDustRequest, RegisterDustResponse, CreateTransferTransactionRequest, CreateTransferTransactionResponse, SubmitTransactionRequest, SubmitTransactionResponse, RevertTransactionRequest, RevertTransactionResponse, UnlockWalletRequest, UpdatePasswordRequest, VerifyPasswordRequest, WaasSDKContainer, WalletRecoveryState, GetBusinessAccountRequest, ListBusinessAccountsRequest, BusinessAccount, BusinessAccountDetail, BusinessAccountList, BusinessAccountMember, BusinessAccountSigner } from '@dynamic-labs-wallet/core';
1
+ import type { BackupKeySharesToGoogleDriveRequest, BackupKeySharesToICloudRequest, BitcoinConfig, CreateWaasSDKContainer, LinkWalletToBusinessAccountRequest, AddBusinessAccountMemberRequest, AddBusinessAccountSignerRequest, AddBusinessAccountSignerReshareRequest, CreateWalletAccountRequest, CreateWalletAccountResponse, CreateBusinessAccountRequest, DelegateKeySharesRequest, OfflineRecoveryRequest, ExportClientKeysharesRequest, GetWalletRecoveryStateRequest, GetWalletResponse, ImportPrivateKeyRequest, IsPasswordEncryptedRequest, MigrateFromFireblocksRequest, MigrateFromFireblocksResponse, OfflineExportPrivateKeyResponse, RefreshWalletAccountSharesRequest, RequestWithElevatedAccessToken, RequestWithTraceContext, RequiresPasswordForOperationRequest, ReshareRequest, RevokeDelegationRequest, SecureStorageAdapter, SetPasswordRequest, SignMessageRequestBrowser, SignRawMessageRequest, SignTransactionRequest, SignTypedDataRequest, GetPrivateBalanceRequest, GetPrivateBalanceResponse, GetWalletProviderRequest, GetWalletProviderResponse, BalanceWalletProviderTransactionRequest, BalanceWalletProviderTransactionResponse, RegisterDustRequest, RegisterDustResponse, CreateTransferTransactionRequest, CreateTransferTransactionResponse, SubmitTransactionRequest, SubmitTransactionResponse, RevertTransactionRequest, RevertTransactionResponse, UnlockWalletRequest, UpdatePasswordRequest, VerifyPasswordRequest, WaasSDKContainer, WalletRecoveryState, GetBusinessAccountRequest, ListBusinessAccountsRequest, BusinessAccount, BusinessAccountActionRequired, BusinessAccountDetail, BusinessAccountList, BusinessAccountMember, BusinessAccountSigner } from '@dynamic-labs-wallet/core';
2
2
  import { AuthMode, WalletOperation } from '@dynamic-labs-wallet/core';
3
3
  import { IframeManager } from './iframeManager/index.js';
4
4
  export declare class DynamicWalletClient extends IframeManager {
@@ -72,7 +72,7 @@ export declare class DynamicWalletClient extends IframeManager {
72
72
  */
73
73
  reshareToNewSignerShareSet({ accountAddress, businessAccountId, targetSignerIdentity, signerType, signedSessionId, authToken, password, targetSignerPassword, elevatedAccessToken, }: RequestWithTraceContext<Omit<AddBusinessAccountSignerReshareRequest, 'chainName'>>): Promise<{
74
74
  shareSetId: string;
75
- }>;
75
+ } | BusinessAccountActionRequired>;
76
76
  requiresPasswordForOperation({ accountAddress, walletOperation, authToken, }: Omit<RequiresPasswordForOperationRequest, 'chainName'>): Promise<boolean>;
77
77
  isPasswordEncrypted({ accountAddress, authToken, }: Omit<IsPasswordEncryptedRequest, 'chainName'>): Promise<boolean>;
78
78
  signMessage({ message, accountAddress, password, signedSessionId, authToken, mfaToken, elevatedAccessToken, context, traceContext, bitcoinConfig, }: RequestWithTraceContext<RequestWithElevatedAccessToken<Omit<SignMessageRequestBrowser, 'chainName'>>>): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,12 @@ export declare class IframeManager {
92
92
  * Used for secureStorage operations and signed session ID retrieval
93
93
  */
94
94
  protected iframeRequestChannel?: RequestChannel<Pick<IframeRequestMessages, 'getClientKeyShare' | 'setClientKeyShare' | 'getSignedSessionId' | 'notifyUnauthorized'>>;
95
+ /**
96
+ * Lifetimes of the shared container's reverse-channel handlers: which of them
97
+ * a superseded manager stops answering ({@link detach}) and which outlive it
98
+ * until teardown ({@link cleanup}).
99
+ */
100
+ private readonly requestHandlers;
95
101
  private static readonly maxAdditionalTrustedOrigins;
96
102
  private static readonly maxTrustedOriginStringLength;
97
103
  private readonly additionalTrustedOrigins;
@@ -220,6 +226,11 @@ export declare class IframeManager {
220
226
  private recoverIframe;
221
227
  /**
222
228
  * Sets up message handlers for iframe → host requests (secureStorage and getSignedSessionId)
229
+ *
230
+ * Returns the channel plus one disposer per lifetime group, covering exactly the
231
+ * handlers this call attached. Scoped per call because three different transports
232
+ * use it — pooling them would let a display flow take ownership of the shared
233
+ * container's handlers.
223
234
  */
224
235
  private setupIframeRequestHandlers;
225
236
  /**
@@ -320,6 +331,25 @@ export declare class IframeManager {
320
331
  iframeDisplay: IframeMessageHandler;
321
332
  cleanup: () => void;
322
333
  }>;
334
+ /**
335
+ * Stops this manager answering the iframe's *session-scoped* reverse-channel
336
+ * requests (iframe → host), and nothing else. Call it on a manager superseded
337
+ * by a newer one for the same page.
338
+ *
339
+ * Every bridged manager answers every iframe → host request and the channel is
340
+ * first-response-wins, so a superseded manager with revoked host callbacks
341
+ * rejects `getSignedSessionId` instantly and beats the live one's round-trip —
342
+ * killing wallet creation for the life of the iframe.
343
+ *
344
+ * Narrow on purpose. The key-share handlers stay: they proxy host storage by
345
+ * address, so any manager answers them identically, and the iframe still needs
346
+ * them to clear shares during {@link cleanup}. Transport, bridge, recovery
347
+ * subscription and container membership stay too, so in-flight operations still
348
+ * get their responses (tearing them down makes an in-flight wallet creation hang
349
+ * forever). Use {@link cleanup} for a real teardown, and call this any time —
350
+ * including mid-initialization.
351
+ */
352
+ detach(): void;
323
353
  cleanup(): Promise<void>;
324
354
  }
325
355
  //# sourceMappingURL=IframeManager.d.ts.map
@@ -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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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * One `setupIframeRequestHandlers` call's worth of registrations, grouped by
3
+ * lifetime.
4
+ */
5
+ export type IframeRequestHandlerRegistration = {
6
+ /**
7
+ * Unregisters the handlers that answer from this client's own session state
8
+ * (`getSignedSessionId`, `notifyUnauthorized`) — the ones a superseded manager
9
+ * must stop answering.
10
+ */
11
+ disposeSessionHandlers: VoidFunction;
12
+ /**
13
+ * Unregisters the handlers that proxy host key-share storage by address. Any
14
+ * manager on the page answers them identically, so they outlive a detach.
15
+ */
16
+ disposeStorageHandlers: VoidFunction;
17
+ };
18
+ /**
19
+ * Registry generations, captured before an await so a registration landing
20
+ * afterwards can be told apart from a current one. See {@link IframeRequestHandlerRegistry.adopt}.
21
+ */
22
+ export type IframeRequestHandlerEpoch = {
23
+ detachGeneration: number;
24
+ cleanupGeneration: number;
25
+ };
26
+ /** Unregisters every handler in `disposers` and empties the list. */
27
+ export declare const drainDisposers: (disposers: VoidFunction[]) => void;
28
+ /** Unregisters both halves of a registration. */
29
+ export declare const disposeAllHandlers: ({ disposeSessionHandlers, disposeStorageHandlers, }: IframeRequestHandlerRegistration) => void;
30
+ /**
31
+ * Lifetime bookkeeping for the iframe → host ("reverse channel") request
32
+ * handlers one IframeManager has attached to the shared container.
33
+ *
34
+ * A page has one WaaS iframe but every client built on it stays bridged to it,
35
+ * so the reverse channel is first-response-wins: a superseded manager with a
36
+ * revoked session callback rejects `getSignedSessionId` instantly and beats the
37
+ * live client's round-trip. This registry is what lets such a manager leave the
38
+ * race (see {@link detach}) without disturbing the key-share handlers, which
39
+ * the iframe still calls back during teardown.
40
+ */
41
+ export declare class IframeRequestHandlerRegistry {
42
+ /**
43
+ * Lists, not single entries: `initializeMessageTransport` checks its guard
44
+ * *then* awaits, so one manager can end up registered on two transports that
45
+ * both answer, and overwriting would orphan the first.
46
+ */
47
+ private readonly sessionDisposers;
48
+ private readonly storageDisposers;
49
+ /** Bumped by {@link detach}. */
50
+ private detachGeneration;
51
+ /** Bumped by {@link markTornDown}. */
52
+ private cleanupGeneration;
53
+ get sessionHandlerCount(): number;
54
+ get storageHandlerCount(): number;
55
+ /** Capture the current generations before awaiting the iframe. */
56
+ snapshot(): IframeRequestHandlerEpoch;
57
+ /**
58
+ * Takes ownership of a registration whose setup started at `epoch`, keeping
59
+ * whichever halves are still legitimate, and reports whether the registration
60
+ * is the manager's current one (the caller's channel is only worth keeping
61
+ * then). The host doesn't await `initialize()`, so a detach or a cleanup can
62
+ * land while the iframe is still loading — which one moved decides:
63
+ *
64
+ * - **Torn down** (cleanup): keep nothing. The lists this would land on are
65
+ * already drained, so anything tracked here would stay attached to a
66
+ * logged-out manager forever.
67
+ * - **Superseded** (detach): the session handlers would put this manager back
68
+ * into the race, but its key-share handlers still answer honestly — and on a
69
+ * first initialization they are the only ones the page has.
70
+ * - **Neither**: track both.
71
+ */
72
+ adopt(epoch: IframeRequestHandlerEpoch, registration: IframeRequestHandlerRegistration): boolean;
73
+ /**
74
+ * Stops answering the session-scoped requests, and nothing else. Safe to call
75
+ * repeatedly, and mid-initialization: a registration still in flight is
76
+ * adopted as "superseded".
77
+ */
78
+ detach(): void;
79
+ /**
80
+ * First phase of a teardown: leave the session race immediately, and mark
81
+ * anything still initializing as torn down rather than merely superseded. The
82
+ * storage handlers stay until {@link disposeStorageHandlers}, because the
83
+ * iframe's own cleanup clears each wallet's shares over this channel.
84
+ */
85
+ markTornDown(): void;
86
+ /** Second phase of a teardown: drop the key-share handlers, once the iframe has finished calling back. */
87
+ disposeStorageHandlers(): void;
88
+ }
89
+ //# sourceMappingURL=IframeRequestHandlerRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IframeRequestHandlerRegistry.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/IframeRequestHandlerRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC7C;;;;OAIG;IACH,sBAAsB,EAAE,YAAY,CAAC;IACrC;;;OAGG;IACH,sBAAsB,EAAE,YAAY,CAAC;CACtC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,cAAc,cAAe,YAAY,EAAE,KAAG,IAG1D,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,wDAG5B,gCAAgC,KAAG,IAGrC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,4BAA4B;IACvC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,gCAAgC;IAChC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,sCAAsC;IACtC,OAAO,CAAC,iBAAiB,CAAK;IAE9B,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,kEAAkE;IAC3D,QAAQ,IAAI,yBAAyB;IAI5C;;;;;;;;;;;;;;OAcG;IACI,KAAK,CAAC,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,gCAAgC,GAAG,OAAO;IAiBvG;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAKrB;;;;;OAKG;IACI,YAAY,IAAI,IAAI;IAK3B,0GAA0G;IACnG,sBAAsB,IAAI,IAAI;CAGtC"}
@@ -1,4 +1,4 @@
1
- import type { AuthMode, BackupKeySharesToGoogleDriveRequest, BackupKeySharesToICloudRequest, LinkWalletToBusinessAccountRequest, AddBusinessAccountMemberRequest, AddBusinessAccountSignerRequest, AddBusinessAccountSignerReshareRequest, CreateWalletAccountRequest, CreateWalletAccountResponse, CreateBusinessAccountRequest, DelegateKeySharesRequest, OfflineRecoveryRequest, ExportClientKeysharesFromGoogleDriveRequest, ExportClientKeysharesRequest, ExportPrivateKeyRequest, GetWalletRecoveryStateRequest, GetWalletRequest, GetAllWalletsRequest, GetWalletResponse, GetWalletsRequest, IframeRequestMessages, ImportPrivateKeyRequest, IsPasswordEncryptedRequest, MessageTransportErrorResponse, MigrateFromFireblocksRequest, MigrateFromFireblocksResponse, OfflineExportPrivateKeyRequest, OfflineExportPrivateKeyResponse, FindAleoOwnedRecordsRequest, FindAleoOwnedRecordsResponse, ProveAleoTransactionRequest, ProveAleoTransactionResponse, RefreshWalletAccountSharesRequest, RequestWithElevatedAccessToken, RequestWithTraceContext, RequiresPasswordForOperationRequest, ReshareRequest, RevokeDelegationRequest, SetPasswordRequest, SignMessageRequest, SignRawMessageRequest, SignTransactionRequest, SignTypedDataRequest, TraceContext, GetPrivateBalanceRequest, GetPrivateBalanceResponse, GetWalletProviderRequest, GetWalletProviderResponse, BalanceWalletProviderTransactionRequest, BalanceWalletProviderTransactionResponse, RegisterDustRequest, RegisterDustResponse, CreateTransferTransactionRequest, CreateTransferTransactionResponse, SubmitTransactionRequest, SubmitTransactionResponse, RevertTransactionRequest, RevertTransactionResponse, UnlockWalletRequest, UpdatePasswordRequest, VerifyPasswordRequest, WalletRecoveryState, GetBusinessAccountRequest, ListBusinessAccountsRequest, BusinessAccount, BusinessAccountDetail, BusinessAccountList, BusinessAccountMember, BusinessAccountSigner } from '@dynamic-labs-wallet/core';
1
+ import type { AuthMode, BackupKeySharesToGoogleDriveRequest, BackupKeySharesToICloudRequest, LinkWalletToBusinessAccountRequest, AddBusinessAccountMemberRequest, AddBusinessAccountSignerRequest, AddBusinessAccountSignerReshareRequest, CreateWalletAccountRequest, CreateWalletAccountResponse, CreateBusinessAccountRequest, DelegateKeySharesRequest, OfflineRecoveryRequest, ExportClientKeysharesFromGoogleDriveRequest, ExportClientKeysharesRequest, ExportPrivateKeyRequest, GetWalletRecoveryStateRequest, GetWalletRequest, GetAllWalletsRequest, GetWalletResponse, GetWalletsRequest, IframeRequestMessages, ImportPrivateKeyRequest, IsPasswordEncryptedRequest, MessageTransportErrorResponse, MigrateFromFireblocksRequest, MigrateFromFireblocksResponse, OfflineExportPrivateKeyRequest, OfflineExportPrivateKeyResponse, FindAleoOwnedRecordsRequest, FindAleoOwnedRecordsResponse, ProveAleoTransactionRequest, ProveAleoTransactionResponse, RefreshWalletAccountSharesRequest, RequestWithElevatedAccessToken, RequestWithTraceContext, RequiresPasswordForOperationRequest, ReshareRequest, RevokeDelegationRequest, SetPasswordRequest, SignMessageRequest, SignRawMessageRequest, SignTransactionRequest, SignTypedDataRequest, TraceContext, GetPrivateBalanceRequest, GetPrivateBalanceResponse, GetWalletProviderRequest, GetWalletProviderResponse, BalanceWalletProviderTransactionRequest, BalanceWalletProviderTransactionResponse, RegisterDustRequest, RegisterDustResponse, CreateTransferTransactionRequest, CreateTransferTransactionResponse, SubmitTransactionRequest, SubmitTransactionResponse, RevertTransactionRequest, RevertTransactionResponse, UnlockWalletRequest, UpdatePasswordRequest, VerifyPasswordRequest, WalletRecoveryState, GetBusinessAccountRequest, ListBusinessAccountsRequest, BusinessAccount, BusinessAccountActionRequired, BusinessAccountDetail, BusinessAccountList, BusinessAccountMember, BusinessAccountSigner } from '@dynamic-labs-wallet/core';
2
2
  import { type MessageTransportWithDefaultOrigin, type RequestChannel } from '@dynamic-labs/message-transport';
3
3
  export declare class IframeMessageHandler {
4
4
  requestChannel: RequestChannel<IframeRequestMessages>;
@@ -15,7 +15,7 @@ export declare class IframeMessageHandler {
15
15
  addBusinessAccountSigner(request: RequestWithTraceContext<AddBusinessAccountSignerRequest>): Promise<BusinessAccountSigner>;
16
16
  reshareToNewSignerShareSet(request: RequestWithTraceContext<AddBusinessAccountSignerReshareRequest>): Promise<{
17
17
  shareSetId: string;
18
- }>;
18
+ } | BusinessAccountActionRequired>;
19
19
  createWalletAccount(request: RequestWithTraceContext<CreateWalletAccountRequest>): Promise<CreateWalletAccountResponse>;
20
20
  requiresPasswordForOperation(request: RequestWithTraceContext<RequiresPasswordForOperationRequest>): Promise<boolean>;
21
21
  signMessage(request: RequestWithTraceContext<RequestWithElevatedAccessToken<SignMessageRequest>>): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"iframeMessageHandler.d.ts","sourceRoot":"","sources":["../../src/services/iframeMessageHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iframeMessageHandler.d.ts","sourceRoot":"","sources":["../../src/services/iframeMessageHandler.ts"],"names":[],"mappings":"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"}