@dynamic-labs/multi-wallet 0.17.0-RC.5 → 0.17.0-RC.7

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/package.json +7 -4
  3. package/src/index.cjs +0 -5
  4. package/src/index.d.ts +0 -2
  5. package/src/index.js +0 -1
  6. package/src/multi-wallet.cjs +45 -76
  7. package/src/multi-wallet.js +45 -76
  8. package/src/types.d.ts +9 -28
  9. package/src/utils/findProvider/findProvider.cjs +7 -0
  10. package/src/utils/findProvider/findProvider.d.ts +2 -0
  11. package/src/utils/findProvider/findProvider.js +3 -0
  12. package/src/utils/findProvider/index.d.ts +1 -0
  13. package/src/utils/message.d.ts +2 -2
  14. package/src/utils/walletConnect.cjs +21 -20
  15. package/src/utils/walletConnect.d.ts +4 -3
  16. package/src/utils/walletConnect.js +21 -20
  17. package/src/wallets/clients/coinbase/types.d.ts +2 -2
  18. package/src/wallets/clients/walletConnect/walletConnect.cjs +8 -13
  19. package/src/wallets/clients/walletConnect/walletConnect.js +8 -13
  20. package/src/wallets/cosmos/KeplrWalletConnect.cjs +7 -6
  21. package/src/wallets/cosmos/KeplrWalletConnect.d.ts +3 -3
  22. package/src/wallets/cosmos/KeplrWalletConnect.js +7 -6
  23. package/src/wallets/cosmos/KeplrWalletConnector.cjs +9 -2
  24. package/src/wallets/cosmos/KeplrWalletConnector.d.ts +5 -3
  25. package/src/wallets/cosmos/KeplrWalletConnector.js +9 -2
  26. package/src/wallets/cosmos/getKeplrConnector.d.ts +2 -2
  27. package/src/wallets/ethereum/BloctoEvm.cjs +7 -7
  28. package/src/wallets/ethereum/BloctoEvm.d.ts +2 -5
  29. package/src/wallets/ethereum/BloctoEvm.js +7 -7
  30. package/src/wallets/ethereum/EthWalletConnector.cjs +27 -11
  31. package/src/wallets/ethereum/EthWalletConnector.d.ts +7 -4
  32. package/src/wallets/ethereum/EthWalletConnector.js +27 -11
  33. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +5 -4
  34. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +3 -3
  35. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +5 -4
  36. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +1 -0
  37. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +1 -0
  38. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +4 -2
  39. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +4 -3
  40. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +4 -2
  41. package/src/wallets/ethereum/coinbase.cjs +3 -2
  42. package/src/wallets/ethereum/coinbase.d.ts +6 -7
  43. package/src/wallets/ethereum/coinbase.js +4 -3
  44. package/src/wallets/ethereum/evm-network.cjs +2 -2
  45. package/src/wallets/ethereum/evm-network.d.ts +1 -17
  46. package/src/wallets/ethereum/evm-network.js +2 -2
  47. package/src/wallets/ethereum/fortmatic.cjs +3 -2
  48. package/src/wallets/ethereum/fortmatic.d.ts +5 -6
  49. package/src/wallets/ethereum/fortmatic.js +4 -3
  50. package/src/wallets/ethereum/meta-mask.d.ts +1 -1
  51. package/src/wallets/getMobileOrInjectedWallet.cjs +5 -9
  52. package/src/wallets/getMobileOrInjectedWallet.d.ts +5 -4
  53. package/src/wallets/getMobileOrInjectedWallet.js +5 -9
  54. package/src/wallets/getWalletConnectConnector.cjs +7 -10
  55. package/src/wallets/getWalletConnectConnector.d.ts +2 -5
  56. package/src/wallets/getWalletConnectConnector.js +7 -10
  57. package/src/wallets/solana/solWalletConnector.cjs +22 -4
  58. package/src/wallets/solana/solWalletConnector.d.ts +8 -5
  59. package/src/wallets/solana/solWalletConnector.js +22 -4
  60. package/src/wallets/walletConnect/walletConnect.cjs +3 -2
  61. package/src/wallets/walletConnect/walletConnect.d.ts +6 -6
  62. package/src/wallets/walletConnect/walletConnect.js +4 -3
  63. package/src/wallets/walletConnect/walletConnectV2.cjs +1 -1
  64. package/src/wallets/walletConnect/walletConnectV2.d.ts +7 -7
  65. package/src/wallets/walletConnect/walletConnectV2.js +1 -1
  66. package/src/wallets/walletConnect/zerion.d.ts +2 -4
  67. package/src/rpcProviders.cjs +0 -76
  68. package/src/rpcProviders.d.ts +0 -5
  69. package/src/rpcProviders.js +0 -69
