@dynamic-labs/wallet-connector-core 3.0.0-alpha.64 → 3.0.0-alpha.66

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 CHANGED
@@ -1,4 +1,25 @@
1
1
 
2
+ ## [3.0.0-alpha.66](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.65...v3.0.0-alpha.66) (2024-09-11)
3
+
4
+
5
+ ### Features
6
+
7
+ * add new method to BitcoinWallet to sign message with a specific address type ([#6861](https://github.com/dynamic-labs/DynamicAuth/issues/6861)) ([9284648](https://github.com/dynamic-labs/DynamicAuth/commit/92846488b4d60a498374dd60c4a0be3ab87e4e68))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * fix ethers-v6 exports ([#6863](https://github.com/dynamic-labs/DynamicAuth/issues/6863)) ([27a1aab](https://github.com/dynamic-labs/DynamicAuth/commit/27a1aabe6c5e6ed2501200f435b2cb5110836986))
13
+ * stop infinite rerendering when wagmi config error is thrown ([#6862](https://github.com/dynamic-labs/DynamicAuth/issues/6862)) ([9b2fac0](https://github.com/dynamic-labs/DynamicAuth/commit/9b2fac0a570246f4663057c1ff6c82a1adca64c6))
14
+ * update react-native packages to include correct dependencies ([#6859](https://github.com/dynamic-labs/DynamicAuth/issues/6859)) ([a6f6c1c](https://github.com/dynamic-labs/DynamicAuth/commit/a6f6c1c750d2d6916a94183059369e208ec9afa5))
15
+
16
+ ## [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)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * 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))
22
+
2
23
  ## [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
24
 
4
25
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/wallet-connector-core",
3
- "version": "3.0.0-alpha.64",
3
+ "version": "3.0.0-alpha.66",
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.64",
33
- "@dynamic-labs/rpc-providers": "3.0.0-alpha.64",
34
- "@dynamic-labs/types": "3.0.0-alpha.64",
35
- "@dynamic-labs/utils": "3.0.0-alpha.64",
36
- "@dynamic-labs/wallet-book": "3.0.0-alpha.64",
32
+ "@dynamic-labs/logger": "3.0.0-alpha.66",
33
+ "@dynamic-labs/rpc-providers": "3.0.0-alpha.66",
34
+ "@dynamic-labs/types": "3.0.0-alpha.66",
35
+ "@dynamic-labs/utils": "3.0.0-alpha.66",
36
+ "@dynamic-labs/wallet-book": "3.0.0-alpha.66",
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({ forceFetch: true })
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
- logger.logger.debug('validateActiveWallet - wallet is not active', {
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({ forceFetch: true })
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
- logger.debug('validateActiveWallet - wallet is not active', {
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
  /**