@dynamic-labs-wallet/browser-wallet-client 0.0.323 → 0.0.325

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.js CHANGED
@@ -218,6 +218,7 @@ const setupMessageTransportBridge = (messageTransport$1, iframe, iframeOrigin)=>
218
218
  */ window.addEventListener('message', handleIncomingMessage);
219
219
  };
220
220
 
221
+ const FRAME_ANCESTORS_QUERY_PARAM = 'frameAncestors';
221
222
  class IframeManager {
222
223
  // Simply load the iframe from localhost
223
224
  async initialize() {
@@ -492,7 +493,7 @@ class IframeManager {
492
493
  iframe.style.border = 'none';
493
494
  iframe.style.pointerEvents = 'none';
494
495
  }
495
- setIframeSource(iframe) {
496
+ buildIframeUrlSearchParams() {
496
497
  var _this_instanceId, _this_sdkVersion, _this_baseClientKeysharesRelayApiUrl;
497
498
  const params = new URLSearchParams({
498
499
  instanceId: (_this_instanceId = this.instanceId) != null ? _this_instanceId : '',
@@ -505,6 +506,44 @@ class IframeManager {
505
506
  baseClientKeysharesRelayApiUrl: (_this_baseClientKeysharesRelayApiUrl = this.baseClientKeysharesRelayApiUrl) != null ? _this_baseClientKeysharesRelayApiUrl : '',
506
507
  secureStorage: this.secureStorage ? 'true' : ''
507
508
  });
509
+ const seenAdditional = new Set();
510
+ for (const raw of this.additionalTrustedOrigins){
511
+ const trimmed = raw.trim();
512
+ if (!trimmed) {
513
+ continue;
514
+ }
515
+ if (trimmed.length > IframeManager.maxTrustedOriginStringLength) {
516
+ this.logger.warn('Skipping additionalTrustedOrigin (exceeds max length)');
517
+ continue;
518
+ }
519
+ try {
520
+ const u = new URL(trimmed);
521
+ if (u.protocol !== 'http:' && u.protocol !== 'https:') {
522
+ this.logger.warn('Skipping additionalTrustedOrigin (unsupported scheme)', {
523
+ trimmed
524
+ });
525
+ continue;
526
+ }
527
+ const origin = u.origin;
528
+ if (seenAdditional.has(origin)) {
529
+ continue;
530
+ }
531
+ if (seenAdditional.size >= IframeManager.maxAdditionalTrustedOrigins) {
532
+ this.logger.warn('additionalTrustedOrigin limit reached, extra entries ignored');
533
+ break;
534
+ }
535
+ seenAdditional.add(origin);
536
+ params.append(FRAME_ANCESTORS_QUERY_PARAM, origin);
537
+ } catch (e) {
538
+ this.logger.warn('Skipping invalid additionalTrustedOrigin', {
539
+ trimmed
540
+ });
541
+ }
542
+ }
543
+ return params;
544
+ }
545
+ setIframeSource(iframe) {
546
+ const params = this.buildIframeUrlSearchParams();
508
547
  iframe.src = `${this.iframeDomain}/waas-v1/${this.environmentId}?${params.toString()}`;
509
548
  }
510
549
  /**
@@ -538,18 +577,7 @@ class IframeManager {
538
577
  iframe.setAttribute('title', 'Dynamic Wallet Storage');
539
578
  iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin');
540
579
  iframe.setAttribute('referrerpolicy', 'origin');
541
- var _this_instanceId, _this_sdkVersion1, _this_baseClientKeysharesRelayApiUrl;
542
- const params = new URLSearchParams({
543
- instanceId: (_this_instanceId = this.instanceId) != null ? _this_instanceId : '',
544
- hostOrigin: window.location.origin,
545
- environmentId: this.environmentId,
546
- baseApiUrl: this.baseApiUrl,
547
- baseMPCRelayApiUrl: this.baseMPCRelayApiUrl,
548
- sdkVersion: (_this_sdkVersion1 = this.sdkVersion) != null ? _this_sdkVersion1 : '',
549
- debug: String(this.debug),
550
- baseClientKeysharesRelayApiUrl: (_this_baseClientKeysharesRelayApiUrl = this.baseClientKeysharesRelayApiUrl) != null ? _this_baseClientKeysharesRelayApiUrl : '',
551
- secureStorage: this.secureStorage ? 'true' : ''
552
- });
580
+ const params = this.buildIframeUrlSearchParams();
553
581
  iframe.src = `${this.iframeDomain}/waas-v1/${this.environmentId}?${params.toString()}`;
554
582
  this.logger.debug('Creating iframe with src:', iframe.src);
555
583
  // Add iframe to the provided container
@@ -644,7 +672,7 @@ class IframeManager {
644
672
  this.iframe = null;
645
673
  }
646
674
  }
647
- constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = core.AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl }, internalOptions){
675
+ constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = core.AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins }, internalOptions){
648
676
  this.logger = logger;
649
677
  this.instanceId = null;
650
678
  this.iframeDomain = null;
@@ -659,6 +687,9 @@ class IframeManager {
659
687
  this.chainName = chainName;
660
688
  this.sdkVersion = sdkVersion;
661
689
  this.baseClientKeysharesRelayApiUrl = baseClientKeysharesRelayApiUrl;
690
+ this.additionalTrustedOrigins = additionalTrustedOrigins ? [
691
+ ...additionalTrustedOrigins
692
+ ] : [];
662
693
  // Set secure storage adapter if provided (internal use only)
663
694
  if (internalOptions == null ? void 0 : internalOptions.secureStorage) {
664
695
  this.secureStorage = internalOptions.secureStorage;
@@ -684,6 +715,8 @@ IframeManager.iframeLoadAttempts = 0;
684
715
  IframeManager.maxRetryAttempts = 1;
685
716
  IframeManager.sharedIframe = null;
686
717
  IframeManager.iframeInstanceCount = 0;
718
+ IframeManager.maxAdditionalTrustedOrigins = 32;
719
+ IframeManager.maxTrustedOriginStringLength = 200;
687
720
 
688
721
  class DynamicWalletClient extends IframeManager {
689
722
  async withHandler(operation) {
@@ -1014,7 +1047,7 @@ class DynamicWalletClient extends IframeManager {
1014
1047
  traceContext
1015
1048
  }));
1016
1049
  }
1017
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = core.AuthMode.HEADER }, internalOptions){
1050
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = core.AuthMode.HEADER, additionalTrustedOrigins }, internalOptions){
1018
1051
  super({
1019
1052
  environmentId,
1020
1053
  authToken,
@@ -1024,7 +1057,8 @@ class DynamicWalletClient extends IframeManager {
1024
1057
  chainName,
1025
1058
  sdkVersion,
1026
1059
  debug,
1027
- authMode
1060
+ authMode,
1061
+ additionalTrustedOrigins
1028
1062
  }, internalOptions);
1029
1063
  // Note: secureStorage and getSignedSessionId are already set by IframeManager constructor
1030
1064
  }
package/index.esm.js CHANGED
@@ -217,6 +217,7 @@ const setupMessageTransportBridge = (messageTransport, iframe, iframeOrigin)=>{
217
217
  */ window.addEventListener('message', handleIncomingMessage);
218
218
  };
219
219
 
220
+ const FRAME_ANCESTORS_QUERY_PARAM = 'frameAncestors';
220
221
  class IframeManager {
221
222
  // Simply load the iframe from localhost
222
223
  async initialize() {
@@ -491,7 +492,7 @@ class IframeManager {
491
492
  iframe.style.border = 'none';
492
493
  iframe.style.pointerEvents = 'none';
493
494
  }
494
- setIframeSource(iframe) {
495
+ buildIframeUrlSearchParams() {
495
496
  var _this_instanceId, _this_sdkVersion, _this_baseClientKeysharesRelayApiUrl;
496
497
  const params = new URLSearchParams({
497
498
  instanceId: (_this_instanceId = this.instanceId) != null ? _this_instanceId : '',
@@ -504,6 +505,44 @@ class IframeManager {
504
505
  baseClientKeysharesRelayApiUrl: (_this_baseClientKeysharesRelayApiUrl = this.baseClientKeysharesRelayApiUrl) != null ? _this_baseClientKeysharesRelayApiUrl : '',
505
506
  secureStorage: this.secureStorage ? 'true' : ''
506
507
  });
508
+ const seenAdditional = new Set();
509
+ for (const raw of this.additionalTrustedOrigins){
510
+ const trimmed = raw.trim();
511
+ if (!trimmed) {
512
+ continue;
513
+ }
514
+ if (trimmed.length > IframeManager.maxTrustedOriginStringLength) {
515
+ this.logger.warn('Skipping additionalTrustedOrigin (exceeds max length)');
516
+ continue;
517
+ }
518
+ try {
519
+ const u = new URL(trimmed);
520
+ if (u.protocol !== 'http:' && u.protocol !== 'https:') {
521
+ this.logger.warn('Skipping additionalTrustedOrigin (unsupported scheme)', {
522
+ trimmed
523
+ });
524
+ continue;
525
+ }
526
+ const origin = u.origin;
527
+ if (seenAdditional.has(origin)) {
528
+ continue;
529
+ }
530
+ if (seenAdditional.size >= IframeManager.maxAdditionalTrustedOrigins) {
531
+ this.logger.warn('additionalTrustedOrigin limit reached, extra entries ignored');
532
+ break;
533
+ }
534
+ seenAdditional.add(origin);
535
+ params.append(FRAME_ANCESTORS_QUERY_PARAM, origin);
536
+ } catch (e) {
537
+ this.logger.warn('Skipping invalid additionalTrustedOrigin', {
538
+ trimmed
539
+ });
540
+ }
541
+ }
542
+ return params;
543
+ }
544
+ setIframeSource(iframe) {
545
+ const params = this.buildIframeUrlSearchParams();
507
546
  iframe.src = `${this.iframeDomain}/waas-v1/${this.environmentId}?${params.toString()}`;
508
547
  }
509
548
  /**
@@ -537,18 +576,7 @@ class IframeManager {
537
576
  iframe.setAttribute('title', 'Dynamic Wallet Storage');
538
577
  iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin');
539
578
  iframe.setAttribute('referrerpolicy', 'origin');
540
- var _this_instanceId, _this_sdkVersion1, _this_baseClientKeysharesRelayApiUrl;
541
- const params = new URLSearchParams({
542
- instanceId: (_this_instanceId = this.instanceId) != null ? _this_instanceId : '',
543
- hostOrigin: window.location.origin,
544
- environmentId: this.environmentId,
545
- baseApiUrl: this.baseApiUrl,
546
- baseMPCRelayApiUrl: this.baseMPCRelayApiUrl,
547
- sdkVersion: (_this_sdkVersion1 = this.sdkVersion) != null ? _this_sdkVersion1 : '',
548
- debug: String(this.debug),
549
- baseClientKeysharesRelayApiUrl: (_this_baseClientKeysharesRelayApiUrl = this.baseClientKeysharesRelayApiUrl) != null ? _this_baseClientKeysharesRelayApiUrl : '',
550
- secureStorage: this.secureStorage ? 'true' : ''
551
- });
579
+ const params = this.buildIframeUrlSearchParams();
552
580
  iframe.src = `${this.iframeDomain}/waas-v1/${this.environmentId}?${params.toString()}`;
553
581
  this.logger.debug('Creating iframe with src:', iframe.src);
554
582
  // Add iframe to the provided container
@@ -643,7 +671,7 @@ class IframeManager {
643
671
  this.iframe = null;
644
672
  }
645
673
  }
646
- constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl }, internalOptions){
674
+ constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins }, internalOptions){
647
675
  this.logger = logger;
648
676
  this.instanceId = null;
649
677
  this.iframeDomain = null;
@@ -658,6 +686,9 @@ class IframeManager {
658
686
  this.chainName = chainName;
659
687
  this.sdkVersion = sdkVersion;
660
688
  this.baseClientKeysharesRelayApiUrl = baseClientKeysharesRelayApiUrl;
689
+ this.additionalTrustedOrigins = additionalTrustedOrigins ? [
690
+ ...additionalTrustedOrigins
691
+ ] : [];
661
692
  // Set secure storage adapter if provided (internal use only)
662
693
  if (internalOptions == null ? void 0 : internalOptions.secureStorage) {
663
694
  this.secureStorage = internalOptions.secureStorage;
@@ -683,6 +714,8 @@ IframeManager.iframeLoadAttempts = 0;
683
714
  IframeManager.maxRetryAttempts = 1;
684
715
  IframeManager.sharedIframe = null;
685
716
  IframeManager.iframeInstanceCount = 0;
717
+ IframeManager.maxAdditionalTrustedOrigins = 32;
718
+ IframeManager.maxTrustedOriginStringLength = 200;
686
719
 
687
720
  class DynamicWalletClient extends IframeManager {
688
721
  async withHandler(operation) {
@@ -1013,7 +1046,7 @@ class DynamicWalletClient extends IframeManager {
1013
1046
  traceContext
1014
1047
  }));
1015
1048
  }
1016
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = AuthMode.HEADER }, internalOptions){
1049
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = AuthMode.HEADER, additionalTrustedOrigins }, internalOptions){
1017
1050
  super({
1018
1051
  environmentId,
1019
1052
  authToken,
@@ -1023,7 +1056,8 @@ class DynamicWalletClient extends IframeManager {
1023
1056
  chainName,
1024
1057
  sdkVersion,
1025
1058
  debug,
1026
- authMode
1059
+ authMode,
1060
+ additionalTrustedOrigins
1027
1061
  }, internalOptions);
1028
1062
  // Note: secureStorage and getSignedSessionId are already set by IframeManager constructor
1029
1063
  }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser-wallet-client",
3
- "version": "0.0.323",
3
+ "version": "0.0.325",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "0.0.323",
7
+ "@dynamic-labs-wallet/core": "0.0.325",
8
8
  "@dynamic-labs/logger": "^4.45.2",
9
9
  "@dynamic-labs/message-transport": "^4.45.2"
10
10
  },
@@ -0,0 +1,88 @@
1
+ import type { BackupKeySharesToGoogleDriveRequest, BackupKeySharesToICloudRequest, BitcoinConfig, CreateWalletAccountRequest, CreateWalletAccountResponse, DelegateKeySharesRequest, ExportClientKeysharesRequest, GetWalletRecoveryStateRequest, GetWalletResponse, ImportPrivateKeyRequest, IsPasswordEncryptedRequest, OfflineExportPrivateKeyResponse, RefreshWalletAccountSharesRequest, RequestWithElevatedAccessToken, RequestWithTraceContext, RequiresPasswordForOperationRequest, ReshareRequest, RevokeDelegationRequest, SecureStorageAdapter, SetPasswordRequest, SignMessageRequestBrowser, SignRawMessageRequest, SignTransactionRequest, SignTypedDataRequest, UnlockWalletRequest, UpdatePasswordRequest, VerifyPasswordRequest, WalletRecoveryState } from '@dynamic-labs-wallet/core';
2
+ import { AuthMode, WalletOperation } from '@dynamic-labs-wallet/core';
3
+ import { IframeManager } from './iframeManager/index.js';
4
+ export declare class DynamicWalletClient extends IframeManager {
5
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode, additionalTrustedOrigins, }: {
6
+ environmentId: string;
7
+ authToken: string;
8
+ baseApiUrl: string;
9
+ baseMPCRelayApiUrl: string;
10
+ chainName: string;
11
+ sdkVersion?: string;
12
+ debug?: boolean;
13
+ authMode?: AuthMode;
14
+ baseClientKeysharesRelayApiUrl?: string;
15
+ additionalTrustedOrigins?: readonly string[];
16
+ }, internalOptions?: {
17
+ secureStorage?: SecureStorageAdapter;
18
+ getSignedSessionId?: () => Promise<string>;
19
+ });
20
+ private withHandler;
21
+ getWallets(): Promise<GetWalletResponse[]>;
22
+ getAllWallets(): Promise<GetWalletResponse[]>;
23
+ getWallet({ accountAddress, walletOperation, signedSessionId, authToken, }: {
24
+ accountAddress: string;
25
+ walletOperation?: WalletOperation;
26
+ signedSessionId: string;
27
+ authToken?: string;
28
+ }): Promise<GetWalletResponse>;
29
+ getWalletRecoveryState({ accountAddress, authToken, signedSessionId, password, traceContext, }: RequestWithTraceContext<Omit<GetWalletRecoveryStateRequest, 'chainName'>>): Promise<WalletRecoveryState>;
30
+ unlockWallet({ accountAddress, password, signedSessionId, authToken, traceContext, }: RequestWithTraceContext<Omit<UnlockWalletRequest, 'chainName'>>): Promise<GetWalletResponse>;
31
+ createWalletAccount({ thresholdSignatureScheme, password, signedSessionId, authToken, traceContext, bitcoinConfig, }: RequestWithTraceContext<Omit<CreateWalletAccountRequest, 'chainName'>>): Promise<CreateWalletAccountResponse>;
32
+ requiresPasswordForOperation({ accountAddress, walletOperation, authToken, }: Omit<RequiresPasswordForOperationRequest, 'chainName'>): Promise<boolean>;
33
+ isPasswordEncrypted({ accountAddress, authToken, }: Omit<IsPasswordEncryptedRequest, 'chainName'>): Promise<boolean>;
34
+ signMessage({ message, accountAddress, password, signedSessionId, authToken, mfaToken, elevatedAccessToken, context, traceContext, bitcoinConfig, }: RequestWithTraceContext<RequestWithElevatedAccessToken<Omit<SignMessageRequestBrowser, 'chainName'>>>): Promise<string>;
35
+ signRawMessage({ message, accountAddress, password, signedSessionId, authToken, mfaToken, elevatedAccessToken, context, traceContext, bitcoinConfig, }: RequestWithTraceContext<RequestWithElevatedAccessToken<Omit<SignRawMessageRequest, 'chainName'>>>): Promise<string>;
36
+ /**
37
+ * Signs a transaction and returns the signature, @transaction is a string of the serialized transaction
38
+ * EVM:
39
+ * transaction = serializeTransaction()
40
+ * SOL:
41
+ * const messageBytes = transaction.serializeMessage();
42
+ * const messageToSign = Buffer.from(messageBytes).toString("hex");
43
+ * SUI:
44
+ * const txBytes = await txb.build({ client });
45
+ * const txString = Buffer.from(txBytes).toString("hex");
46
+ */
47
+ signTransaction({ senderAddress, transaction, password, signedSessionId, authToken, mfaToken, elevatedAccessToken, chainId, traceContext, bitcoinConfig, }: RequestWithTraceContext<RequestWithElevatedAccessToken<Omit<SignTransactionRequest, 'chainName'>>>): Promise<string>;
48
+ signTypedData({ accountAddress, typedData, password, signedSessionId, authToken, mfaToken, elevatedAccessToken, traceContext, }: RequestWithTraceContext<RequestWithElevatedAccessToken<Omit<SignTypedDataRequest, 'chainName'>>>): Promise<string>;
49
+ backupKeySharesToGoogleDrive({ accountAddress, password, signedSessionId, authToken, traceContext, }: RequestWithTraceContext<Omit<BackupKeySharesToGoogleDriveRequest, 'chainName'>>): Promise<void>;
50
+ backupKeySharesToICloud({ accountAddress, password, signedSessionId, authToken, traceContext, }: RequestWithTraceContext<Omit<BackupKeySharesToICloudRequest, 'chainName'>>): Promise<void>;
51
+ displayICloudSignIn({ displayContainer }: {
52
+ displayContainer: HTMLElement;
53
+ }): Promise<void>;
54
+ hideICloudSignIn(): Promise<void>;
55
+ isICloudAuthenticated(): Promise<boolean>;
56
+ delegateKeyShares({ accountAddress, password, signedSessionId, authToken, mfaToken, traceContext, }: RequestWithTraceContext<Omit<DelegateKeySharesRequest, 'chainName'>>): Promise<void>;
57
+ revokeDelegation({ accountAddress, password, signedSessionId, authToken, mfaToken, traceContext, }: RequestWithTraceContext<Omit<RevokeDelegationRequest, 'chainName'>>): Promise<void>;
58
+ exportClientKeysharesFromGoogleDrive({ accountAddress, password, signedSessionId, authToken, traceContext, }: RequestWithTraceContext<{
59
+ accountAddress: string;
60
+ password?: string;
61
+ signedSessionId: string;
62
+ authToken?: string;
63
+ }>): Promise<void>;
64
+ refreshWalletAccountShares({ accountAddress, password, signedSessionId, authToken, mfaToken, elevatedAccessToken, traceContext, }: RequestWithTraceContext<RequestWithElevatedAccessToken<Omit<RefreshWalletAccountSharesRequest, 'chainName'>>>): Promise<void>;
65
+ reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId, authToken, mfaToken, elevatedAccessToken, traceContext, }: RequestWithTraceContext<RequestWithElevatedAccessToken<Omit<ReshareRequest, 'chainName'>>>): Promise<void>;
66
+ exportPrivateKey({ accountAddress, elevatedAccessToken, displayContainer, password, signedSessionId, authToken, mfaToken, traceContext, bitcoinConfig, }: RequestWithTraceContext<RequestWithElevatedAccessToken<{
67
+ accountAddress: string;
68
+ displayContainer: HTMLElement;
69
+ password?: string;
70
+ signedSessionId: string;
71
+ authToken?: string;
72
+ mfaToken?: string;
73
+ bitcoinConfig?: BitcoinConfig;
74
+ }>>): Promise<void>;
75
+ verifyPassword({ accountAddress, password, walletOperation, signedSessionId, authToken, traceContext, }: RequestWithTraceContext<Omit<VerifyPasswordRequest, 'chainName'>>): Promise<void>;
76
+ updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, authToken, passwordUpdateBatchId, traceContext, }: RequestWithTraceContext<Omit<UpdatePasswordRequest, 'chainName'>>): Promise<void>;
77
+ setPassword({ accountAddress, newPassword, signedSessionId, authToken, passwordUpdateBatchId, traceContext, }: RequestWithTraceContext<Omit<SetPasswordRequest, 'chainName'>>): Promise<void>;
78
+ importPrivateKey({ privateKey, thresholdSignatureScheme, password, signedSessionId, authToken, publicAddressCheck, addressType, traceContext, legacyWalletId, }: RequestWithTraceContext<Omit<ImportPrivateKeyRequest, 'chainName'>>): Promise<CreateWalletAccountResponse>;
79
+ exportClientKeyshares({ accountAddress, password, signedSessionId, authToken, traceContext, }: RequestWithTraceContext<Omit<ExportClientKeysharesRequest, 'chainName'>>): Promise<void>;
80
+ /**
81
+ * keyShares is stringified list of EcdsaKeygenResult[] and Ed25519KeygenResult[]
82
+ */
83
+ offlineExportPrivateKey({ keyShares, derivationPath, traceContext, }: RequestWithTraceContext<{
84
+ keyShares: string[];
85
+ derivationPath?: string;
86
+ }>): Promise<OfflineExportPrivateKeyResponse>;
87
+ }
88
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ import { AuthMode, type IframeRequestMessages, type SecureStorageAdapter } from '@dynamic-labs-wallet/core';
2
+ import { type MessageTransportWithDefaultOrigin, type RequestChannel } from '@dynamic-labs/message-transport';
3
+ import { iframeMessageHandler } from '../../services/iframeMessageHandler.js';
4
+ export declare class IframeManager {
5
+ protected chainName: string;
6
+ protected logger: import("@dynamic-labs/logger").Logger;
7
+ instanceId: string | null;
8
+ iframeDomain: string | null;
9
+ environmentId: string;
10
+ private readonly authToken;
11
+ private readonly authMode;
12
+ baseApiUrl: string;
13
+ baseMPCRelayApiUrl: string;
14
+ protected messageTransport: MessageTransportWithDefaultOrigin | null;
15
+ protected iframeMessageHandler: iframeMessageHandler | null;
16
+ private static iframeLoadPromise;
17
+ protected iframe: HTMLIFrameElement | null;
18
+ private readonly debug;
19
+ static iframeLoadTimeout: number;
20
+ private static iframeLoadAttempts;
21
+ private static readonly maxRetryAttempts;
22
+ baseClientKeysharesRelayApiUrl: string | undefined;
23
+ private static sharedIframe;
24
+ private static iframeInstanceCount;
25
+ sdkVersion: string | undefined;
26
+ /**
27
+ * Internal secure storage adapter for mobile TEE-backed storage.
28
+ * When set, key shares are stored in secure storage instead of localStorage.
29
+ * This is NOT part of the public API.
30
+ */
31
+ protected secureStorage?: SecureStorageAdapter;
32
+ /**
33
+ * Callback to retrieve a signed session ID lazily.
34
+ * Used as a reverse-channel handler: the iframe requests this value from the host.
35
+ * This is NOT part of the public API.
36
+ */
37
+ protected getSignedSessionIdCallback?: () => Promise<string>;
38
+ /**
39
+ * Request channel for handling messages from iframe (iframe → host)
40
+ * Used for secureStorage operations and signed session ID retrieval
41
+ */
42
+ protected iframeRequestChannel?: RequestChannel<Pick<IframeRequestMessages, 'getClientKeyShare' | 'setClientKeyShare' | 'getSignedSessionId'>>;
43
+ private static readonly maxAdditionalTrustedOrigins;
44
+ private static readonly maxTrustedOriginStringLength;
45
+ private readonly additionalTrustedOrigins;
46
+ constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins, }: {
47
+ environmentId: string;
48
+ authMode: AuthMode;
49
+ authToken?: string;
50
+ baseApiUrl: string;
51
+ baseMPCRelayApiUrl: string;
52
+ chainName: string;
53
+ sdkVersion?: string;
54
+ debug?: boolean;
55
+ baseClientKeysharesRelayApiUrl?: string;
56
+ additionalTrustedOrigins?: readonly string[];
57
+ }, internalOptions?: {
58
+ secureStorage?: SecureStorageAdapter;
59
+ getSignedSessionId?: () => Promise<string>;
60
+ });
61
+ initialize(): Promise<void>;
62
+ /**
63
+ * this is called on class construction time
64
+ * @returns {Promise<void>} that resolves when the iframe is loaded and the message transport and iframe storage are initialized
65
+ */
66
+ initializeIframeCommunication(): Promise<void>;
67
+ /**
68
+ * initialize the iframe communication by awaiting the iframe load promise
69
+ * and initializing the message transport and iframe storage after iframe is successfully loaded
70
+ */
71
+ private doInitializeIframeCommunication;
72
+ /**
73
+ * initialize the message transport after iframe is successfully loaded
74
+ */
75
+ protected initializeMessageTransport(): Promise<void>;
76
+ /**
77
+ * Sets up message handlers for iframe → host requests (secureStorage and getSignedSessionId)
78
+ */
79
+ private setupIframeRequestHandlers;
80
+ /**
81
+ * Handler for getClientKeyShare requests from iframe
82
+ */
83
+ private handleGetClientKeyShare;
84
+ /**
85
+ * Handler for setClientKeyShare requests from iframe
86
+ */
87
+ private handleSetClientKeyShare;
88
+ /**
89
+ * Handler for removeClientKeyShare requests from iframe
90
+ */
91
+ private handleRemoveClientKeyShare;
92
+ /**
93
+ * Handler for getSignedSessionId requests from iframe
94
+ */
95
+ private handleGetSignedSessionId;
96
+ /**
97
+ * securely exchange the auth token with iframe securely
98
+ */
99
+ private initAuthToken;
100
+ /**
101
+ * Reset the shared iframe and iframe load promise, and iframe instance count
102
+ */
103
+ private resetSharedIframe;
104
+ private loadIframe;
105
+ private assignExistingIframe;
106
+ private createIframeLoadPromise;
107
+ private setupIframeEventHandlersWithRetry;
108
+ private getIframeContext;
109
+ private createMessageListener;
110
+ private configureIframe;
111
+ private buildIframeUrlSearchParams;
112
+ private setIframeSource;
113
+ /**
114
+ * Load an iframe for a specific container
115
+ * @param {HTMLElement} container - The container to which the iframe will be attached
116
+ * @returns {Promise<HTMLIFrameElement>} that resolves when the iframe is loaded
117
+ */
118
+ private loadIframeForContainer;
119
+ /**
120
+ * Initializes the iframe display for a specific container.
121
+ *
122
+ * @param {HTMLElement} container - The container to which the iframe will be attached.
123
+ * @returns:
124
+ * iframe: HTMLIFrameElement;
125
+ * iframeDisplay: IframeDisplayChannelAdapter;
126
+ * cleanup: () => void;
127
+ */
128
+ initializeIframeDisplayForContainer({ container }: {
129
+ container: HTMLElement;
130
+ }): Promise<{
131
+ iframe: HTMLIFrameElement;
132
+ iframeDisplay: iframeMessageHandler;
133
+ cleanup: () => void;
134
+ }>;
135
+ cleanup(): Promise<void>;
136
+ }
137
+ //# sourceMappingURL=IframeManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/IframeManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './IframeManager.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './client.js';
2
+ export { AuthMode } from '@dynamic-labs-wallet/core';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { MPC_RELAY_PREPROD_API_URL, MPC_RELAY_PROD_API_URL, ThresholdSignatureScheme, WalletOperation, } from '@dynamic-labs-wallet/core';
2
+ export type { BitcoinAddressType, BitcoinConfig, BitcoinNetwork, GetWalletResponse, WalletRecoveryState, } from '@dynamic-labs-wallet/core';
3
+ export * from './client/index.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { AuthMode, BackupKeySharesToGoogleDriveRequest, BackupKeySharesToICloudRequest, CreateWalletAccountRequest, CreateWalletAccountResponse, DelegateKeySharesRequest, ExportClientKeysharesFromGoogleDriveRequest, ExportClientKeysharesRequest, ExportPrivateKeyRequest, GetWalletRecoveryStateRequest, GetWalletRequest, GetAllWalletsRequest, GetWalletResponse, GetWalletsRequest, IframeRequestMessages, ImportPrivateKeyRequest, IsPasswordEncryptedRequest, MessageTransportErrorResponse, OfflineExportPrivateKeyRequest, OfflineExportPrivateKeyResponse, RefreshWalletAccountSharesRequest, RequestWithElevatedAccessToken, RequestWithTraceContext, RequiresPasswordForOperationRequest, ReshareRequest, RevokeDelegationRequest, SetPasswordRequest, SignMessageRequest, SignRawMessageRequest, SignTransactionRequest, SignTypedDataRequest, TraceContext, UnlockWalletRequest, UpdatePasswordRequest, VerifyPasswordRequest, WalletRecoveryState } from '@dynamic-labs-wallet/core';
2
+ import { type MessageTransportWithDefaultOrigin, type RequestChannel } from '@dynamic-labs/message-transport';
3
+ export declare class iframeMessageHandler {
4
+ requestChannel: RequestChannel<IframeRequestMessages>;
5
+ constructor(messageTransport: MessageTransportWithDefaultOrigin);
6
+ private handleIframeMessageResponseError;
7
+ getWallets(request: RequestWithTraceContext<GetWalletsRequest>): Promise<GetWalletResponse[]>;
8
+ getAllWallets(request: RequestWithTraceContext<GetAllWalletsRequest>): Promise<GetWalletResponse[]>;
9
+ getWallet(request: RequestWithTraceContext<GetWalletRequest>): Promise<GetWalletResponse>;
10
+ createWalletAccount(request: RequestWithTraceContext<CreateWalletAccountRequest>): Promise<CreateWalletAccountResponse>;
11
+ requiresPasswordForOperation(request: RequestWithTraceContext<RequiresPasswordForOperationRequest>): Promise<boolean>;
12
+ signMessage(request: RequestWithTraceContext<RequestWithElevatedAccessToken<SignMessageRequest>>): Promise<string>;
13
+ signRawMessage(request: RequestWithTraceContext<RequestWithElevatedAccessToken<SignRawMessageRequest>>): Promise<string>;
14
+ signTransaction(request: RequestWithTraceContext<RequestWithElevatedAccessToken<SignTransactionRequest>>): Promise<string>;
15
+ isPasswordEncrypted(request: RequestWithTraceContext<IsPasswordEncryptedRequest>): Promise<boolean>;
16
+ backupKeySharesToGoogleDrive(request: RequestWithTraceContext<BackupKeySharesToGoogleDriveRequest>): Promise<void>;
17
+ backupKeySharesToICloud(request: RequestWithTraceContext<BackupKeySharesToICloudRequest>): Promise<void>;
18
+ displayICloudSignIn(chainName: string): Promise<void>;
19
+ hideICloudSignIn(): Promise<void>;
20
+ isICloudAuthenticated(chainName: string): Promise<boolean>;
21
+ delegateKeyShares(request: RequestWithTraceContext<DelegateKeySharesRequest>): Promise<void>;
22
+ revokeDelegation(request: RequestWithTraceContext<RevokeDelegationRequest>): Promise<void>;
23
+ exportClientKeysharesFromGoogleDrive(request: RequestWithTraceContext<ExportClientKeysharesFromGoogleDriveRequest>): Promise<void>;
24
+ refreshWalletAccountShares(request: RequestWithTraceContext<RequestWithElevatedAccessToken<RefreshWalletAccountSharesRequest>>): Promise<void>;
25
+ reshare(request: RequestWithTraceContext<RequestWithElevatedAccessToken<ReshareRequest>>): Promise<void>;
26
+ exportPrivateKey(request: RequestWithTraceContext<RequestWithElevatedAccessToken<ExportPrivateKeyRequest>>): Promise<void>;
27
+ verifyPassword(request: RequestWithTraceContext<VerifyPasswordRequest>): Promise<void>;
28
+ updatePassword(request: RequestWithTraceContext<UpdatePasswordRequest>): Promise<void>;
29
+ setPassword(request: RequestWithTraceContext<SetPasswordRequest>): Promise<void>;
30
+ importPrivateKey(request: RequestWithTraceContext<ImportPrivateKeyRequest>): Promise<CreateWalletAccountResponse>;
31
+ sendAuthToken(token?: string, authMode?: AuthMode, traceContext?: TraceContext): Promise<void>;
32
+ exportClientKeyshares(request: RequestWithTraceContext<ExportClientKeysharesRequest>): Promise<void>;
33
+ offlineExportPrivateKey(request: RequestWithTraceContext<OfflineExportPrivateKeyRequest>): Promise<OfflineExportPrivateKeyResponse>;
34
+ signTypedData(request: RequestWithTraceContext<RequestWithElevatedAccessToken<SignTypedDataRequest>>): Promise<string>;
35
+ cleanup(): Promise<void | MessageTransportErrorResponse>;
36
+ getWalletRecoveryState(request: RequestWithTraceContext<GetWalletRecoveryStateRequest>): Promise<WalletRecoveryState>;
37
+ unlockWallet(request: RequestWithTraceContext<UnlockWalletRequest>): Promise<GetWalletResponse>;
38
+ }
39
+ //# sourceMappingURL=iframeMessageHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframeMessageHandler.d.ts","sourceRoot":"","sources":["../../src/services/iframeMessageHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Logger } from '@dynamic-labs/logger';
2
+ export declare const logger: Logger;
3
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,eAAO,MAAM,MAAM,QAAwC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type MessageTransportWithDefaultOrigin } from '@dynamic-labs/message-transport';
2
+ export declare const setupMessageTransportBridge: (messageTransport: MessageTransportWithDefaultOrigin, iframe: HTMLIFrameElement, iframeOrigin: string) => void;
3
+ //# sourceMappingURL=messageTransportBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageTransportBridge.d.ts","sourceRoot":"","sources":["../../src/services/messageTransportBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iCAAiC,EAGvC,MAAM,iCAAiC,CAAC;AAGzC,eAAO,MAAM,2BAA2B,qBACpB,iCAAiC,UAC3C,iBAAiB,gBACX,MAAM,SA4DrB,CAAC"}