@@ -1,26 +1,27 @@
1
+ import { __rest } from 'tslib';
1
2
  import { useWalletBook } from '@dynamic-labs/wallet-book';
2
3
  import WalletConnect from '../wallets/walletConnect/walletConnect.js';
3
4
  import WalletConnectV2 from '../wallets/walletConnect/walletConnectV2.js';
4
5
 
5
- const fetchWalletConnectWallets = (evmNetworks, isV2Enabled) => Object.values(useWalletBook().wallets)
6
- .filter((wallet) => wallet.walletConnect)
7
- .map((wallet) => {
8
- var _a;
9
- const { shortName } = wallet;
10
- const name = shortName || wallet.name;
11
- let connector;
12
- // justification: we filtered out null/undefined above
13
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
14
- if (isV2Enabled && ((_a = wallet.walletConnect.sdks) === null || _a === void 0 ? void 0 : _a.includes('sign_v2'))) {
15
- connector = new WalletConnectV2({
16
- evmNetworks,
17
- walletName: name,
18
- });
19
- }
20
- else {
21
- connector = new WalletConnect({ evmNetworks, walletName: name });
22
- }
23
- return connector;
24
- });
6
+ const fetchWalletConnectWallets = (_a) => {
7
+ var { isV2Enabled } = _a, props = __rest(_a, ["isV2Enabled"]);
8
+ return Object.values(useWalletBook().wallets)
9
+ .filter((wallet) => wallet.walletConnect)
10
+ .map((wallet) => {
11
+ var _a;
12
+ const { shortName } = wallet;
13
+ const name = shortName || wallet.name;
14
+ let connector;
15
+ // justification: we filtered out null/undefined above
16
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
17
+ if (isV2Enabled && ((_a = wallet.walletConnect.sdks) === null || _a === void 0 ? void 0 : _a.includes('sign_v2'))) {
18
+ connector = new WalletConnectV2(Object.assign(Object.assign({}, props), { walletName: name }));
19
+ }
20
+ else {
21
+ connector = new WalletConnect(Object.assign(Object.assign({}, props), { walletName: name }));
22
+ }
23
+ return connector;
24
+ });
25
+ };
25
26
 
26
27
  export { fetchWalletConnectWallets };
