@dynamic-labs/wallet-connector-core 3.0.0-alpha.64 → 3.0.0-alpha.65
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/CHANGELOG.md +7 -0
- package/package.json +6 -6
- package/src/lib/IBitcoinWalletConnector.d.ts +0 -1
- package/src/lib/WalletConnector.cjs +34 -21
- package/src/lib/WalletConnector.d.ts +13 -4
- package/src/lib/WalletConnector.js +34 -21
- package/src/lib/wallets/Wallet/Wallet.cjs +1 -1
- package/src/lib/wallets/Wallet/Wallet.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
|
|
2
|
+
## [3.0.0-alpha.65](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.64...v3.0.0-alpha.65) (2024-09-11)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* gracefully handle errors when trying to find solana tx destination ([#6847](https://github.com/dynamic-labs/DynamicAuth/issues/6847)) ([19359ad](https://github.com/dynamic-labs/DynamicAuth/commit/19359ad40b16af0edb822d1fc6643fecdbc89adf))
|
|
8
|
+
|
|
2
9
|
## [3.0.0-alpha.64](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.63...v3.0.0-alpha.64) (2024-09-10)
|
|
3
10
|
|
|
4
11
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/wallet-connector-core",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.65",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"@dynamic-labs/sdk-api-core": "0.0.526"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@dynamic-labs/logger": "3.0.0-alpha.
|
|
33
|
-
"@dynamic-labs/rpc-providers": "3.0.0-alpha.
|
|
34
|
-
"@dynamic-labs/types": "3.0.0-alpha.
|
|
35
|
-
"@dynamic-labs/utils": "3.0.0-alpha.
|
|
36
|
-
"@dynamic-labs/wallet-book": "3.0.0-alpha.
|
|
32
|
+
"@dynamic-labs/logger": "3.0.0-alpha.65",
|
|
33
|
+
"@dynamic-labs/rpc-providers": "3.0.0-alpha.65",
|
|
34
|
+
"@dynamic-labs/types": "3.0.0-alpha.65",
|
|
35
|
+
"@dynamic-labs/utils": "3.0.0-alpha.65",
|
|
36
|
+
"@dynamic-labs/wallet-book": "3.0.0-alpha.65",
|
|
37
37
|
"eventemitter3": "5.0.1"
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -24,6 +24,5 @@ export interface IBitcoinWalletConnector extends WalletConnectorBase {
|
|
|
24
24
|
isHardwareWalletEnabled: boolean;
|
|
25
25
|
isLedgerAddress(address: string): boolean;
|
|
26
26
|
clearConnectedAccounts(): Promise<void>;
|
|
27
|
-
signMessageWithAddress(messageToSign: string, address: string): Promise<string | undefined>;
|
|
28
27
|
}
|
|
29
28
|
export {};
|
|
@@ -241,8 +241,6 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
|
|
|
241
241
|
* Get the address silently
|
|
242
242
|
*
|
|
243
243
|
* @param options - GetConnectedAccountsOpts
|
|
244
|
-
* forceFetch - if true it will fetch the address again even if wallet
|
|
245
|
-
* has getConnectedAccounts limitation in wallet-book
|
|
246
244
|
* chooseAccounts - if true will prompt for the user to choose accounts to connect (if supported)
|
|
247
245
|
* @default Promise<[]>
|
|
248
246
|
*/
|
|
@@ -338,7 +336,7 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
|
|
|
338
336
|
*
|
|
339
337
|
* @default Promise<undefined>
|
|
340
338
|
*/
|
|
341
|
-
signMessage(messageToSign) {
|
|
339
|
+
signMessage(messageToSign, withAddress) {
|
|
342
340
|
return Promise.resolve(undefined);
|
|
343
341
|
}
|
|
344
342
|
/**
|
|
@@ -374,6 +372,37 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
|
|
|
374
372
|
canGetChainAddress() {
|
|
375
373
|
return true;
|
|
376
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* Prompts the user to make expected wallet active
|
|
377
|
+
*
|
|
378
|
+
* @throws {WalletAddressMismatchError} If the active address does not match the expected address.
|
|
379
|
+
* @returns {Promise<void>} A promise that resolves when the active address matches the expected address,
|
|
380
|
+
* otherwise rejects with an error.
|
|
381
|
+
*/
|
|
382
|
+
handleWalletNotActive(_a) {
|
|
383
|
+
return _tslib.__awaiter(this, arguments, void 0, function* ({ activeAddress, expectedAddress, reconnectedAddress, }) {
|
|
384
|
+
logger.logger.debug('validateActiveWallet - wallet is not active', {
|
|
385
|
+
activeAddress,
|
|
386
|
+
expectedAddress,
|
|
387
|
+
reconnectedAddress,
|
|
388
|
+
});
|
|
389
|
+
const currentActiveAddress = activeAddress || reconnectedAddress || '';
|
|
390
|
+
const walletUiUtils = this.constructorProps
|
|
391
|
+
.walletUiUtils;
|
|
392
|
+
if (!walletUiUtils) {
|
|
393
|
+
throw new utils.WalletAddressMismatchError(`Wallet ${expectedAddress !== null && expectedAddress !== void 0 ? expectedAddress : ''} is not currently active in ${this.name || this.key}.`, {
|
|
394
|
+
activeAddress: currentActiveAddress,
|
|
395
|
+
expectedAddress,
|
|
396
|
+
walletName: this.name || this.key,
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
return walletUiUtils.syncWallet({
|
|
400
|
+
activeAddress: currentActiveAddress,
|
|
401
|
+
expectedAddress,
|
|
402
|
+
walletConnector: this,
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
}
|
|
377
406
|
/**
|
|
378
407
|
* Validates if the address is connected and active in the wallet app
|
|
379
408
|
*
|
|
@@ -383,19 +412,16 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
|
|
|
383
412
|
*/
|
|
384
413
|
validateActiveWallet(expectedAddress) {
|
|
385
414
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
386
|
-
var _a, _b;
|
|
387
415
|
logger.logger.debug('validateActiveWallet - validating wallet', expectedAddress);
|
|
388
416
|
const canFetchConnectedAccounts = isConnectorMethodSupported.isConnectorMethodSupported(this, 'getConnectedAccounts', 'browserExtension');
|
|
389
417
|
logger.logger.debug('validateActiveWallet - getting connected accounts', {
|
|
390
418
|
canFetchConnectedAccounts,
|
|
391
419
|
});
|
|
392
420
|
const [activeAddress] = canFetchConnectedAccounts
|
|
393
|
-
? yield this.getConnectedAccounts(
|
|
421
|
+
? yield this.getConnectedAccounts()
|
|
394
422
|
: [];
|
|
395
423
|
const isWalletActive = activeAddress &&
|
|
396
424
|
isSameAddress.isSameAddress(activeAddress, expectedAddress, this.connectedChain);
|
|
397
|
-
const walletUiUtils = this.constructorProps
|
|
398
|
-
.walletUiUtils;
|
|
399
425
|
if (isWalletActive) {
|
|
400
426
|
logger.logger.debug('validateActiveWallet - wallet is active');
|
|
401
427
|
return;
|
|
@@ -417,24 +443,11 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
|
|
|
417
443
|
logger.logger.debug('validateActiveWallet - wallet reconnected successfuly');
|
|
418
444
|
return;
|
|
419
445
|
}
|
|
420
|
-
|
|
446
|
+
return this.handleWalletNotActive({
|
|
421
447
|
activeAddress,
|
|
422
448
|
expectedAddress,
|
|
423
449
|
reconnectedAddress,
|
|
424
450
|
});
|
|
425
|
-
const currentActiveAddress = activeAddress || reconnectedAddress || '';
|
|
426
|
-
if (!walletUiUtils) {
|
|
427
|
-
throw new utils.WalletAddressMismatchError(`Wallet ${expectedAddress !== null && expectedAddress !== void 0 ? expectedAddress : ''} is not currently active in ${(_a = this.name) !== null && _a !== void 0 ? _a : this.key}.`, {
|
|
428
|
-
activeAddress: currentActiveAddress,
|
|
429
|
-
expectedAddress,
|
|
430
|
-
walletName: (_b = this.name) !== null && _b !== void 0 ? _b : this.key,
|
|
431
|
-
});
|
|
432
|
-
}
|
|
433
|
-
return walletUiUtils.syncWallet({
|
|
434
|
-
activeAddress: currentActiveAddress,
|
|
435
|
-
expectedAddress,
|
|
436
|
-
walletConnector: this,
|
|
437
|
-
});
|
|
438
451
|
});
|
|
439
452
|
}
|
|
440
453
|
}
|
|
@@ -25,7 +25,6 @@ export type GetAddressOpts = {
|
|
|
25
25
|
onDisplayUri?(uri: string): void;
|
|
26
26
|
};
|
|
27
27
|
export type GetConnectedAccountsOpts = {
|
|
28
|
-
forceFetch?: boolean;
|
|
29
28
|
chooseAccounts?: boolean;
|
|
30
29
|
};
|
|
31
30
|
export type NameServiceData = {
|
|
@@ -168,8 +167,6 @@ export declare abstract class WalletConnectorBase<C extends WalletConstructor<an
|
|
|
168
167
|
* Get the address silently
|
|
169
168
|
*
|
|
170
169
|
* @param options - GetConnectedAccountsOpts
|
|
171
|
-
* forceFetch - if true it will fetch the address again even if wallet
|
|
172
|
-
* has getConnectedAccounts limitation in wallet-book
|
|
173
170
|
* chooseAccounts - if true will prompt for the user to choose accounts to connect (if supported)
|
|
174
171
|
* @default Promise<[]>
|
|
175
172
|
*/
|
|
@@ -292,7 +289,7 @@ export declare abstract class WalletConnectorBase<C extends WalletConstructor<an
|
|
|
292
289
|
*
|
|
293
290
|
* @default Promise<undefined>
|
|
294
291
|
*/
|
|
295
|
-
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
292
|
+
signMessage(messageToSign: string, withAddress?: string): Promise<string | undefined>;
|
|
296
293
|
/**
|
|
297
294
|
* List of supported chains for this wallet
|
|
298
295
|
*/
|
|
@@ -337,6 +334,18 @@ export declare abstract class WalletConnectorBase<C extends WalletConstructor<an
|
|
|
337
334
|
* @default true
|
|
338
335
|
*/
|
|
339
336
|
canGetChainAddress(): boolean;
|
|
337
|
+
/**
|
|
338
|
+
* Prompts the user to make expected wallet active
|
|
339
|
+
*
|
|
340
|
+
* @throws {WalletAddressMismatchError} If the active address does not match the expected address.
|
|
341
|
+
* @returns {Promise<void>} A promise that resolves when the active address matches the expected address,
|
|
342
|
+
* otherwise rejects with an error.
|
|
343
|
+
*/
|
|
344
|
+
handleWalletNotActive({ activeAddress, expectedAddress, reconnectedAddress, }: {
|
|
345
|
+
expectedAddress: string;
|
|
346
|
+
activeAddress?: string;
|
|
347
|
+
reconnectedAddress?: string;
|
|
348
|
+
}): Promise<void>;
|
|
340
349
|
/**
|
|
341
350
|
* Validates if the address is connected and active in the wallet app
|
|
342
351
|
*
|
|
@@ -233,8 +233,6 @@ class WalletConnectorBase extends EventEmitter {
|
|
|
233
233
|
* Get the address silently
|
|
234
234
|
*
|
|
235
235
|
* @param options - GetConnectedAccountsOpts
|
|
236
|
-
* forceFetch - if true it will fetch the address again even if wallet
|
|
237
|
-
* has getConnectedAccounts limitation in wallet-book
|
|
238
236
|
* chooseAccounts - if true will prompt for the user to choose accounts to connect (if supported)
|
|
239
237
|
* @default Promise<[]>
|
|
240
238
|
*/
|
|
@@ -330,7 +328,7 @@ class WalletConnectorBase extends EventEmitter {
|
|
|
330
328
|
*
|
|
331
329
|
* @default Promise<undefined>
|
|
332
330
|
*/
|
|
333
|
-
signMessage(messageToSign) {
|
|
331
|
+
signMessage(messageToSign, withAddress) {
|
|
334
332
|
return Promise.resolve(undefined);
|
|
335
333
|
}
|
|
336
334
|
/**
|
|
@@ -366,6 +364,37 @@ class WalletConnectorBase extends EventEmitter {
|
|
|
366
364
|
canGetChainAddress() {
|
|
367
365
|
return true;
|
|
368
366
|
}
|
|
367
|
+
/**
|
|
368
|
+
* Prompts the user to make expected wallet active
|
|
369
|
+
*
|
|
370
|
+
* @throws {WalletAddressMismatchError} If the active address does not match the expected address.
|
|
371
|
+
* @returns {Promise<void>} A promise that resolves when the active address matches the expected address,
|
|
372
|
+
* otherwise rejects with an error.
|
|
373
|
+
*/
|
|
374
|
+
handleWalletNotActive(_a) {
|
|
375
|
+
return __awaiter(this, arguments, void 0, function* ({ activeAddress, expectedAddress, reconnectedAddress, }) {
|
|
376
|
+
logger.debug('validateActiveWallet - wallet is not active', {
|
|
377
|
+
activeAddress,
|
|
378
|
+
expectedAddress,
|
|
379
|
+
reconnectedAddress,
|
|
380
|
+
});
|
|
381
|
+
const currentActiveAddress = activeAddress || reconnectedAddress || '';
|
|
382
|
+
const walletUiUtils = this.constructorProps
|
|
383
|
+
.walletUiUtils;
|
|
384
|
+
if (!walletUiUtils) {
|
|
385
|
+
throw new WalletAddressMismatchError(`Wallet ${expectedAddress !== null && expectedAddress !== void 0 ? expectedAddress : ''} is not currently active in ${this.name || this.key}.`, {
|
|
386
|
+
activeAddress: currentActiveAddress,
|
|
387
|
+
expectedAddress,
|
|
388
|
+
walletName: this.name || this.key,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
return walletUiUtils.syncWallet({
|
|
392
|
+
activeAddress: currentActiveAddress,
|
|
393
|
+
expectedAddress,
|
|
394
|
+
walletConnector: this,
|
|
395
|
+
});
|
|
396
|
+
});
|
|
397
|
+
}
|
|
369
398
|
/**
|
|
370
399
|
* Validates if the address is connected and active in the wallet app
|
|
371
400
|
*
|
|
@@ -375,19 +404,16 @@ class WalletConnectorBase extends EventEmitter {
|
|
|
375
404
|
*/
|
|
376
405
|
validateActiveWallet(expectedAddress) {
|
|
377
406
|
return __awaiter(this, void 0, void 0, function* () {
|
|
378
|
-
var _a, _b;
|
|
379
407
|
logger.debug('validateActiveWallet - validating wallet', expectedAddress);
|
|
380
408
|
const canFetchConnectedAccounts = isConnectorMethodSupported(this, 'getConnectedAccounts', 'browserExtension');
|
|
381
409
|
logger.debug('validateActiveWallet - getting connected accounts', {
|
|
382
410
|
canFetchConnectedAccounts,
|
|
383
411
|
});
|
|
384
412
|
const [activeAddress] = canFetchConnectedAccounts
|
|
385
|
-
? yield this.getConnectedAccounts(
|
|
413
|
+
? yield this.getConnectedAccounts()
|
|
386
414
|
: [];
|
|
387
415
|
const isWalletActive = activeAddress &&
|
|
388
416
|
isSameAddress(activeAddress, expectedAddress, this.connectedChain);
|
|
389
|
-
const walletUiUtils = this.constructorProps
|
|
390
|
-
.walletUiUtils;
|
|
391
417
|
if (isWalletActive) {
|
|
392
418
|
logger.debug('validateActiveWallet - wallet is active');
|
|
393
419
|
return;
|
|
@@ -409,24 +435,11 @@ class WalletConnectorBase extends EventEmitter {
|
|
|
409
435
|
logger.debug('validateActiveWallet - wallet reconnected successfuly');
|
|
410
436
|
return;
|
|
411
437
|
}
|
|
412
|
-
|
|
438
|
+
return this.handleWalletNotActive({
|
|
413
439
|
activeAddress,
|
|
414
440
|
expectedAddress,
|
|
415
441
|
reconnectedAddress,
|
|
416
442
|
});
|
|
417
|
-
const currentActiveAddress = activeAddress || reconnectedAddress || '';
|
|
418
|
-
if (!walletUiUtils) {
|
|
419
|
-
throw new WalletAddressMismatchError(`Wallet ${expectedAddress !== null && expectedAddress !== void 0 ? expectedAddress : ''} is not currently active in ${(_a = this.name) !== null && _a !== void 0 ? _a : this.key}.`, {
|
|
420
|
-
activeAddress: currentActiveAddress,
|
|
421
|
-
expectedAddress,
|
|
422
|
-
walletName: (_b = this.name) !== null && _b !== void 0 ? _b : this.key,
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
return walletUiUtils.syncWallet({
|
|
426
|
-
activeAddress: currentActiveAddress,
|
|
427
|
-
expectedAddress,
|
|
428
|
-
walletConnector: this,
|
|
429
|
-
});
|
|
430
443
|
});
|
|
431
444
|
}
|
|
432
445
|
}
|
|
@@ -90,7 +90,7 @@ class Wallet extends types.BaseWallet {
|
|
|
90
90
|
signMessage(messageToSign) {
|
|
91
91
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
92
92
|
yield this.sync();
|
|
93
|
-
return this._connector.signMessage(messageToSign);
|
|
93
|
+
return this._connector.signMessage(messageToSign, this.address);
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
@@ -86,7 +86,7 @@ class Wallet extends BaseWallet {
|
|
|
86
86
|
signMessage(messageToSign) {
|
|
87
87
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
88
|
yield this.sync();
|
|
89
|
-
return this._connector.signMessage(messageToSign);
|
|
89
|
+
return this._connector.signMessage(messageToSign, this.address);
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
/**
|