@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 +57 -34
- package/index.esm.js +57 -34
- package/package.json +2 -2
- package/src/client/client.d.ts +24 -17
- package/src/client/client.d.ts.map +1 -1
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
|
-
|
|
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
|
-
|
|
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.
|
|
3
|
+
"version": "0.0.0-beta.232.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@dynamic-labs-wallet/core": "0.0.0-beta.
|
|
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
|
},
|
package/src/client/client.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare class DynamicWalletClient {
|
|
|
8
8
|
instanceId: string | null;
|
|
9
9
|
iframeDomain: string | null;
|
|
10
10
|
environmentId: string;
|
|
11
|
-
private
|
|
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
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|