@@ -1,9 +1,9 @@
1
1
  import { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
2
- import { EvmNetwork } from '../../ethereum/evm-network';
2
+ import { GenericNetwork } from '@dynamic-labs/types';
3
3
  export type GetCoinbaseProviderOpts = {
4
4
  appLogoUrl?: string;
5
5
  appName?: string;
6
- evmNetworks?: EvmNetwork[];
6
+ evmNetworks?: GenericNetwork[];
7
7
  };
8
8
  export type CoinbaseProviderHandlerOpts = {
9
9
  onDisconnect(): Promise<void>;
@@ -101,19 +101,14 @@ const getDeepLink = (uri, metadata, { removeWCUri = false, } = {}) => {
101
101
  };
102
102
  const createSession = (client) => tslib.__awaiter(void 0, void 0, void 0, function* () {
103
103
  return new Promise((resolve, reject) => {
104
- try {
105
- client.on('connect', (error, payload) => tslib.__awaiter(void 0, void 0, void 0, function* () {
106
- if (error)
107
- throw error;
108
- resolve(payload);
109
- }));
110
- client.on('disconnect', (error, payload) => {
111
- throw error || payload.params[0].message;
112
- });
113
- }
114
- catch (e) {
115
- reject(e);
116
- }
104
+ client.on('connect', (error, payload) => tslib.__awaiter(void 0, void 0, void 0, function* () {
105
+ if (error)
106
+ throw error;
107
+ resolve(payload);
108
+ }));
109
+ client.on('disconnect', (error, payload) => {
110
+ reject(error || payload.params[0].message);
111
+ });
117
112
  });
118
113
  });
119
114
  const useDeepLink = (metadata, wcClient, opts) => {
@@ -93,19 +93,14 @@ const getDeepLink = (uri, metadata, { removeWCUri = false, } = {}) => {
93
93
  };
94
94
  const createSession = (client) => __awaiter(void 0, void 0, void 0, function* () {
95
95
  return new Promise((resolve, reject) => {
96
- try {
97
- client.on('connect', (error, payload) => __awaiter(void 0, void 0, void 0, function* () {
98
- if (error)
99
- throw error;
100
- resolve(payload);
101
- }));
102
- client.on('disconnect', (error, payload) => {
103
- throw error || payload.params[0].message;
104
- });
105
- }
106
- catch (e) {
107
- reject(e);
108
- }
96
+ client.on('connect', (error, payload) => __awaiter(void 0, void 0, void 0, function* () {
97
+ if (error)
98
+ throw error;
99
+ resolve(payload);
100
+ }));
101
+ client.on('disconnect', (error, payload) => {
102
+ reject(error || payload.params[0].message);
103
+ });
109
104
  });
110
105
  });
111
106
  const useDeepLink = (metadata, wcClient, opts) => {
@@ -3,6 +3,7 @@
3
3
  var tslib = require('tslib');
4
4
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
5
5
  var walletBook = require('@dynamic-labs/wallet-book');
6
+ var utils = require('@dynamic-labs/utils');
6
7
  var walletConnect = require('../clients/walletConnect/walletConnect.cjs');
7
8
  var isMobile = require('../../utils/isMobile.cjs');
8
9
  var logger = require('../../utils/logger.cjs');
@@ -11,7 +12,6 @@ var wcClient = require('./wcClient.cjs');
11
12
  const DYNAMIC_KEPLR_NETWORK_ID = 'dynamic_keplr_wc_network_id';
12
13
  class KeplrWalletConnect extends walletConnectorCore.WalletConnectorBase {
13
14
  constructor({ evmNetworks }) {
14
- var _a;
15
15
  super();
16
16
  this.name = 'Keplr';
17
17
  this.isWalletConnect = true;
@@ -29,22 +29,23 @@ class KeplrWalletConnect extends walletConnectorCore.WalletConnectorBase {
29
29
  };
30
30
  this.supportedChains = ['COSMOS'];
31
31
  this.connectedChain = 'COSMOS';
32
- this.evmNetworks = evmNetworks;
32
+ this.evmNetworks = utils.parseEvmNetworks(evmNetworks);
33
33
  const persistedNetworkId = localStorage.getItem(DYNAMIC_KEPLR_NETWORK_ID);
34
34
  if (persistedNetworkId) {
35
35
  this.selectedNetworkId = Number(persistedNetworkId);
36
36
  }
37
37
  else {
38
- this.selectedNetworkId = ((_a = evmNetworks[0]) === null || _a === void 0 ? void 0 : _a.chainId) || 401;
38
+ this.selectedNetworkId =
39
+ (evmNetworks[0] && utils.parseChainId(evmNetworks[0].chainId)) || 401;
39
40
  }
40
41
  }
41
42
  get evmNetwork() {
42
43
  var _a;
43
- return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => network.chainId === this.selectedNetworkId);
44
+ return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => utils.parseChainId(network.chainId) === this.selectedNetworkId);
44
45
  }
45
46
  get selectedNetwork() {
46
47
  var _a;
47
- return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => network.networkId === this.selectedNetworkId);
48
+ return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => utils.parseChainId(network.networkId) === this.selectedNetworkId);
48
49
  }
49
50
  get lcdUrl() {
50
51
  var _a;
@@ -58,7 +59,7 @@ class KeplrWalletConnect extends walletConnectorCore.WalletConnectorBase {
58
59
  if (!this.selectedNetwork) {
59
60
  return 'osmosis-1';
60
61
  }
61
- return this.chainIdMap[this.selectedNetwork.chainId];
62
+ return this.chainIdMap[utils.parseChainId(this.selectedNetwork.chainId)];
62
63
  }
63
64
  getProvider() {
64
65
  if (!this._keplrInstance) {
@@ -1,12 +1,12 @@
1
1
  import Client from '@walletconnect/client';
2
2
  import { OfflineAminoSigner } from '@keplr-wallet/types';
3
3
  import { Chain, FetchPublicAddressOpts, WalletConnectorBase, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
4
- import { EvmNetwork } from '../ethereum/evm-network';
4
+ import { EvmNetwork, GenericNetwork } from '@dynamic-labs/types';
5
5
  import { SwitchNetworkOps } from '../ethereum/EthWalletConnector';
6
6
  import { KeplrWalletConnectV1 } from './wcClient';
7
7
  declare class KeplrWalletConnect extends WalletConnectorBase {
8
8
  constructor({ evmNetworks }: {
9
- evmNetworks: EvmNetwork[];
9
+ evmNetworks: GenericNetwork[];
10
10
  });
11
11
  name: string;
12
12
  isWalletConnect: boolean;
@@ -22,7 +22,7 @@ declare class KeplrWalletConnect extends WalletConnectorBase {
22
22
  connectedChain: Chain;
23
23
  _keplrInstance: KeplrWalletConnectV1 | undefined;
24
24
  get evmNetwork(): EvmNetwork | undefined;
25
- get selectedNetwork(): EvmNetwork | undefined;
25
+ get selectedNetwork(): GenericNetwork | undefined;
26
26
  get lcdUrl(): string | undefined;
27
27
  get denom(): string | undefined;
28
28
  get chainId(): string;
@@ -1,6 +1,7 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
3
3
  import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
4
+ import { parseEvmNetworks, parseChainId } from '@dynamic-labs/utils';
4
5
  import { initClient, fetchWalletConnectCosmosPublicAddress, killWalletConnectSession, getDeepLink, setupWalletConnectEventListeners, teardownWalletConnectEventListeners } from '../clients/walletConnect/walletConnect.js';
5
6
  import { isMobile, isIOS } from '../../utils/isMobile.js';
6
7
  import { logger } from '../../utils/logger.js';
@@ -9,7 +10,6 @@ import { KeplrWalletConnectV1 } from './wcClient.js';
9
10
  const DYNAMIC_KEPLR_NETWORK_ID = 'dynamic_keplr_wc_network_id';
10
11
  class KeplrWalletConnect extends WalletConnectorBase {
11
12
  constructor({ evmNetworks }) {
12
- var _a;
13
13
  super();
14
14
  this.name = 'Keplr';
15
15
  this.isWalletConnect = true;
@@ -27,22 +27,23 @@ class KeplrWalletConnect extends WalletConnectorBase {
27
27
  };
28
28
  this.supportedChains = ['COSMOS'];
29
29
  this.connectedChain = 'COSMOS';
30
- this.evmNetworks = evmNetworks;
30
+ this.evmNetworks = parseEvmNetworks(evmNetworks);
31
31
  const persistedNetworkId = localStorage.getItem(DYNAMIC_KEPLR_NETWORK_ID);
32
32
  if (persistedNetworkId) {
33
33
  this.selectedNetworkId = Number(persistedNetworkId);
34
34
  }
35
35
  else {
36
- this.selectedNetworkId = ((_a = evmNetworks[0]) === null || _a === void 0 ? void 0 : _a.chainId) || 401;
36
+ this.selectedNetworkId =
37
+ (evmNetworks[0] && parseChainId(evmNetworks[0].chainId)) || 401;
37
38
  }
38
39
  }
39
40
  get evmNetwork() {
40
41
  var _a;
41
- return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => network.chainId === this.selectedNetworkId);
42
+ return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => parseChainId(network.chainId) === this.selectedNetworkId);
42
43
  }
43
44
  get selectedNetwork() {
44
45
  var _a;
45
- return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => network.networkId === this.selectedNetworkId);
46
+ return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => parseChainId(network.networkId) === this.selectedNetworkId);
46
47
  }
47
48
  get lcdUrl() {
48
49
  var _a;
@@ -56,7 +57,7 @@ class KeplrWalletConnect extends WalletConnectorBase {
56
57
  if (!this.selectedNetwork) {
57
58
  return 'osmosis-1';
58
59
  }
59
- return this.chainIdMap[this.selectedNetwork.chainId];
60
+ return this.chainIdMap[parseChainId(this.selectedNetwork.chainId)];
60
61
  }
61
62
  getProvider() {
62
63
  if (!this._keplrInstance) {
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
7
+ var utils = require('@dynamic-labs/utils');
7
8
  var logger = require('../../utils/logger.cjs');
8
9
 
9
10
  const DYNAMIC_KEPLR_NETWORK_ID = 'dynamic_keplr_network_id';
@@ -11,7 +12,7 @@ class KeplrWalletConnector extends walletConnectorCore.WalletConnectorBase {
11
12
  constructor({ evmNetworks }) {
12
13
  super();
13
14
  this.switchNetworkOnlyFromWallet = true;
14
- this.selectedNetworkId = 401;
15
+ this._selectedNetworkId = 401;
15
16
  this.name = 'Keplr';
16
17
  this.connectedChain = 'COSMOS';
17
18
  this.supportedChains = ['COSMOS'];
@@ -20,13 +21,19 @@ class KeplrWalletConnector extends walletConnectorCore.WalletConnectorBase {
20
21
  402: 'axelar-dojo-1',
21
22
  403: 'osmosis-1',
22
23
  };
23
- this.evmNetworks = evmNetworks;
24
+ this.evmNetworks = utils.parseEvmNetworks(evmNetworks);
24
25
  this._handleAccountChange = this._handleAccountChange.bind(this);
25
26
  const persistedNetworkId = localStorage.getItem(DYNAMIC_KEPLR_NETWORK_ID);
26
27
  if (persistedNetworkId) {
27
28
  this.selectedNetworkId = Number(persistedNetworkId);
28
29
  }
29
30
  }
31
+ get selectedNetworkId() {
32
+ return this._selectedNetworkId;
33
+ }
34
+ set selectedNetworkId(networkId) {
35
+ this._selectedNetworkId = utils.parseChainId(networkId);
36
+ }
30
37
  getWeb3Provider() {
31
38
  return this.keplr;
32
39
  }
@@ -1,7 +1,7 @@
1
1
  import { Keplr as KeplrWallet } from '@keplr-wallet/types';
2
2
  import { Chain, WalletConnectorBase, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
3
+ import { EvmNetwork, GenericNetwork } from '@dynamic-labs/types';
3
4
  import { SwitchNetworkOps } from '../ethereum/EthWalletConnector';
4
- import { EvmNetwork } from '../ethereum/evm-network';
5
5
  export interface IFetchBalanceResponse {
6
6
  balances: IFetchBalanceBalance[];
7
7
  pagination: IFetchBalancePagination;
@@ -17,14 +17,16 @@ export interface IFetchBalancePagination {
17
17
  export declare class KeplrWalletConnector extends WalletConnectorBase {
18
18
  evmNetworks: EvmNetwork[];
19
19
  switchNetworkOnlyFromWallet: boolean;
20
- selectedNetworkId: number;
20
+ private _selectedNetworkId;
21
21
  name: string;
22
22
  connectedChain: Chain;
23
23
  supportedChains: Chain[];
24
24
  chainIdMap: Record<number, string>;
25
25
  constructor({ evmNetworks }: {
26
- evmNetworks: EvmNetwork[];
26
+ evmNetworks: GenericNetwork[];
27
27
  });
28
+ get selectedNetworkId(): number;
29
+ set selectedNetworkId(networkId: number);
28
30
  getWeb3Provider(): KeplrWallet;
29
31
  getDeepLink(): string | undefined;
30
32
  get selectedNetwork(): EvmNetwork | undefined;
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
3
+ import { parseEvmNetworks, parseChainId } from '@dynamic-labs/utils';
3
4
  import { logger } from '../../utils/logger.js';
4
5
 
5
6
  const DYNAMIC_KEPLR_NETWORK_ID = 'dynamic_keplr_network_id';
@@ -7,7 +8,7 @@ class KeplrWalletConnector extends WalletConnectorBase {
7
8
  constructor({ evmNetworks }) {
8
9
  super();
9
10
  this.switchNetworkOnlyFromWallet = true;
10
- this.selectedNetworkId = 401;
11
+ this._selectedNetworkId = 401;
11
12
  this.name = 'Keplr';
12
13
  this.connectedChain = 'COSMOS';
13
14
  this.supportedChains = ['COSMOS'];
@@ -16,13 +17,19 @@ class KeplrWalletConnector extends WalletConnectorBase {
16
17
  402: 'axelar-dojo-1',
17
18
  403: 'osmosis-1',
18
19
  };
19
- this.evmNetworks = evmNetworks;
20
+ this.evmNetworks = parseEvmNetworks(evmNetworks);
20
21
  this._handleAccountChange = this._handleAccountChange.bind(this);
21
22
  const persistedNetworkId = localStorage.getItem(DYNAMIC_KEPLR_NETWORK_ID);
22
23
  if (persistedNetworkId) {
23
24
  this.selectedNetworkId = Number(persistedNetworkId);
24
25
  }
25
26
  }
27
+ get selectedNetworkId() {
28
+ return this._selectedNetworkId;
29
+ }
30
+ set selectedNetworkId(networkId) {
31
+ this._selectedNetworkId = parseChainId(networkId);
32
+ }
26
33
  getWeb3Provider() {
27
34
  return this.keplr;
28
35
  }
@@ -1,6 +1,6 @@
1
- import { EvmNetwork } from '../ethereum/evm-network';
1
+ import { GenericNetwork } from '@dynamic-labs/types';
2
2
  import { KeplrWalletConnector } from './KeplrWalletConnector';
3
3
  import KeplrWalletConnect from './KeplrWalletConnect';
4
4
  export declare const getKeplerConnector: ({ evmNetworks, }: {
5
- evmNetworks: EvmNetwork[];
5
+ evmNetworks: GenericNetwork[];
6
6
  }) => KeplrWalletConnector | KeplrWalletConnect;
@@ -12,12 +12,9 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
12
12
  var BloctoSDK__default = /*#__PURE__*/_interopDefaultLegacy(BloctoSDK);
13
13
 
14
14
  class BloctoEvm extends EthWalletConnector.EthWalletConnector {
15
- constructor({ evmNetworks }) {
15
+ constructor(props) {
16
16
  var _a, _b;
17
- // Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
18
- const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
19
- const bloctoSupportedNetworks = evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
20
- super({ evmNetworks: bloctoSupportedNetworks });
17
+ super(props);
21
18
  this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
22
19
  this.name = 'bloctoevm';
23
20
  this.canConnectViaCustodialService = true;
@@ -25,10 +22,13 @@ class BloctoEvm extends EthWalletConnector.EthWalletConnector {
25
22
  this.supportedChains = ['EVM', 'ETH'];
26
23
  this.ethProviderHelper = new ethProviderHelper.EthProviderHelper();
27
24
  this.supportsNetworkSwitching = () => false;
25
+ // Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
26
+ const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
27
+ this.evmNetworks = this.evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
28
28
  this.chainId =
29
29
  Number(localStorage.getItem(this.LOCAL_STORAGE_KEY)) ||
30
- ((_a = bloctoSupportedNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
31
- ((_b = bloctoSupportedNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
30
+ ((_a = this.evmNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
31
+ ((_b = this.evmNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
32
32
  }
33
33
  getClient() {
34
34
  if (!this.client) {
@@ -1,7 +1,6 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { Chain } from '@dynamic-labs/wallet-connector-core';
3
- import { EvmNetwork } from './evm-network';
4
- import { EthWalletConnector } from './EthWalletConnector';
3
+ import { EthWalletConnector, EthWalletConnectorOpts } from './EthWalletConnector';
5
4
  import { EthProviderHelper } from './ethProviderHelper';
6
5
  declare class BloctoEvm extends EthWalletConnector {
7
6
  LOCAL_STORAGE_KEY: string;
@@ -13,9 +12,7 @@ declare class BloctoEvm extends EthWalletConnector {
13
12
  chainId: number;
14
13
  ethProviderHelper: EthProviderHelper;
15
14
  supportsNetworkSwitching: () => boolean;
16
- constructor({ evmNetworks }: {
17
- evmNetworks: EvmNetwork[];
18
- });
15
+ constructor(props: EthWalletConnectorOpts);
19
16
  private getClient;
20
17
  getWeb3Provider(): ethers.providers.Web3Provider | undefined;
21
18
  fetchPublicAddress(): Promise<string | undefined>;
@@ -6,12 +6,9 @@ import { EthWalletConnector } from './EthWalletConnector.js';
6
6
  import { EthProviderHelper } from './ethProviderHelper.js';
7
7
 
8
8
  class BloctoEvm extends EthWalletConnector {
9
- constructor({ evmNetworks }) {
9
+ constructor(props) {
10
10
  var _a, _b;
11
- // Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
12
- const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
13
- const bloctoSupportedNetworks = evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
14
- super({ evmNetworks: bloctoSupportedNetworks });
11
+ super(props);
15
12
  this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
16
13
  this.name = 'bloctoevm';
17
14
  this.canConnectViaCustodialService = true;
@@ -19,10 +16,13 @@ class BloctoEvm extends EthWalletConnector {
19
16
  this.supportedChains = ['EVM', 'ETH'];
20
17
  this.ethProviderHelper = new EthProviderHelper();
21
18
  this.supportsNetworkSwitching = () => false;
19
+ // Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
20
+ const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
21
+ this.evmNetworks = this.evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
22
22
  this.chainId =
23
23
  Number(localStorage.getItem(this.LOCAL_STORAGE_KEY)) ||
24
- ((_a = bloctoSupportedNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
25
- ((_b = bloctoSupportedNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
24
+ ((_a = this.evmNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
25
+ ((_b = this.evmNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
26
26
  }
27
27
  getClient() {
28
28
  if (!this.client) {
@@ -5,15 +5,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib = require('tslib');
6
6
  var ethers = require('ethers');
7
7
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
8
+ var utils = require('@dynamic-labs/utils');
9
+ var rpcProviders = require('@dynamic-labs/rpc-providers');
8
10
  var errors = require('../../errors.cjs');
9
- var rpcProviders = require('../../rpcProviders.cjs');
10
11
  var evmNetwork = require('./evm-network.cjs');
11
12
 
12
13
  class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
13
14
  getRpcProvider() {
14
- var _a, _b;
15
+ var _a, _b, _c;
15
16
  return tslib.__awaiter(this, void 0, void 0, function* () {
16
- const networkId = yield this.getNetwork();
17
+ const networkId = (_a = (yield this.getNetwork())) !== null && _a !== void 0 ? _a : 1;
17
18
  if (this.evmNetworks.length === 0) {
18
19
  return undefined;
19
20
  }
@@ -23,13 +24,11 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
23
24
  solana: [],
24
25
  starknet: undefined,
25
26
  };
26
- if (!networkId) {
27
- return (_a = rpcProviders.getEvmDefaultRpcProvider(configurations)) === null || _a === void 0 ? void 0 : _a.provider;
28
- }
29
- return (_b = rpcProviders.getEvmRpcProviderByChainId(configurations, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
27
+ return (_c = (_b = this.chainRpcProviders) === null || _b === void 0 ? void 0 : _b.getEvmProviderByChainId(configurations, networkId)) === null || _c === void 0 ? void 0 : _c.provider;
30
28
  });
31
29
  }
32
- constructor({ evmNetworks }) {
30
+ constructor({ evmNetworks, chainRpcProviders }) {
31
+ var _a;
33
32
  super();
34
33
  this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
35
34
  var _a;
@@ -38,7 +37,24 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
38
37
  : network.rpcUrls;
39
38
  return acc;
40
39
  }, {});
41
- this.evmNetworks = evmNetworks;
40
+ this.evmNetworks = utils.parseEvmNetworks(evmNetworks);
41
+ this.chainRpcProviders = chainRpcProviders;
42
+ (_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(rpcProviders.ProviderChain.EVM, (config) => {
43
+ const rpcProviders = {};
44
+ if (config === null || config === void 0 ? void 0 : config.evm) {
45
+ rpcProviders.evm = utils.parseEvmNetworks(config.evm).map((network) => {
46
+ var _a;
47
+ const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
48
+ const provider = new ethers.ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
49
+ return {
50
+ chainId: network.chainId,
51
+ chainName: network.name,
52
+ provider,
53
+ };
54
+ });
55
+ }
56
+ return rpcProviders.evm;
57
+ });
42
58
  }
43
59
  getNetwork() {
44
60
  return tslib.__awaiter(this, void 0, void 0, function* () {
@@ -163,13 +179,13 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
163
179
  providerAddNetwork({ network, provider, }) {
164
180
  var _a;
165
181
  return tslib.__awaiter(this, void 0, void 0, function* () {
166
- const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, chainName } = network;
182
+ const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, name } = network;
167
183
  try {
168
184
  return yield provider.send('wallet_addEthereumChain', [
169
185
  {
170
186
  blockExplorerUrls,
171
187
  chainId: `0x${chainId.toString(16)}`,
172
- chainName,
188
+ chainName: name,
173
189
  nativeCurrency,
174
190
  rpcUrls,
175
191
  },
@@ -1,6 +1,7 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { NameServiceData, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
3
- import { EvmNetwork } from './evm-network';
3
+ import { EvmNetwork, GenericNetwork } from '@dynamic-labs/types';
4
+ import { ChainRpcProviders } from '@dynamic-labs/rpc-providers';
4
5
  export type SwitchNetworkOps = {
5
6
  networkChainId?: number;
6
7
  networkName?: string;
@@ -8,13 +9,15 @@ export type SwitchNetworkOps = {
8
9
  type EvmRpcMap = {
9
10
  [chainId: number]: string;
10
11
  };
12
+ export type EthWalletConnectorOpts = {
13
+ chainRpcProviders: typeof ChainRpcProviders;
14
+ evmNetworks: GenericNetwork[];
15
+ };
11
16
  export declare abstract class EthWalletConnector extends WalletConnectorBase {
12
17
  evmNetworks: EvmNetwork[];
13
18
  abstract getWeb3Provider(): ethers.providers.Web3Provider | undefined;
14
19
  getRpcProvider(): Promise<ethers.providers.JsonRpcProvider | undefined>;
15
- constructor({ evmNetworks }: {
16
- evmNetworks: EvmNetwork[];
17
- });
20
+ constructor({ evmNetworks, chainRpcProviders }: EthWalletConnectorOpts);
18
21
  getNetwork(): Promise<number | undefined>;
19
22
  getNameService(): Promise<NameServiceData | undefined>;
20
23
  getSigner(): Promise<ethers.providers.JsonRpcSigner | undefined>;
@@ -1,15 +1,16 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { ethers } from 'ethers';
3
3
  import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
4
+ import { parseEvmNetworks } from '@dynamic-labs/utils';
5
+ import { ProviderChain } from '@dynamic-labs/rpc-providers';
4
6
  import { DynamicError } from '../../errors.js';
5
- import { getEvmDefaultRpcProvider, getEvmRpcProviderByChainId } from '../../rpcProviders.js';
6
7
  import { findEvmNetwork } from './evm-network.js';
7
8
 
8
9
  class EthWalletConnector extends WalletConnectorBase {
9
10
  getRpcProvider() {
10
- var _a, _b;
11
+ var _a, _b, _c;
11
12
  return __awaiter(this, void 0, void 0, function* () {
12
- const networkId = yield this.getNetwork();
13
+ const networkId = (_a = (yield this.getNetwork())) !== null && _a !== void 0 ? _a : 1;
13
14
  if (this.evmNetworks.length === 0) {
14
15
  return undefined;
15
16
  }
@@ -19,13 +20,11 @@ class EthWalletConnector extends WalletConnectorBase {
19
20
  solana: [],
20
21
  starknet: undefined,
21
22
  };
22
- if (!networkId) {
23
- return (_a = getEvmDefaultRpcProvider(configurations)) === null || _a === void 0 ? void 0 : _a.provider;
24
- }
25
- return (_b = getEvmRpcProviderByChainId(configurations, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
23
+ return (_c = (_b = this.chainRpcProviders) === null || _b === void 0 ? void 0 : _b.getEvmProviderByChainId(configurations, networkId)) === null || _c === void 0 ? void 0 : _c.provider;
26
24
  });
27
25
  }
28
- constructor({ evmNetworks }) {
26
+ constructor({ evmNetworks, chainRpcProviders }) {
27
+ var _a;
29
28
  super();
30
29
  this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
31
30
  var _a;
@@ -34,7 +33,24 @@ class EthWalletConnector extends WalletConnectorBase {
34
33
  : network.rpcUrls;
35
34
  return acc;
36
35
  }, {});
37
- this.evmNetworks = evmNetworks;
36
+ this.evmNetworks = parseEvmNetworks(evmNetworks);
37
+ this.chainRpcProviders = chainRpcProviders;
38
+ (_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(ProviderChain.EVM, (config) => {
39
+ const rpcProviders = {};
40
+ if (config === null || config === void 0 ? void 0 : config.evm) {
41
+ rpcProviders.evm = parseEvmNetworks(config.evm).map((network) => {
42
+ var _a;
43
+ const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
44
+ const provider = new ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
45
+ return {
46
+ chainId: network.chainId,
47
+ chainName: network.name,
48
+ provider,
49
+ };
50
+ });
51
+ }
52
+ return rpcProviders.evm;
53
+ });
38
54
  }
39
55
  getNetwork() {
40
56
  return __awaiter(this, void 0, void 0, function* () {
@@ -159,13 +175,13 @@ class EthWalletConnector extends WalletConnectorBase {
159
175
  providerAddNetwork({ network, provider, }) {
160
176
  var _a;
161
177
  return __awaiter(this, void 0, void 0, function* () {
162
- const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, chainName } = network;
178
+ const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, name } = network;
163
179
  try {
164
180
  return yield provider.send('wallet_addEthereumChain', [
165
181
  {
166
182
  blockExplorerUrls,
167
183
  chainId: `0x${chainId.toString(16)}`,
168
- chainName,
184
+ chainName: name,
169
185
  nativeCurrency,
170
186
  rpcUrls,
171
187
  },