@dynamic-labs/multi-wallet 0.16.17 → 0.16.19

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,18 @@
1
1
 
2
+ ### [0.16.19](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.18...v0.16.19) (2023-06-01)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * use wcv2 only if wallet supports it ([#2204](https://github.com/dynamic-labs/DynamicAuth/issues/2204)) ([f314d29](https://github.com/dynamic-labs/DynamicAuth/commit/f314d2940611fb130c43cb15526efe83e995d0ad))
8
+
9
+ ### [0.16.18](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.17...v0.16.18) (2023-05-31)
10
+
11
+
12
+ ### Features
13
+
14
+ * **DYN-2402:** coinbase issues after disconnecting ([#2181](https://github.com/dynamic-labs/DynamicAuth/issues/2181)) ([9674361](https://github.com/dynamic-labs/DynamicAuth/commit/96743612c49fbb097dcf32a125f0ef4f2a870ddc))
15
+
2
16
  ### [0.16.17](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.16...v0.16.17) (2023-05-30)
3
17
 
4
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/multi-wallet",
3
- "version": "0.16.17",
3
+ "version": "0.16.19",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -28,8 +28,8 @@
28
28
  "magic-sdk": "^16.0.1",
29
29
  "@keplr-wallet/provider": "0.11.56",
30
30
  "@keplr-wallet/types": "^0.11.51",
31
- "@dynamic-labs/logger": "0.16.17",
32
- "@dynamic-labs/wallet-connector-core": "0.16.17"
31
+ "@dynamic-labs/logger": "0.16.19",
32
+ "@dynamic-labs/wallet-connector-core": "0.16.19"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@walletconnect/types": "^2.2.1"
@@ -10,33 +10,36 @@ var constants = require('../../constants.cjs');
10
10
 
11
11
  const jsonRpcUrl = `https://mainnet.infura.io/v3/${constants.infuraId}`;
12
12
  const chainId = 1;
13
+ let coinbaseProvider;
13
14
  const getCoinbaseProvider = ({ opts: { appLogoUrl, appName = '', evmNetworks = [] } = {}, handlers, }) => {
14
15
  var _a, _b;
15
- const coinbaseWalletSDK = new walletSdk.CoinbaseWalletSDK({
16
- appLogoUrl,
17
- appName,
18
- eventListener: {
19
- onEvent: (eventType) => {
20
- if (eventType === 'walletlink_sdk.disconnected') {
21
- handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
22
- }
16
+ if (!coinbaseProvider) {
17
+ const coinbaseWalletSDK = new walletSdk.CoinbaseWalletSDK({
18
+ appLogoUrl,
19
+ appName,
20
+ eventListener: {
21
+ onEvent: (eventType) => {
22
+ if (eventType === 'walletlink_sdk.disconnected') {
23
+ handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
24
+ }
25
+ },
23
26
  },
24
- },
25
- headlessMode: true,
26
- reloadOnDisconnect: false,
27
- });
28
- const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
29
- const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) || jsonRpcUrl;
30
- return coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
31
- };
32
- const killCoinbaseSession = () => {
33
- const provider = getCoinbaseProvider({
34
- opts: { appLogoUrl: '', appName: '' },
35
- });
36
- if (provider.connected) {
37
- provider.close();
27
+ headlessMode: true,
28
+ });
29
+ const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
30
+ const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) ||
31
+ ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) ||
32
+ jsonRpcUrl;
33
+ coinbaseProvider = coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
38
34
  }
35
+ return coinbaseProvider;
39
36
  };
37
+ const killCoinbaseSession = () => tslib.__awaiter(void 0, void 0, void 0, function* () {
38
+ if (coinbaseProvider) {
39
+ coinbaseProvider.close();
40
+ coinbaseProvider.disconnect();
41
+ }
42
+ });
40
43
  const fetchPublicAddress = (coinbaseProviderOpts, opts) => tslib.__awaiter(void 0, void 0, void 0, function* () {
41
44
  var _a;
42
45
  const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
@@ -1,6 +1,6 @@
1
1
  import { FetchPublicAddressOpts } from '@dynamic-labs/wallet-connector-core';
2
2
  import { GetCoinbaseProvider, GetCoinbaseProviderOpts } from './types';
3
3
  export declare const getCoinbaseProvider: GetCoinbaseProvider;
4
- export declare const killCoinbaseSession: () => void;
4
+ export declare const killCoinbaseSession: () => Promise<void>;
5
5
  export declare const fetchPublicAddress: (coinbaseProviderOpts: GetCoinbaseProviderOpts, opts?: FetchPublicAddressOpts) => Promise<string | undefined>;
6
6
  export declare const signMessage: (coinbaseProviderOpts: GetCoinbaseProviderOpts, messageToSign: string) => Promise<string | undefined>;
@@ -6,33 +6,36 @@ import { infuraId } from '../../constants.js';
6
6
 
7
7
  const jsonRpcUrl = `https://mainnet.infura.io/v3/${infuraId}`;
8
8
  const chainId = 1;
9
+ let coinbaseProvider;
9
10
  const getCoinbaseProvider = ({ opts: { appLogoUrl, appName = '', evmNetworks = [] } = {}, handlers, }) => {
10
11
  var _a, _b;
11
- const coinbaseWalletSDK = new CoinbaseWalletSDK({
12
- appLogoUrl,
13
- appName,
14
- eventListener: {
15
- onEvent: (eventType) => {
16
- if (eventType === 'walletlink_sdk.disconnected') {
17
- handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
18
- }
12
+ if (!coinbaseProvider) {
13
+ const coinbaseWalletSDK = new CoinbaseWalletSDK({
14
+ appLogoUrl,
15
+ appName,
16
+ eventListener: {
17
+ onEvent: (eventType) => {
18
+ if (eventType === 'walletlink_sdk.disconnected') {
19
+ handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
20
+ }
21
+ },
19
22
  },
20
- },
21
- headlessMode: true,
22
- reloadOnDisconnect: false,
23
- });
24
- const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
25
- const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) || jsonRpcUrl;
26
- return coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
27
- };
28
- const killCoinbaseSession = () => {
29
- const provider = getCoinbaseProvider({
30
- opts: { appLogoUrl: '', appName: '' },
31
- });
32
- if (provider.connected) {
33
- provider.close();
23
+ headlessMode: true,
24
+ });
25
+ const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
26
+ const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) ||
27
+ ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) ||
28
+ jsonRpcUrl;
29
+ coinbaseProvider = coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
34
30
  }
31
+ return coinbaseProvider;
35
32
  };
33
+ const killCoinbaseSession = () => __awaiter(void 0, void 0, void 0, function* () {
34
+ if (coinbaseProvider) {
35
+ coinbaseProvider.close();
36
+ coinbaseProvider.disconnect();
37
+ }
38
+ });
36
39
  const fetchPublicAddress = (coinbaseProviderOpts, opts) => __awaiter(void 0, void 0, void 0, function* () {
37
40
  var _a;
38
41
  const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
@@ -2,24 +2,29 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var walletBook = require('@dynamic-labs/wallet-book');
5
6
  var walletConnect = require('./walletConnect/walletConnect.cjs');
6
7
  var walletConnectV2 = require('./walletConnect/walletConnectV2.cjs');
7
8
 
8
9
  const getMobileOrInjectedWallet = ({ evmNetworks, injectedWallet, isWalletConnectV2 = false, walletConnectName, }) => {
10
+ var _a, _b;
9
11
  if (injectedWallet.isInstalledOnBrowser()) {
10
12
  return injectedWallet;
11
13
  }
12
- else if (isWalletConnectV2) {
13
- return new walletConnectV2["default"]({
14
- evmNetworks,
15
- walletName: walletConnectName,
16
- });
17
- }
18
14
  else {
19
- return new walletConnect({
20
- evmNetworks,
21
- walletName: walletConnectName,
22
- });
15
+ const wallet = walletBook.getWalletBookWallet(walletConnectName);
16
+ if (isWalletConnectV2 && ((_b = (_a = wallet.walletConnect) === null || _a === void 0 ? void 0 : _a.sdks) === null || _b === void 0 ? void 0 : _b.includes('sign_v2'))) {
17
+ return new walletConnectV2["default"]({
18
+ evmNetworks,
19
+ walletName: walletConnectName,
20
+ });
21
+ }
22
+ else {
23
+ return new walletConnect({
24
+ evmNetworks,
25
+ walletName: walletConnectName,
26
+ });
27
+ }
23
28
  }
24
29
  };
25
30
 
@@ -1,21 +1,26 @@
1
+ import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
1
2
  import WalletConnect from './walletConnect/walletConnect.js';
2
3
  import WalletConnectV2 from './walletConnect/walletConnectV2.js';
3
4
 
4
5
  const getMobileOrInjectedWallet = ({ evmNetworks, injectedWallet, isWalletConnectV2 = false, walletConnectName, }) => {
6
+ var _a, _b;
5
7
  if (injectedWallet.isInstalledOnBrowser()) {
6
8
  return injectedWallet;
7
9
  }
8
- else if (isWalletConnectV2) {
9
- return new WalletConnectV2({
10
- evmNetworks,
11
- walletName: walletConnectName,
12
- });
13
- }
14
10
  else {
15
- return new WalletConnect({
16
- evmNetworks,
17
- walletName: walletConnectName,
18
- });
11
+ const wallet = getWalletBookWallet(walletConnectName);
12
+ if (isWalletConnectV2 && ((_b = (_a = wallet.walletConnect) === null || _a === void 0 ? void 0 : _a.sdks) === null || _b === void 0 ? void 0 : _b.includes('sign_v2'))) {
13
+ return new WalletConnectV2({
14
+ evmNetworks,
15
+ walletName: walletConnectName,
16
+ });
17
+ }
18
+ else {
19
+ return new WalletConnect({
20
+ evmNetworks,
21
+ walletName: walletConnectName,
22
+ });
23
+ }
19
24
  }
20
25
  };
21
26