@dynamic-labs-wallet/browser-wallet-client 0.0.0-beta.190.1 → 0.0.0-beta.232.1

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
@@ -145,6 +145,10 @@ class DynamicWalletClient {
145
145
  /**
146
146
  * initialize the message transport after iframe is successfully loaded
147
147
  */ async initializeMessageTransport() {
148
+ if (this.messageTransport && this.iframeMessageHandler) {
149
+ this.logger.debug('Skipping initializeMessageTransport: transport and message handler already initialized');
150
+ return;
151
+ }
148
152
  await this.initializeIframeCommunication();
149
153
  const transport = messageTransport.applyDefaultMessageOrigin({
150
154
  defaultOrigin: 'host',
@@ -201,13 +205,14 @@ class DynamicWalletClient {
201
205
  iframe.style.height = '0';
202
206
  iframe.style.border = 'none';
203
207
  iframe.style.pointerEvents = 'none';
204
- var _this_instanceId;
208
+ var _this_instanceId, _this_sdkVersion;
205
209
  const params = new URLSearchParams({
206
210
  instanceId: (_this_instanceId = this.instanceId) != null ? _this_instanceId : '',
207
211
  hostOrigin: window.location.origin,
208
212
  environmentId: this.environmentId,
209
213
  baseApiUrl: this.baseApiUrl,
210
- baseMPCRelayApiUrl: this.baseMPCRelayApiUrl
214
+ baseMPCRelayApiUrl: this.baseMPCRelayApiUrl,
215
+ sdkVersion: (_this_sdkVersion = this.sdkVersion) != null ? _this_sdkVersion : ''
211
216
  });
212
217
  iframe.src = `${this.iframeDomain}/waas-v1/${this.environmentId}?${params.toString()}`;
213
218
  this.logger.debug('Creating iframe with src:', iframe.src);
@@ -320,7 +325,7 @@ class DynamicWalletClient {
320
325
  signedSessionId
321
326
  });
322
327
  }
323
- async createWalletAccount({ thresholdSignatureScheme, password = undefined, signedSessionId }) {
328
+ async createWalletAccount({ thresholdSignatureScheme, password = undefined, signedSessionId, authToken }) {
324
329
  await this.initializeMessageTransport();
325
330
  if (!this.iframeMessageHandler) {
326
331
  throw new Error('Iframe message handler not initialized');
@@ -329,10 +334,11 @@ class DynamicWalletClient {
329
334
  chainName: this.chainName,
330
335
  thresholdSignatureScheme,
331
336
  password,
332
- signedSessionId
337
+ signedSessionId,
338
+ authToken
333
339
  });
334
340
  }
335
- async requiresPasswordForOperation({ accountAddress, walletOperation = core.WalletOperation.REACH_THRESHOLD }) {
341
+ async requiresPasswordForOperation({ accountAddress, walletOperation = core.WalletOperation.REACH_THRESHOLD, authToken }) {
336
342
  await this.initializeMessageTransport();
337
343
  if (!this.iframeMessageHandler) {
338
344
  throw new Error('Iframe message handler not initialized');
@@ -340,20 +346,22 @@ class DynamicWalletClient {
340
346
  return this.iframeMessageHandler.requiresPasswordForOperation({
341
347
  chainName: this.chainName,
342
348
  accountAddress,
343
- walletOperation
349
+ walletOperation,
350
+ authToken
344
351
  });
345
352
  }
346
- async isPasswordEncrypted({ accountAddress }) {
353
+ async isPasswordEncrypted({ accountAddress, authToken }) {
347
354
  await this.initializeMessageTransport();
348
355
  if (!this.iframeMessageHandler) {
349
356
  throw new Error('Iframe message handler not initialized');
350
357
  }
351
358
  return this.iframeMessageHandler.isPasswordEncrypted({
352
359
  chainName: this.chainName,
353
- accountAddress
360
+ accountAddress,
361
+ authToken
354
362
  });
355
363
  }
356
- async signMessage({ message, accountAddress, password = undefined, signedSessionId }) {
364
+ async signMessage({ message, accountAddress, password = undefined, signedSessionId, authToken }) {
357
365
  await this.initializeMessageTransport();
358
366
  if (!this.iframeMessageHandler) {
359
367
  throw new Error('Iframe message handler not initialized');
@@ -363,10 +371,11 @@ class DynamicWalletClient {
363
371
  message,
364
372
  accountAddress,
365
373
  password,
366
- signedSessionId
374
+ signedSessionId,
375
+ authToken
367
376
  });
368
377
  }
369
- async signRawMessage({ message, accountAddress, password = undefined, signedSessionId }) {
378
+ async signRawMessage({ message, accountAddress, password = undefined, signedSessionId, authToken }) {
370
379
  await this.initializeMessageTransport();
371
380
  if (!this.iframeMessageHandler) {
372
381
  throw new Error('Iframe message handler not initialized');
@@ -376,7 +385,8 @@ class DynamicWalletClient {
376
385
  message,
377
386
  accountAddress,
378
387
  password,
379
- signedSessionId
388
+ signedSessionId,
389
+ authToken
380
390
  });
381
391
  }
382
392
  /**
@@ -389,7 +399,7 @@ class DynamicWalletClient {
389
399
  * SUI:
390
400
  * const txBytes = await txb.build({ client });
391
401
  * const txString = Buffer.from(txBytes).toString("hex");
392
- */ async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId }) {
402
+ */ async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId, authToken }) {
393
403
  await this.initializeMessageTransport();
394
404
  if (!this.iframeMessageHandler) {
395
405
  throw new Error('Iframe message handler not initialized');
@@ -399,10 +409,11 @@ class DynamicWalletClient {
399
409
  senderAddress,
400
410
  transaction,
401
411
  password,
402
- signedSessionId
412
+ signedSessionId,
413
+ authToken
403
414
  });
404
415
  }
405
- async backupKeySharesToGoogleDrive({ accountAddress, password = undefined, signedSessionId }) {
416
+ async backupKeySharesToGoogleDrive({ accountAddress, password = undefined, signedSessionId, authToken }) {
406
417
  await this.initializeMessageTransport();
407
418
  if (!this.iframeMessageHandler) {
408
419
  throw new Error('Iframe message handler not initialized');
@@ -411,10 +422,11 @@ class DynamicWalletClient {
411
422
  chainName: this.chainName,
412
423
  accountAddress,
413
424
  password,
414
- signedSessionId
425
+ signedSessionId,
426
+ authToken
415
427
  });
416
428
  }
417
- async restoreBackupFromGoogleDrive({ accountAddress, displayContainer, password, signedSessionId }) {
429
+ async restoreBackupFromGoogleDrive({ accountAddress, displayContainer, password, signedSessionId, authToken }) {
418
430
  const { iframeDisplay } = await this.initializeIframeDisplayForContainer({
419
431
  container: displayContainer
420
432
  });
@@ -425,10 +437,11 @@ class DynamicWalletClient {
425
437
  chainName: this.chainName,
426
438
  accountAddress,
427
439
  password,
428
- signedSessionId
440
+ signedSessionId,
441
+ authToken
429
442
  });
430
443
  }
431
- async refreshWalletAccountShares({ accountAddress, password, signedSessionId }) {
444
+ async refreshWalletAccountShares({ accountAddress, password, signedSessionId, authToken }) {
432
445
  await this.initializeMessageTransport();
433
446
  if (!this.iframeMessageHandler) {
434
447
  throw new Error('Iframe message handler not initialized');
@@ -437,10 +450,11 @@ class DynamicWalletClient {
437
450
  chainName: this.chainName,
438
451
  accountAddress: accountAddress,
439
452
  password: password,
440
- signedSessionId
453
+ signedSessionId,
454
+ authToken
441
455
  });
442
456
  }
443
- async reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId }) {
457
+ async reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId, authToken }) {
444
458
  await this.initializeMessageTransport();
445
459
  if (!this.iframeMessageHandler) {
446
460
  throw new Error('Iframe message handler not initialized');
@@ -451,10 +465,11 @@ class DynamicWalletClient {
451
465
  oldThresholdSignatureScheme,
452
466
  newThresholdSignatureScheme,
453
467
  password,
454
- signedSessionId
468
+ signedSessionId,
469
+ authToken
455
470
  });
456
471
  }
457
- async exportPrivateKey({ accountAddress, displayContainer, password, signedSessionId }) {
472
+ async exportPrivateKey({ accountAddress, displayContainer, password, signedSessionId, authToken }) {
458
473
  const { iframeDisplay } = await this.initializeIframeDisplayForContainer({
459
474
  container: displayContainer
460
475
  });
@@ -465,10 +480,11 @@ class DynamicWalletClient {
465
480
  chainName: this.chainName,
466
481
  accountAddress,
467
482
  password,
468
- signedSessionId
483
+ signedSessionId,
484
+ authToken
469
485
  });
470
486
  }
471
- async verifyPassword({ accountAddress, password, walletOperation = core.WalletOperation.NO_OPERATION, signedSessionId }) {
487
+ async verifyPassword({ accountAddress, password, walletOperation = core.WalletOperation.NO_OPERATION, signedSessionId, authToken }) {
472
488
  await this.initializeMessageTransport();
473
489
  if (!this.iframeMessageHandler) {
474
490
  throw new Error('Iframe message handler not initialized');
@@ -478,10 +494,11 @@ class DynamicWalletClient {
478
494
  accountAddress,
479
495
  password,
480
496
  walletOperation,
481
- signedSessionId
497
+ signedSessionId,
498
+ authToken
482
499
  });
483
500
  }
484
- async updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId }) {
501
+ async updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, authToken }) {
485
502
  await this.initializeMessageTransport();
486
503
  if (!this.iframeMessageHandler) {
487
504
  throw new Error('Iframe message handler not initialized');
@@ -491,10 +508,11 @@ class DynamicWalletClient {
491
508
  accountAddress,
492
509
  existingPassword,
493
510
  newPassword,
494
- signedSessionId
511
+ signedSessionId,
512
+ authToken
495
513
  });
496
514
  }
497
- async importPrivateKey({ privateKey, thresholdSignatureScheme }) {
515
+ async importPrivateKey({ privateKey, thresholdSignatureScheme, authToken }) {
498
516
  await this.initializeMessageTransport();
499
517
  if (!this.iframeMessageHandler) {
500
518
  throw new Error('Iframe message handler not initialized');
@@ -502,10 +520,11 @@ class DynamicWalletClient {
502
520
  return this.iframeMessageHandler.importPrivateKey({
503
521
  chainName: this.chainName,
504
522
  privateKey,
505
- thresholdSignatureScheme
523
+ thresholdSignatureScheme,
524
+ authToken
506
525
  });
507
526
  }
508
- async exportClientKeyshares({ accountAddress, password, signedSessionId }) {
527
+ async exportClientKeyshares({ accountAddress, password, signedSessionId, authToken }) {
509
528
  await this.initializeMessageTransport();
510
529
  if (!this.iframeMessageHandler) {
511
530
  throw new Error('Iframe message handler not initialized');
@@ -514,10 +533,13 @@ class DynamicWalletClient {
514
533
  chainName: this.chainName,
515
534
  accountAddress,
516
535
  password,
517
- signedSessionId
536
+ signedSessionId,
537
+ authToken
518
538
  });
519
539
  }
520
- async offlineExportPrivateKey({ keyShares, derivationPath }) {
540
+ /**
541
+ * keyShares is stringified list of EcdsaKeygenResult[] and Ed25519KeygenResult[]
542
+ */ async offlineExportPrivateKey({ keyShares, derivationPath }) {
521
543
  await this.initializeMessageTransport();
522
544
  if (!this.iframeMessageHandler) {
523
545
  throw new Error('Iframe message handler not initialized');
@@ -551,7 +573,7 @@ class DynamicWalletClient {
551
573
  this.iframe = null;
552
574
  }
553
575
  }
554
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, debug }){
576
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, debug }){
555
577
  this.logger = logger;
556
578
  this.instanceId = null;
557
579
  this.iframeDomain = null;
@@ -563,6 +585,7 @@ class DynamicWalletClient {
563
585
  this.baseApiUrl = baseApiUrl;
564
586
  this.baseMPCRelayApiUrl = baseMPCRelayApiUrl;
565
587
  this.chainName = chainName;
588
+ this.sdkVersion = sdkVersion;
566
589
  const environment = core.getEnvironmentFromUrl(baseApiUrl);
567
590
  this.iframeDomain = core.IFRAME_DOMAIN_MAP[environment];
568
591
  // Generate unique instanceId when client is created
package/index.esm.js CHANGED
@@ -144,6 +144,10 @@ class DynamicWalletClient {
144
144
  /**
145
145
  * initialize the message transport after iframe is successfully loaded
146
146
  */ async initializeMessageTransport() {
147
+ if (this.messageTransport && this.iframeMessageHandler) {
148
+ this.logger.debug('Skipping initializeMessageTransport: transport and message handler already initialized');
149
+ return;
150
+ }
147
151
  await this.initializeIframeCommunication();
148
152
  const transport = applyDefaultMessageOrigin({
149
153
  defaultOrigin: 'host',
@@ -200,13 +204,14 @@ class DynamicWalletClient {
200
204
  iframe.style.height = '0';
201
205
  iframe.style.border = 'none';
202
206
  iframe.style.pointerEvents = 'none';
203
- var _this_instanceId;
207
+ var _this_instanceId, _this_sdkVersion;
204
208
  const params = new URLSearchParams({
205
209
  instanceId: (_this_instanceId = this.instanceId) != null ? _this_instanceId : '',
206
210
  hostOrigin: window.location.origin,
207
211
  environmentId: this.environmentId,
208
212
  baseApiUrl: this.baseApiUrl,
209
- baseMPCRelayApiUrl: this.baseMPCRelayApiUrl
213
+ baseMPCRelayApiUrl: this.baseMPCRelayApiUrl,
214
+ sdkVersion: (_this_sdkVersion = this.sdkVersion) != null ? _this_sdkVersion : ''
210
215
  });
211
216
  iframe.src = `${this.iframeDomain}/waas-v1/${this.environmentId}?${params.toString()}`;
212
217
  this.logger.debug('Creating iframe with src:', iframe.src);
@@ -319,7 +324,7 @@ class DynamicWalletClient {
319
324
  signedSessionId
320
325
  });
321
326
  }
322
- async createWalletAccount({ thresholdSignatureScheme, password = undefined, signedSessionId }) {
327
+ async createWalletAccount({ thresholdSignatureScheme, password = undefined, signedSessionId, authToken }) {
323
328
  await this.initializeMessageTransport();
324
329
  if (!this.iframeMessageHandler) {
325
330
  throw new Error('Iframe message handler not initialized');
@@ -328,10 +333,11 @@ class DynamicWalletClient {
328
333
  chainName: this.chainName,
329
334
  thresholdSignatureScheme,
330
335
  password,
331
- signedSessionId
336
+ signedSessionId,
337
+ authToken
332
338
  });
333
339
  }
334
- async requiresPasswordForOperation({ accountAddress, walletOperation = WalletOperation.REACH_THRESHOLD }) {
340
+ async requiresPasswordForOperation({ accountAddress, walletOperation = WalletOperation.REACH_THRESHOLD, authToken }) {
335
341
  await this.initializeMessageTransport();
336
342
  if (!this.iframeMessageHandler) {
337
343
  throw new Error('Iframe message handler not initialized');
@@ -339,20 +345,22 @@ class DynamicWalletClient {
339
345
  return this.iframeMessageHandler.requiresPasswordForOperation({
340
346
  chainName: this.chainName,
341
347
  accountAddress,
342
- walletOperation
348
+ walletOperation,
349
+ authToken
343
350
  });
344
351
  }
345
- async isPasswordEncrypted({ accountAddress }) {
352
+ async isPasswordEncrypted({ accountAddress, authToken }) {
346
353
  await this.initializeMessageTransport();
347
354
  if (!this.iframeMessageHandler) {
348
355
  throw new Error('Iframe message handler not initialized');
349
356
  }
350
357
  return this.iframeMessageHandler.isPasswordEncrypted({
351
358
  chainName: this.chainName,
352
- accountAddress
359
+ accountAddress,
360
+ authToken
353
361
  });
354
362
  }
355
- async signMessage({ message, accountAddress, password = undefined, signedSessionId }) {
363
+ async signMessage({ message, accountAddress, password = undefined, signedSessionId, authToken }) {
356
364
  await this.initializeMessageTransport();
357
365
  if (!this.iframeMessageHandler) {
358
366
  throw new Error('Iframe message handler not initialized');
@@ -362,10 +370,11 @@ class DynamicWalletClient {
362
370
  message,
363
371
  accountAddress,
364
372
  password,
365
- signedSessionId
373
+ signedSessionId,
374
+ authToken
366
375
  });
367
376
  }
368
- async signRawMessage({ message, accountAddress, password = undefined, signedSessionId }) {
377
+ async signRawMessage({ message, accountAddress, password = undefined, signedSessionId, authToken }) {
369
378
  await this.initializeMessageTransport();
370
379
  if (!this.iframeMessageHandler) {
371
380
  throw new Error('Iframe message handler not initialized');
@@ -375,7 +384,8 @@ class DynamicWalletClient {
375
384
  message,
376
385
  accountAddress,
377
386
  password,
378
- signedSessionId
387
+ signedSessionId,
388
+ authToken
379
389
  });
380
390
  }
381
391
  /**
@@ -388,7 +398,7 @@ class DynamicWalletClient {
388
398
  * SUI:
389
399
  * const txBytes = await txb.build({ client });
390
400
  * const txString = Buffer.from(txBytes).toString("hex");
391
- */ async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId }) {
401
+ */ async signTransaction({ senderAddress, transaction, password = undefined, signedSessionId, authToken }) {
392
402
  await this.initializeMessageTransport();
393
403
  if (!this.iframeMessageHandler) {
394
404
  throw new Error('Iframe message handler not initialized');
@@ -398,10 +408,11 @@ class DynamicWalletClient {
398
408
  senderAddress,
399
409
  transaction,
400
410
  password,
401
- signedSessionId
411
+ signedSessionId,
412
+ authToken
402
413
  });
403
414
  }
404
- async backupKeySharesToGoogleDrive({ accountAddress, password = undefined, signedSessionId }) {
415
+ async backupKeySharesToGoogleDrive({ accountAddress, password = undefined, signedSessionId, authToken }) {
405
416
  await this.initializeMessageTransport();
406
417
  if (!this.iframeMessageHandler) {
407
418
  throw new Error('Iframe message handler not initialized');
@@ -410,10 +421,11 @@ class DynamicWalletClient {
410
421
  chainName: this.chainName,
411
422
  accountAddress,
412
423
  password,
413
- signedSessionId
424
+ signedSessionId,
425
+ authToken
414
426
  });
415
427
  }
416
- async restoreBackupFromGoogleDrive({ accountAddress, displayContainer, password, signedSessionId }) {
428
+ async restoreBackupFromGoogleDrive({ accountAddress, displayContainer, password, signedSessionId, authToken }) {
417
429
  const { iframeDisplay } = await this.initializeIframeDisplayForContainer({
418
430
  container: displayContainer
419
431
  });
@@ -424,10 +436,11 @@ class DynamicWalletClient {
424
436
  chainName: this.chainName,
425
437
  accountAddress,
426
438
  password,
427
- signedSessionId
439
+ signedSessionId,
440
+ authToken
428
441
  });
429
442
  }
430
- async refreshWalletAccountShares({ accountAddress, password, signedSessionId }) {
443
+ async refreshWalletAccountShares({ accountAddress, password, signedSessionId, authToken }) {
431
444
  await this.initializeMessageTransport();
432
445
  if (!this.iframeMessageHandler) {
433
446
  throw new Error('Iframe message handler not initialized');
@@ -436,10 +449,11 @@ class DynamicWalletClient {
436
449
  chainName: this.chainName,
437
450
  accountAddress: accountAddress,
438
451
  password: password,
439
- signedSessionId
452
+ signedSessionId,
453
+ authToken
440
454
  });
441
455
  }
442
- async reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId }) {
456
+ async reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId, authToken }) {
443
457
  await this.initializeMessageTransport();
444
458
  if (!this.iframeMessageHandler) {
445
459
  throw new Error('Iframe message handler not initialized');
@@ -450,10 +464,11 @@ class DynamicWalletClient {
450
464
  oldThresholdSignatureScheme,
451
465
  newThresholdSignatureScheme,
452
466
  password,
453
- signedSessionId
467
+ signedSessionId,
468
+ authToken
454
469
  });
455
470
  }
456
- async exportPrivateKey({ accountAddress, displayContainer, password, signedSessionId }) {
471
+ async exportPrivateKey({ accountAddress, displayContainer, password, signedSessionId, authToken }) {
457
472
  const { iframeDisplay } = await this.initializeIframeDisplayForContainer({
458
473
  container: displayContainer
459
474
  });
@@ -464,10 +479,11 @@ class DynamicWalletClient {
464
479
  chainName: this.chainName,
465
480
  accountAddress,
466
481
  password,
467
- signedSessionId
482
+ signedSessionId,
483
+ authToken
468
484
  });
469
485
  }
470
- async verifyPassword({ accountAddress, password, walletOperation = WalletOperation.NO_OPERATION, signedSessionId }) {
486
+ async verifyPassword({ accountAddress, password, walletOperation = WalletOperation.NO_OPERATION, signedSessionId, authToken }) {
471
487
  await this.initializeMessageTransport();
472
488
  if (!this.iframeMessageHandler) {
473
489
  throw new Error('Iframe message handler not initialized');
@@ -477,10 +493,11 @@ class DynamicWalletClient {
477
493
  accountAddress,
478
494
  password,
479
495
  walletOperation,
480
- signedSessionId
496
+ signedSessionId,
497
+ authToken
481
498
  });
482
499
  }
483
- async updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId }) {
500
+ async updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, authToken }) {
484
501
  await this.initializeMessageTransport();
485
502
  if (!this.iframeMessageHandler) {
486
503
  throw new Error('Iframe message handler not initialized');
@@ -490,10 +507,11 @@ class DynamicWalletClient {
490
507
  accountAddress,
491
508
  existingPassword,
492
509
  newPassword,
493
- signedSessionId
510
+ signedSessionId,
511
+ authToken
494
512
  });
495
513
  }
496
- async importPrivateKey({ privateKey, thresholdSignatureScheme }) {
514
+ async importPrivateKey({ privateKey, thresholdSignatureScheme, authToken }) {
497
515
  await this.initializeMessageTransport();
498
516
  if (!this.iframeMessageHandler) {
499
517
  throw new Error('Iframe message handler not initialized');
@@ -501,10 +519,11 @@ class DynamicWalletClient {
501
519
  return this.iframeMessageHandler.importPrivateKey({
502
520
  chainName: this.chainName,
503
521
  privateKey,
504
- thresholdSignatureScheme
522
+ thresholdSignatureScheme,
523
+ authToken
505
524
  });
506
525
  }
507
- async exportClientKeyshares({ accountAddress, password, signedSessionId }) {
526
+ async exportClientKeyshares({ accountAddress, password, signedSessionId, authToken }) {
508
527
  await this.initializeMessageTransport();
509
528
  if (!this.iframeMessageHandler) {
510
529
  throw new Error('Iframe message handler not initialized');
@@ -513,10 +532,13 @@ class DynamicWalletClient {
513
532
  chainName: this.chainName,
514
533
  accountAddress,
515
534
  password,
516
- signedSessionId
535
+ signedSessionId,
536
+ authToken
517
537
  });
518
538
  }
519
- async offlineExportPrivateKey({ keyShares, derivationPath }) {
539
+ /**
540
+ * keyShares is stringified list of EcdsaKeygenResult[] and Ed25519KeygenResult[]
541
+ */ async offlineExportPrivateKey({ keyShares, derivationPath }) {
520
542
  await this.initializeMessageTransport();
521
543
  if (!this.iframeMessageHandler) {
522
544
  throw new Error('Iframe message handler not initialized');
@@ -550,7 +572,7 @@ class DynamicWalletClient {
550
572
  this.iframe = null;
551
573
  }
552
574
  }
553
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, debug }){
575
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, debug }){
554
576
  this.logger = logger;
555
577
  this.instanceId = null;
556
578
  this.iframeDomain = null;
@@ -562,6 +584,7 @@ class DynamicWalletClient {
562
584
  this.baseApiUrl = baseApiUrl;
563
585
  this.baseMPCRelayApiUrl = baseMPCRelayApiUrl;
564
586
  this.chainName = chainName;
587
+ this.sdkVersion = sdkVersion;
565
588
  const environment = getEnvironmentFromUrl(baseApiUrl);
566
589
  this.iframeDomain = IFRAME_DOMAIN_MAP[environment];
567
590
  // Generate unique instanceId when client is created
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser-wallet-client",
3
- "version": "0.0.0-beta.190.1",
3
+ "version": "0.0.0-beta.232.1",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
- "@dynamic-labs-wallet/core": "0.0.0-beta.190.1",
6
+ "@dynamic-labs-wallet/core": "0.0.0-beta.232.1",
7
7
  "@dynamic-labs/message-transport": "^4.9.9",
8
8
  "@dynamic-labs/logger": "^4.9.9"
9
9
  },
@@ -8,7 +8,7 @@ export declare class DynamicWalletClient {
8
8
  instanceId: string | null;
9
9
  iframeDomain: string | null;
10
10
  environmentId: string;
11
- private readonly authToken;
11
+ private authToken;
12
12
  baseApiUrl: string;
13
13
  baseMPCRelayApiUrl: string;
14
14
  protected messageTransport: MessageTransportWithDefaultOrigin | null;
@@ -18,12 +18,14 @@ export declare class DynamicWalletClient {
18
18
  private debug;
19
19
  private static sharedIframe;
20
20
  private static iframeInstanceCount;
21
- constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, debug, }: {
21
+ sdkVersion: string | undefined;
22
+ constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, debug, }: {
22
23
  environmentId: string;
23
24
  authToken: string;
24
25
  baseApiUrl: string;
25
26
  baseMPCRelayApiUrl: string;
26
27
  chainName: string;
28
+ sdkVersion?: string;
27
29
  debug?: boolean;
28
30
  });
29
31
  initialize(): Promise<void>;
@@ -74,11 +76,11 @@ export declare class DynamicWalletClient {
74
76
  walletOperation?: WalletOperation;
75
77
  signedSessionId?: string;
76
78
  }): Promise<GetWalletResponse>;
77
- createWalletAccount({ thresholdSignatureScheme, password, signedSessionId, }: Omit<CreateWalletAccountRequest, 'chainName'>): Promise<CreateWalletAccountResponse>;
78
- requiresPasswordForOperation({ accountAddress, walletOperation, }: Omit<RequiresPasswordForOperationRequest, 'chainName'>): Promise<boolean>;
79
- isPasswordEncrypted({ accountAddress, }: Omit<IsPasswordEncryptedRequest, 'chainName'>): Promise<boolean>;
80
- signMessage({ message, accountAddress, password, signedSessionId, }: Omit<SignMessageRequest, 'chainName'>): Promise<string>;
81
- signRawMessage({ message, accountAddress, password, signedSessionId, }: Omit<SignRawMessageRequest, 'chainName'>): Promise<string>;
79
+ createWalletAccount({ thresholdSignatureScheme, password, signedSessionId, authToken, }: Omit<CreateWalletAccountRequest, 'chainName'>): Promise<CreateWalletAccountResponse>;
80
+ requiresPasswordForOperation({ accountAddress, walletOperation, authToken, }: Omit<RequiresPasswordForOperationRequest, 'chainName'>): Promise<boolean>;
81
+ isPasswordEncrypted({ accountAddress, authToken, }: Omit<IsPasswordEncryptedRequest, 'chainName'>): Promise<boolean>;
82
+ signMessage({ message, accountAddress, password, signedSessionId, authToken, }: Omit<SignMessageRequest, 'chainName'>): Promise<string>;
83
+ signRawMessage({ message, accountAddress, password, signedSessionId, authToken, }: Omit<SignRawMessageRequest, 'chainName'>): Promise<string>;
82
84
  /**
83
85
  * Signs a transaction and returns the signature, @transaction is a string of the serialized transaction
84
86
  * EVM:
@@ -90,26 +92,31 @@ export declare class DynamicWalletClient {
90
92
  * const txBytes = await txb.build({ client });
91
93
  * const txString = Buffer.from(txBytes).toString("hex");
92
94
  */
93
- signTransaction({ senderAddress, transaction, password, signedSessionId, }: Omit<SignTransactionRequest, 'chainName'>): Promise<string>;
94
- backupKeySharesToGoogleDrive({ accountAddress, password, signedSessionId, }: Omit<BackupKeySharesToGoogleDriveRequest, 'chainName'>): Promise<void>;
95
- restoreBackupFromGoogleDrive({ accountAddress, displayContainer, password, signedSessionId, }: {
95
+ signTransaction({ senderAddress, transaction, password, signedSessionId, authToken, }: Omit<SignTransactionRequest, 'chainName'>): Promise<string>;
96
+ backupKeySharesToGoogleDrive({ accountAddress, password, signedSessionId, authToken, }: Omit<BackupKeySharesToGoogleDriveRequest, 'chainName'>): Promise<void>;
97
+ restoreBackupFromGoogleDrive({ accountAddress, displayContainer, password, signedSessionId, authToken, }: {
96
98
  accountAddress: string;
97
99
  displayContainer: HTMLElement;
98
100
  password?: string;
99
101
  signedSessionId?: string;
102
+ authToken?: string;
100
103
  }): Promise<void>;
101
- refreshWalletAccountShares({ accountAddress, password, signedSessionId, }: Omit<RefreshWalletAccountSharesRequest, 'chainName'>): Promise<void>;
102
- reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId, }: Omit<ReshareRequest, 'chainName'>): Promise<void>;
103
- exportPrivateKey({ accountAddress, displayContainer, password, signedSessionId, }: {
104
+ refreshWalletAccountShares({ accountAddress, password, signedSessionId, authToken, }: Omit<RefreshWalletAccountSharesRequest, 'chainName'>): Promise<void>;
105
+ reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId, authToken, }: Omit<ReshareRequest, 'chainName'>): Promise<void>;
106
+ exportPrivateKey({ accountAddress, displayContainer, password, signedSessionId, authToken, }: {
104
107
  accountAddress: string;
105
108
  displayContainer: HTMLElement;
106
109
  password?: string;
107
110
  signedSessionId?: string;
111
+ authToken?: string;
108
112
  }): Promise<void>;
109
- verifyPassword({ accountAddress, password, walletOperation, signedSessionId, }: Omit<VerifyPasswordRequest, 'chainName'>): Promise<void>;
110
- updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, }: Omit<UpdatePasswordRequest, 'chainName'>): Promise<void>;
111
- importPrivateKey({ privateKey, thresholdSignatureScheme, }: Omit<ImportPrivateKeyRequest, 'chainName'>): Promise<CreateWalletAccountResponse>;
112
- exportClientKeyshares({ accountAddress, password, signedSessionId, }: Omit<ExportClientKeysharesRequest, 'chainName'>): Promise<void>;
113
+ verifyPassword({ accountAddress, password, walletOperation, signedSessionId, authToken, }: Omit<VerifyPasswordRequest, 'chainName'>): Promise<void>;
114
+ updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, authToken, }: Omit<UpdatePasswordRequest, 'chainName'>): Promise<void>;
115
+ importPrivateKey({ privateKey, thresholdSignatureScheme, authToken, }: Omit<ImportPrivateKeyRequest, 'chainName'>): Promise<CreateWalletAccountResponse>;
116
+ exportClientKeyshares({ accountAddress, password, signedSessionId, authToken, }: Omit<ExportClientKeysharesRequest, 'chainName'>): Promise<void>;
117
+ /**
118
+ * keyShares is stringified list of EcdsaKeygenResult[] and Ed25519KeygenResult[]
119
+ */
113
120
  offlineExportPrivateKey({ keyShares, derivationPath, }: {
114
121
  keyShares: string[];
115
122
  derivationPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iCAAiC,EACvC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EACV,iBAAiB,EACjB,2BAA2B,EAC3B,mCAAmC,EACnC,kBAAkB,EAClB,0BAA0B,EAC1B,mCAAmC,EACnC,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,iCAAiC,EACjC,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,MAAM,wCAAU;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,aAAa,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,gBAAgB,EAAE,iCAAiC,GAAG,IAAI,CAAQ;IAC5E,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACnE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;IAC9D,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,OAAO,CAAC,KAAK,CAAU;IAEvB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAkC;IAC7D,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAK;gBAE3B,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,KAAK,GACN,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;IAqBK,UAAU;IAIhB;;;OAGG;IACH,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9C;;;OAGG;YACW,+BAA+B;IAS7C;;OAEG;YACW,0BAA0B;IAyBxC;;OAEG;YACW,aAAa;YAYb,UAAU;IA0ExB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAgD9B;;;;;;;;OAQG;IACG,mCAAmC,CAAC,EACxC,SAAS,GACV,EAAE;QACD,SAAS,EAAE,WAAW,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,iBAAiB,CAAC;QAC1B,aAAa,EAAE,oBAAoB,CAAC;QACpC,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC;IAiCI,UAAU,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAW1C,SAAS,CAAC,EACd,cAAc,EACd,eAA8C,EAC9C,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IAcK,mBAAmB,CAAC,EACxB,wBAAwB,EACxB,QAAoB,EACpB,eAAe,GAChB,EAAE,IAAI,CACL,0BAA0B,EAC1B,WAAW,CACZ,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAclC,4BAA4B,CAAC,EACjC,cAAc,EACd,eAAiD,GAClD,EAAE,IAAI,CAAC,mCAAmC,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAatE,mBAAmB,CAAC,EACxB,cAAc,GACf,EAAE,IAAI,CAAC,0BAA0B,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAY7D,WAAW,CAAC,EAChB,OAAO,EACP,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAepD,cAAc,CAAC,EACnB,OAAO,EACP,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAe7D;;;;;;;;;;OAUG;IACG,eAAe,CAAC,EACpB,aAAa,EACb,WAAW,EACX,QAAoB,EACpB,eAAe,GAChB,EAAE,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAexD,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE,IAAI,CAAC,mCAAmC,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnE,4BAA4B,CAAC,EACjC,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,WAAW,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBX,0BAA0B,CAAC,EAC/B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE,IAAI,CAAC,iCAAiC,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjE,OAAO,CAAC,EACZ,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,QAAQ,EACR,eAAe,GAChB,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,gBAAgB,CAAC,EACrB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,WAAW,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBX,cAAc,CAAC,EACnB,cAAc,EACd,QAAQ,EACR,eAA8C,EAC9C,eAAe,GAChB,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAerD,cAAc,CAAC,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAerD,gBAAgB,CAAC,EACrB,UAAU,EACV,wBAAwB,GACzB,EAAE,IAAI,CACL,uBAAuB,EACvB,WAAW,CACZ,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAalC,qBAAqB,CAAC,EAC1B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE,IAAI,CAAC,4BAA4B,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5D,uBAAuB,CAAC,EAC5B,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAqB/B,OAAO;CAqBrB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}