@dynamic-labs/ethereum 4.0.0-alpha.8 → 4.0.0

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 (71) hide show
  1. package/CHANGELOG.md +496 -1
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +11 -9
  5. package/src/coinbase/coinbase.cjs +1 -3
  6. package/src/coinbase/coinbase.d.ts +2 -5
  7. package/src/coinbase/coinbase.js +2 -4
  8. package/src/coinbase/types.d.ts +2 -2
  9. package/src/ethProviderHelper.cjs +49 -43
  10. package/src/ethProviderHelper.d.ts +5 -7
  11. package/src/ethProviderHelper.js +50 -44
  12. package/src/index.cjs +14 -3
  13. package/src/index.d.ts +2 -1
  14. package/src/index.js +5 -4
  15. package/src/injected/ExodusEvm.cjs +3 -5
  16. package/src/injected/ExodusEvm.d.ts +1 -3
  17. package/src/injected/ExodusEvm.js +3 -5
  18. package/src/injected/FallbackEvmConnector.cjs +3 -5
  19. package/src/injected/FallbackEvmConnector.d.ts +1 -3
  20. package/src/injected/FallbackEvmConnector.js +3 -5
  21. package/src/injected/InjectedWalletBase.cjs +18 -31
  22. package/src/injected/InjectedWalletBase.d.ts +4 -10
  23. package/src/injected/InjectedWalletBase.js +17 -32
  24. package/src/injected/PhantomEvm.cjs +4 -6
  25. package/src/injected/PhantomEvm.d.ts +1 -3
  26. package/src/injected/PhantomEvm.js +4 -6
  27. package/src/injected/fetchInjectedWalletConnectors.cjs +48 -39
  28. package/src/injected/fetchInjectedWalletConnectors.js +49 -40
  29. package/src/injected/index.d.ts +1 -1
  30. package/src/metaMask/MetaMaskConnector.cjs +376 -0
  31. package/src/metaMask/MetaMaskConnector.d.ts +52 -0
  32. package/src/metaMask/MetaMaskConnector.js +372 -0
  33. package/src/metaMask/utils/createMetaMaskSDKDisplayUriState.cjs +58 -0
  34. package/src/metaMask/utils/createMetaMaskSDKDisplayUriState.d.ts +14 -0
  35. package/src/metaMask/utils/createMetaMaskSDKDisplayUriState.js +54 -0
  36. package/src/metaMask/utils/isPendingWalletRequestPermissionError.cjs +11 -0
  37. package/src/metaMask/utils/isPendingWalletRequestPermissionError.d.ts +1 -0
  38. package/src/metaMask/utils/isPendingWalletRequestPermissionError.js +7 -0
  39. package/src/metaMask/utils/waitForConnection.cjs +10 -0
  40. package/src/metaMask/utils/waitForConnection.d.ts +2 -0
  41. package/src/metaMask/utils/waitForConnection.js +6 -0
  42. package/src/utils/createInjectedConnector/createInjectedConnector.cjs +93 -0
  43. package/src/utils/createInjectedConnector/createInjectedConnector.d.ts +16 -0
  44. package/src/utils/createInjectedConnector/createInjectedConnector.js +89 -0
  45. package/src/utils/createInjectedConnector/index.d.ts +1 -0
  46. package/src/utils/getConnectorConstructorForEip6963Wallet/getConnectorConstructorForEip6963Wallet.cjs +30 -0
  47. package/src/utils/getConnectorConstructorForEip6963Wallet/getConnectorConstructorForEip6963Wallet.d.ts +3 -0
  48. package/src/utils/getConnectorConstructorForEip6963Wallet/getConnectorConstructorForEip6963Wallet.js +26 -0
  49. package/src/utils/getConnectorConstructorForEip6963Wallet/index.d.ts +1 -0
  50. package/src/utils/getConnectorConstructorInjectedWallet/getConnectorConstructorInjectedWallet.cjs +44 -0
  51. package/src/utils/getConnectorConstructorInjectedWallet/getConnectorConstructorInjectedWallet.d.ts +3 -0
  52. package/src/utils/getConnectorConstructorInjectedWallet/getConnectorConstructorInjectedWallet.js +40 -0
  53. package/src/utils/getConnectorConstructorInjectedWallet/index.d.ts +1 -0
  54. package/src/utils/logger.cjs +10 -0
  55. package/src/utils/logger.d.ts +2 -0
  56. package/src/utils/logger.js +6 -0
  57. package/src/utils/normalizeRpcError/index.d.ts +1 -0
  58. package/src/utils/normalizeRpcError/normalizeRpcError.cjs +51 -0
  59. package/src/utils/normalizeRpcError/normalizeRpcError.d.ts +5 -0
  60. package/src/utils/normalizeRpcError/normalizeRpcError.js +47 -0
  61. package/src/walletConnect/walletConnect.cjs +175 -204
  62. package/src/walletConnect/walletConnect.d.ts +7681 -27
  63. package/src/walletConnect/walletConnect.js +175 -204
  64. package/src/injected/UnknownInjected.cjs +0 -21
  65. package/src/injected/UnknownInjected.d.ts +0 -8
  66. package/src/injected/UnknownInjected.js +0 -17
  67. package/src/utils/isString.d.ts +0 -1
  68. package/src/utils/last.d.ts +0 -1
  69. package/src/utils/parseIntSafe.cjs +0 -23
  70. package/src/utils/parseIntSafe.d.ts +0 -1
  71. package/src/utils/parseIntSafe.js +0 -19
@@ -6,22 +6,24 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var _tslib = require('../_virtual/_tslib.cjs');
7
7
  var viem = require('viem');
8
8
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
+ var walletBook = require('@dynamic-labs/wallet-book');
9
10
  var utils = require('@dynamic-labs/utils');
10
11
  var ethereumCore = require('@dynamic-labs/ethereum-core');
12
+ var normalizeRpcError = require('./utils/normalizeRpcError/normalizeRpcError.cjs');
11
13
 
12
14
  class EthProviderHelper {
13
- constructor(wallet, connector) {
14
- this.wallet = wallet;
15
+ constructor(connector) {
16
+ this.walletBookWallet = walletBook.findWalletBookWallet(connector.walletBook, connector.key);
15
17
  this.connector = connector;
16
18
  }
17
19
  getInstalledProvider() {
18
- const eip6963Config = this.getEip6963Config();
19
- if (eip6963Config) {
20
- const eip6963Provider = this.eip6963ProviderLookup(eip6963Config.rdns);
21
- if (eip6963Provider) {
22
- return eip6963Provider;
23
- }
20
+ const eip6963Provider = this.getEip6963Provider();
21
+ if (eip6963Provider) {
22
+ return eip6963Provider;
24
23
  }
24
+ return this.getInjectedProvider();
25
+ }
26
+ getInjectedProvider() {
25
27
  const config = this.getInjectedConfig();
26
28
  if (!config ||
27
29
  !config.extensionLocators ||
@@ -29,16 +31,17 @@ class EthProviderHelper {
29
31
  return undefined;
30
32
  return this.installedProviderLookup(config.extensionLocators);
31
33
  }
32
- getEip6963Config() {
33
- if (!this.wallet || !this.wallet.eip6963Config)
34
- return;
35
- return this.wallet.eip6963Config;
34
+ getEip6963Provider() {
35
+ const { rdns } = this.connector.metadata;
36
+ if (!rdns) {
37
+ return undefined;
38
+ }
39
+ return this.eip6963ProviderLookup(rdns);
36
40
  }
37
41
  getInjectedConfig() {
38
- if (!this.wallet || !this.wallet.injectedConfig)
39
- return;
40
- const { injectedConfig } = this.wallet;
41
- return injectedConfig.find((c) => c.chain === 'evm');
42
+ var _a;
43
+ const injectedConfig = (_a = this.walletBookWallet) === null || _a === void 0 ? void 0 : _a.injectedConfig;
44
+ return injectedConfig === null || injectedConfig === void 0 ? void 0 : injectedConfig.find((c) => c.chain === 'evm');
42
45
  }
43
46
  installedProviders() {
44
47
  const config = this.getInjectedConfig();
@@ -85,7 +88,9 @@ class EthProviderHelper {
85
88
  return viem.createWalletClient({
86
89
  account: this.connector.getActiveAccount(),
87
90
  chain: chainId ? ethereumCore.chainsMap[chainId] : this.connector.getActiveChain(),
88
- transport: viem.custom(provider),
91
+ transport: viem.custom({
92
+ request: (args) => provider.request(args).catch(normalizeRpcError.normalizeRpcError),
93
+ }),
89
94
  });
90
95
  }
91
96
  getAddress() {
@@ -130,43 +135,44 @@ class EthProviderHelper {
130
135
  }
131
136
  _setupEventListeners(walletConnector) {
132
137
  const web3Provider = this.findProvider();
133
- if (web3Provider && 'on' in web3Provider) {
134
- const { handleAccountChange, handleChainChange, handleDisconnect } = walletConnectorCore.eventListenerHandlers(walletConnector);
135
- web3Provider.on('accountsChanged', handleAccountChange);
136
- web3Provider.on('chainChanged', handleChainChange);
137
- web3Provider.on('disconnect', handleDisconnect);
138
- const tearDownEventListeners = () => {
139
- const web3Provider = this.findProvider();
140
- if (!web3Provider) {
141
- return;
142
- }
143
- if (handleAccountChange) {
144
- web3Provider.removeListener('accountsChanged', handleAccountChange);
145
- }
146
- if (handleChainChange) {
147
- web3Provider.removeListener('chainChanged', handleChainChange);
148
- }
149
- if (handleDisconnect) {
150
- web3Provider.removeListener('disconnect', handleDisconnect);
151
- }
152
- };
153
- return {
154
- tearDownEventListeners,
155
- };
156
- }
157
138
  if (!web3Provider) {
158
139
  walletConnectorCore.logger.warn('Provider not found', {
159
140
  connector: walletConnector,
160
141
  });
142
+ return {
143
+ tearDownEventListeners: () => { },
144
+ };
161
145
  }
162
- else if (!('on' in web3Provider)) {
146
+ if (!web3Provider.on) {
163
147
  walletConnectorCore.logger.warn('Provider does not support event listeners', {
164
148
  connector: walletConnector,
165
149
  provider: web3Provider,
166
150
  });
151
+ return {
152
+ tearDownEventListeners: () => { },
153
+ };
167
154
  }
155
+ const { handleAccountChange, handleChainChange, handleDisconnect } = walletConnectorCore.eventListenerHandlers(walletConnector);
156
+ web3Provider.on('accountsChanged', handleAccountChange);
157
+ web3Provider.on('chainChanged', handleChainChange);
158
+ web3Provider.on('disconnect', handleDisconnect);
159
+ const tearDownEventListeners = () => {
160
+ const web3Provider = this.findProvider();
161
+ if (!web3Provider) {
162
+ return;
163
+ }
164
+ if (handleAccountChange) {
165
+ web3Provider.removeListener('accountsChanged', handleAccountChange);
166
+ }
167
+ if (handleChainChange) {
168
+ web3Provider.removeListener('chainChanged', handleChainChange);
169
+ }
170
+ if (handleDisconnect) {
171
+ web3Provider.removeListener('disconnect', handleDisconnect);
172
+ }
173
+ };
168
174
  return {
169
- tearDownEventListeners: () => { },
175
+ tearDownEventListeners,
170
176
  };
171
177
  }
172
178
  }
@@ -1,16 +1,14 @@
1
1
  import { Hex, WalletClient, Account, Transport, Chain as ViemChain } from 'viem';
2
2
  import { ProviderCondition, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
- import { WalletSchema } from '@dynamic-labs/wallet-book';
4
3
  import { IEthereum, ExtensionLocator } from './types';
5
- import InjectedWalletBase from './injected/InjectedWalletBase';
4
+ import { InjectedWalletBase } from './injected/InjectedWalletBase';
6
5
  export declare class EthProviderHelper {
7
- private wallet;
6
+ private walletBookWallet;
8
7
  private connector;
9
- constructor(wallet: WalletSchema, connector: InjectedWalletBase);
8
+ constructor(connector: InjectedWalletBase);
10
9
  getInstalledProvider(): IEthereum | undefined;
11
- getEip6963Config(): {
12
- rdns: string;
13
- } | undefined;
10
+ getInjectedProvider(): IEthereum | undefined;
11
+ getEip6963Provider(): IEthereum | undefined;
14
12
  getInjectedConfig(): {
15
13
  chain: string;
16
14
  extensionLocators: {
@@ -1,23 +1,25 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../_virtual/_tslib.js';
3
3
  import { createWalletClient, custom, getAddress } from 'viem';
4
- import { ProviderLookup, eventListenerHandlers, logger } from '@dynamic-labs/wallet-connector-core';
4
+ import { ProviderLookup, logger, eventListenerHandlers } from '@dynamic-labs/wallet-connector-core';
5
+ import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
5
6
  import { getProvidersFromWindow, Eip6963ProviderSingleton } from '@dynamic-labs/utils';
6
7
  import { chainsMap } from '@dynamic-labs/ethereum-core';
8
+ import { normalizeRpcError } from './utils/normalizeRpcError/normalizeRpcError.js';
7
9
 
8
10
  class EthProviderHelper {
9
- constructor(wallet, connector) {
10
- this.wallet = wallet;
11
+ constructor(connector) {
12
+ this.walletBookWallet = findWalletBookWallet(connector.walletBook, connector.key);
11
13
  this.connector = connector;
12
14
  }
13
15
  getInstalledProvider() {
14
- const eip6963Config = this.getEip6963Config();
15
- if (eip6963Config) {
16
- const eip6963Provider = this.eip6963ProviderLookup(eip6963Config.rdns);
17
- if (eip6963Provider) {
18
- return eip6963Provider;
19
- }
16
+ const eip6963Provider = this.getEip6963Provider();
17
+ if (eip6963Provider) {
18
+ return eip6963Provider;
20
19
  }
20
+ return this.getInjectedProvider();
21
+ }
22
+ getInjectedProvider() {
21
23
  const config = this.getInjectedConfig();
22
24
  if (!config ||
23
25
  !config.extensionLocators ||
@@ -25,16 +27,17 @@ class EthProviderHelper {
25
27
  return undefined;
26
28
  return this.installedProviderLookup(config.extensionLocators);
27
29
  }
28
- getEip6963Config() {
29
- if (!this.wallet || !this.wallet.eip6963Config)
30
- return;
31
- return this.wallet.eip6963Config;
30
+ getEip6963Provider() {
31
+ const { rdns } = this.connector.metadata;
32
+ if (!rdns) {
33
+ return undefined;
34
+ }
35
+ return this.eip6963ProviderLookup(rdns);
32
36
  }
33
37
  getInjectedConfig() {
34
- if (!this.wallet || !this.wallet.injectedConfig)
35
- return;
36
- const { injectedConfig } = this.wallet;
37
- return injectedConfig.find((c) => c.chain === 'evm');
38
+ var _a;
39
+ const injectedConfig = (_a = this.walletBookWallet) === null || _a === void 0 ? void 0 : _a.injectedConfig;
40
+ return injectedConfig === null || injectedConfig === void 0 ? void 0 : injectedConfig.find((c) => c.chain === 'evm');
38
41
  }
39
42
  installedProviders() {
40
43
  const config = this.getInjectedConfig();
@@ -81,7 +84,9 @@ class EthProviderHelper {
81
84
  return createWalletClient({
82
85
  account: this.connector.getActiveAccount(),
83
86
  chain: chainId ? chainsMap[chainId] : this.connector.getActiveChain(),
84
- transport: custom(provider),
87
+ transport: custom({
88
+ request: (args) => provider.request(args).catch(normalizeRpcError),
89
+ }),
85
90
  });
86
91
  }
87
92
  getAddress() {
@@ -126,43 +131,44 @@ class EthProviderHelper {
126
131
  }
127
132
  _setupEventListeners(walletConnector) {
128
133
  const web3Provider = this.findProvider();
129
- if (web3Provider && 'on' in web3Provider) {
130
- const { handleAccountChange, handleChainChange, handleDisconnect } = eventListenerHandlers(walletConnector);
131
- web3Provider.on('accountsChanged', handleAccountChange);
132
- web3Provider.on('chainChanged', handleChainChange);
133
- web3Provider.on('disconnect', handleDisconnect);
134
- const tearDownEventListeners = () => {
135
- const web3Provider = this.findProvider();
136
- if (!web3Provider) {
137
- return;
138
- }
139
- if (handleAccountChange) {
140
- web3Provider.removeListener('accountsChanged', handleAccountChange);
141
- }
142
- if (handleChainChange) {
143
- web3Provider.removeListener('chainChanged', handleChainChange);
144
- }
145
- if (handleDisconnect) {
146
- web3Provider.removeListener('disconnect', handleDisconnect);
147
- }
148
- };
149
- return {
150
- tearDownEventListeners,
151
- };
152
- }
153
134
  if (!web3Provider) {
154
135
  logger.warn('Provider not found', {
155
136
  connector: walletConnector,
156
137
  });
138
+ return {
139
+ tearDownEventListeners: () => { },
140
+ };
157
141
  }
158
- else if (!('on' in web3Provider)) {
142
+ if (!web3Provider.on) {
159
143
  logger.warn('Provider does not support event listeners', {
160
144
  connector: walletConnector,
161
145
  provider: web3Provider,
162
146
  });
147
+ return {
148
+ tearDownEventListeners: () => { },
149
+ };
163
150
  }
151
+ const { handleAccountChange, handleChainChange, handleDisconnect } = eventListenerHandlers(walletConnector);
152
+ web3Provider.on('accountsChanged', handleAccountChange);
153
+ web3Provider.on('chainChanged', handleChainChange);
154
+ web3Provider.on('disconnect', handleDisconnect);
155
+ const tearDownEventListeners = () => {
156
+ const web3Provider = this.findProvider();
157
+ if (!web3Provider) {
158
+ return;
159
+ }
160
+ if (handleAccountChange) {
161
+ web3Provider.removeListener('accountsChanged', handleAccountChange);
162
+ }
163
+ if (handleChainChange) {
164
+ web3Provider.removeListener('chainChanged', handleChainChange);
165
+ }
166
+ if (handleDisconnect) {
167
+ web3Provider.removeListener('disconnect', handleDisconnect);
168
+ }
169
+ };
164
170
  return {
165
- tearDownEventListeners: () => { },
171
+ tearDownEventListeners,
166
172
  };
167
173
  }
168
174
  }
package/src/index.cjs CHANGED
@@ -9,15 +9,17 @@ var assertPackageVersion = require('@dynamic-labs/assert-package-version');
9
9
  var _package = require('../package.cjs');
10
10
  var PhantomEvm = require('./injected/PhantomEvm.cjs');
11
11
  var ExodusEvm = require('./injected/ExodusEvm.cjs');
12
- var UnknownInjected = require('./injected/UnknownInjected.cjs');
13
12
  var FallbackEvmConnector = require('./injected/FallbackEvmConnector.cjs');
14
13
  var fetchInjectedWalletConnectors = require('./injected/fetchInjectedWalletConnectors.cjs');
14
+ var InjectedWalletBase = require('./injected/InjectedWalletBase.cjs');
15
15
  require('./walletConnect/walletConnect.cjs');
16
16
  var fetchWalletConnectWallets = require('./walletConnect/fetchWalletConnectWallets.cjs');
17
17
  var coinbase = require('./coinbase/coinbase.cjs');
18
18
  var ethereumCore = require('@dynamic-labs/ethereum-core');
19
+ var MetaMaskConnector = require('./metaMask/MetaMaskConnector.cjs');
19
20
  var ethProviderHelper = require('./ethProviderHelper.cjs');
20
21
  var constants = require('./constants.cjs');
22
+ var createInjectedConnector = require('./utils/createInjectedConnector/createInjectedConnector.cjs');
21
23
 
22
24
  assertPackageVersion.assertPackageVersion('@dynamic-labs/ethereum', _package.version);
23
25
  const EthereumWalletConnectors = (props) => [
@@ -25,22 +27,31 @@ const EthereumWalletConnectors = (props) => [
25
27
  ...fetchInjectedWalletConnectors.fetchInjectedWalletConnector(props),
26
28
  ...fetchWalletConnectWallets.fetchWalletConnectWallets(props),
27
29
  ...embeddedWalletEvm.TurnkeyEVMWalletConnectors(props),
30
+ MetaMaskConnector.MetaMaskConnector,
28
31
  coinbase.Coinbase,
29
- UnknownInjected.UnknownInjected,
30
32
  FallbackEvmConnector.FallbackEvmConnector,
31
33
  fetchWalletConnectWallets.getWalletConnectConnector(),
32
34
  ];
33
35
 
34
36
  exports.PhantomEvm = PhantomEvm.PhantomEvm;
35
37
  exports.ExodusEvm = ExodusEvm.ExodusEvm;
36
- exports.UnknownInjected = UnknownInjected.UnknownInjected;
37
38
  exports.FallbackEvmConnector = FallbackEvmConnector.FallbackEvmConnector;
38
39
  exports.fetchInjectedWalletConnector = fetchInjectedWalletConnectors.fetchInjectedWalletConnector;
39
40
  exports.injectedWalletOverrides = fetchInjectedWalletConnectors.injectedWalletOverrides;
41
+ exports.EthereumInjectedConnector = InjectedWalletBase.InjectedWalletBase;
42
+ Object.defineProperty(exports, 'EthereumWalletConnector', {
43
+ enumerable: true,
44
+ get: function () { return ethereumCore.EthereumWalletConnector; }
45
+ });
46
+ Object.defineProperty(exports, 'createConnector', {
47
+ enumerable: true,
48
+ get: function () { return ethereumCore.createConnector; }
49
+ });
40
50
  Object.defineProperty(exports, 'isEthereumWallet', {
41
51
  enumerable: true,
42
52
  get: function () { return ethereumCore.isEthereumWallet; }
43
53
  });
44
54
  exports.EthProviderHelper = ethProviderHelper.EthProviderHelper;
45
55
  exports.INFURA_ID = constants.INFURA_ID;
56
+ exports.createInjectedConnector = createInjectedConnector.createInjectedConnector;
46
57
  exports.EthereumWalletConnectors = EthereumWalletConnectors;
package/src/index.d.ts CHANGED
@@ -5,5 +5,6 @@ export * from './injected';
5
5
  export * from './ethProviderHelper';
6
6
  export * from './constants';
7
7
  export * from './types';
8
+ export { createInjectedConnector } from './utils/createInjectedConnector';
8
9
  export declare const EthereumWalletConnectors: (props: any) => WalletConnectorConstructor[];
9
- export { isEthereumWallet } from '@dynamic-labs/ethereum-core';
10
+ export { isEthereumWallet, EthereumWalletConnector, createConnector, } from '@dynamic-labs/ethereum-core';
package/src/index.js CHANGED
@@ -5,18 +5,19 @@ import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
5
5
  import { version } from '../package.js';
6
6
  export { PhantomEvm } from './injected/PhantomEvm.js';
7
7
  export { ExodusEvm } from './injected/ExodusEvm.js';
8
- import { UnknownInjected } from './injected/UnknownInjected.js';
9
- export { UnknownInjected } from './injected/UnknownInjected.js';
10
8
  import { FallbackEvmConnector } from './injected/FallbackEvmConnector.js';
11
9
  export { FallbackEvmConnector } from './injected/FallbackEvmConnector.js';
12
10
  import { injectedWalletOverrides, fetchInjectedWalletConnector } from './injected/fetchInjectedWalletConnectors.js';
13
11
  export { fetchInjectedWalletConnector, injectedWalletOverrides } from './injected/fetchInjectedWalletConnectors.js';
12
+ export { InjectedWalletBase as EthereumInjectedConnector } from './injected/InjectedWalletBase.js';
14
13
  import './walletConnect/walletConnect.js';
15
14
  import { fetchWalletConnectWallets, getWalletConnectConnector } from './walletConnect/fetchWalletConnectWallets.js';
16
15
  import { Coinbase } from './coinbase/coinbase.js';
17
- export { isEthereumWallet } from '@dynamic-labs/ethereum-core';
16
+ export { EthereumWalletConnector, createConnector, isEthereumWallet } from '@dynamic-labs/ethereum-core';
17
+ import { MetaMaskConnector } from './metaMask/MetaMaskConnector.js';
18
18
  export { EthProviderHelper } from './ethProviderHelper.js';
19
19
  export { INFURA_ID } from './constants.js';
20
+ export { createInjectedConnector } from './utils/createInjectedConnector/createInjectedConnector.js';
20
21
 
21
22
  assertPackageVersion('@dynamic-labs/ethereum', version);
22
23
  const EthereumWalletConnectors = (props) => [
@@ -24,8 +25,8 @@ const EthereumWalletConnectors = (props) => [
24
25
  ...fetchInjectedWalletConnector(props),
25
26
  ...fetchWalletConnectWallets(props),
26
27
  ...TurnkeyEVMWalletConnectors(props),
28
+ MetaMaskConnector,
27
29
  Coinbase,
28
- UnknownInjected,
29
30
  FallbackEvmConnector,
30
31
  getWalletConnectConnector(),
31
32
  ];
@@ -3,17 +3,15 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var walletBook = require('@dynamic-labs/wallet-book');
7
6
  var InjectedWalletBase = require('./InjectedWalletBase.cjs');
8
7
 
9
8
  // leaving ExodusEvm in here due to a backwards compatibility issue with this one wallet and v18
10
- class ExodusEvm extends InjectedWalletBase {
11
- constructor(props) {
12
- super(props);
9
+ class ExodusEvm extends InjectedWalletBase.InjectedWalletBase {
10
+ constructor() {
11
+ super(...arguments);
13
12
  this.name = 'ExodusEvm';
14
13
  this.overrideKey = 'exodusevm';
15
14
  this.walletConnectorFallback = true;
16
- this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
17
15
  }
18
16
  }
19
17
 
@@ -1,8 +1,6 @@
1
- import { EthWalletConnectorOpts } from '@dynamic-labs/ethereum-core';
2
- import InjectedWalletBase from './InjectedWalletBase';
1
+ import { InjectedWalletBase } from './InjectedWalletBase';
3
2
  export declare class ExodusEvm extends InjectedWalletBase {
4
3
  name: string;
5
4
  overrideKey: string;
6
5
  walletConnectorFallback: boolean;
7
- constructor(props: EthWalletConnectorOpts);
8
6
  }
@@ -1,15 +1,13 @@
1
1
  'use client'
2
- import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
3
- import InjectedWalletBase from './InjectedWalletBase.js';
2
+ import { InjectedWalletBase } from './InjectedWalletBase.js';
4
3
 
5
4
  // leaving ExodusEvm in here due to a backwards compatibility issue with this one wallet and v18
6
5
  class ExodusEvm extends InjectedWalletBase {
7
- constructor(props) {
8
- super(props);
6
+ constructor() {
7
+ super(...arguments);
9
8
  this.name = 'ExodusEvm';
10
9
  this.overrideKey = 'exodusevm';
11
10
  this.walletConnectorFallback = true;
12
- this.wallet = findWalletBookWallet(this.walletBook, this.key);
13
11
  }
14
12
  }
15
13
 
@@ -3,16 +3,14 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var walletBook = require('@dynamic-labs/wallet-book');
7
6
  var InjectedWalletBase = require('./InjectedWalletBase.cjs');
8
7
 
9
- class FallbackEvmConnector extends InjectedWalletBase {
10
- constructor(props) {
11
- super(props);
8
+ class FallbackEvmConnector extends InjectedWalletBase.InjectedWalletBase {
9
+ constructor() {
10
+ super(...arguments);
12
11
  this.name = 'Fallback Connector';
13
12
  this.overrideKey = 'fallbackconnector';
14
13
  this.isAvailable = false;
15
- this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
16
14
  }
17
15
  isInstalledOnBrowser() {
18
16
  return false;
@@ -1,9 +1,7 @@
1
- import { EthWalletConnectorOpts } from '@dynamic-labs/ethereum-core';
2
- import InjectedWalletBase from './InjectedWalletBase';
1
+ import { InjectedWalletBase } from './InjectedWalletBase';
3
2
  export declare class FallbackEvmConnector extends InjectedWalletBase {
4
3
  name: string;
5
4
  overrideKey: string;
6
5
  isAvailable: boolean;
7
- constructor(props: EthWalletConnectorOpts);
8
6
  isInstalledOnBrowser(): boolean;
9
7
  }
@@ -1,14 +1,12 @@
1
1
  'use client'
2
- import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
3
- import InjectedWalletBase from './InjectedWalletBase.js';
2
+ import { InjectedWalletBase } from './InjectedWalletBase.js';
4
3
 
5
4
  class FallbackEvmConnector extends InjectedWalletBase {
6
- constructor(props) {
7
- super(props);
5
+ constructor() {
6
+ super(...arguments);
8
7
  this.name = 'Fallback Connector';
9
8
  this.overrideKey = 'fallbackconnector';
10
9
  this.isAvailable = false;
11
- this.wallet = findWalletBookWallet(this.walletBook, this.key);
12
10
  }
13
11
  isInstalledOnBrowser() {
14
12
  return false;
@@ -1,44 +1,34 @@
1
1
  'use client'
2
2
  'use strict';
3
3
 
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
4
6
  var _tslib = require('../../_virtual/_tslib.cjs');
5
- var walletBook = require('@dynamic-labs/wallet-book');
6
7
  var utils = require('@dynamic-labs/utils');
7
8
  var ethereumCore = require('@dynamic-labs/ethereum-core');
8
9
  var ethProviderHelper = require('../ethProviderHelper.cjs');
9
10
  var walletConnect = require('../walletConnect/walletConnect.cjs');
10
11
 
11
- class InjectedWalletBase extends ethereumCore.EthWalletConnector {
12
+ class InjectedWalletBase extends ethereumCore.EthereumWalletConnector {
12
13
  constructor() {
13
14
  super(...arguments);
14
- this.supportedChains = ['ETH', 'EVM'];
15
- this.connectedChain = 'EVM';
16
15
  this.walletConnectorFallback = false;
17
16
  }
18
- getEthProviderHelper() {
19
- if (!this.wallet) {
20
- // changing this to findWalletBookWallet so it returns undefined if not found which
21
- // allows the getEthProviderHelper to return undefined if the wallet is not installed
22
- this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
23
- }
24
- if (this.wallet && !this.ethProviderHelper) {
25
- this.ethProviderHelper = new ethProviderHelper.EthProviderHelper(this.wallet, this);
17
+ get ethProviderHelper() {
18
+ if (!this._ethProviderHelper) {
19
+ this._ethProviderHelper = new ethProviderHelper.EthProviderHelper(this);
26
20
  }
27
- // this.ethProviderHelper is undefined if the wallet is not installed or found in walletbook
28
- return this.ethProviderHelper;
21
+ return this._ethProviderHelper;
29
22
  }
30
23
  getMobileOrInstalledWallet() {
31
- var _a, _b;
32
- if (!this.wallet) {
33
- this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
34
- }
24
+ var _a;
35
25
  if (this.isInstalledOnBrowser()) {
36
26
  return this;
37
27
  }
38
28
  // this is to handle the case where the user is in a webview.
39
29
  // when the user is in a webview, customers should set the deepLinkPreference prop to universal,
40
30
  // in which case this condition will be false, and the SDK will use WalletConnect (if available)
41
- if (((_b = (_a = this.wallet) === null || _a === void 0 ? void 0 : _a.mobile) === null || _b === void 0 ? void 0 : _b.inAppBrowser) &&
31
+ if (((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.inAppBrowserUrl) &&
42
32
  this.mobileExperience === 'in-app-browser' &&
43
33
  utils.isMobile()) {
44
34
  return this;
@@ -52,33 +42,30 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
52
42
  return new walletConnect.WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
53
43
  }
54
44
  findProvider() {
55
- const ethProviderHelper = this.getEthProviderHelper();
56
- if (!ethProviderHelper)
57
- return;
58
- return ethProviderHelper.getInstalledProvider();
45
+ var _a;
46
+ return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
59
47
  }
60
48
  setupEventListeners() {
61
49
  const provider = this.getWalletClient();
62
50
  if (!provider)
63
51
  return;
64
- const ethProviderHelper = this.getEthProviderHelper();
65
- if (!ethProviderHelper)
52
+ if (!this.ethProviderHelper)
66
53
  return;
67
- const { tearDownEventListeners } = ethProviderHelper._setupEventListeners(this);
54
+ const { tearDownEventListeners } = this.ethProviderHelper._setupEventListeners(this);
68
55
  this.teardownEventListeners = tearDownEventListeners;
69
56
  }
70
57
  getWalletClient(chainId) {
71
58
  var _a;
72
- return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.findWalletClient(chainId);
59
+ return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.findWalletClient(chainId);
73
60
  }
74
61
  isInstalledOnBrowser() {
75
62
  var _a;
76
- return ((_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.findProvider()) !== undefined;
63
+ return ((_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.findProvider()) !== undefined;
77
64
  }
78
65
  getAddress() {
79
66
  return _tslib.__awaiter(this, void 0, void 0, function* () {
80
67
  var _a;
81
- return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.getAddress();
68
+ return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.getAddress();
82
69
  });
83
70
  }
84
71
  connect() {
@@ -89,7 +76,7 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
89
76
  signMessage(messageToSign) {
90
77
  return _tslib.__awaiter(this, void 0, void 0, function* () {
91
78
  var _a;
92
- return (_a = this.getEthProviderHelper()) === null || _a === void 0 ? void 0 : _a.signMessage(messageToSign);
79
+ return (_a = this.ethProviderHelper) === null || _a === void 0 ? void 0 : _a.signMessage(messageToSign);
93
80
  });
94
81
  }
95
82
  proveOwnership(address, messageToSign) {
@@ -114,4 +101,4 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
114
101
  }
115
102
  }
116
103
 
117
- module.exports = InjectedWalletBase;
104
+ exports.InjectedWalletBase = InjectedWalletBase;
@@ -1,18 +1,13 @@
1
1
  import { WalletClient, Transport, Account, Chain as ViemChain } from 'viem';
2
- import { Chain } from '@dynamic-labs/wallet-connector-core';
3
2
  import { EvmNetwork } from '@dynamic-labs/types';
4
- import { WalletSchema } from '@dynamic-labs/wallet-book';
5
- import { EthWalletConnector } from '@dynamic-labs/ethereum-core';
3
+ import { EthereumWalletConnector } from '@dynamic-labs/ethereum-core';
6
4
  import { EthProviderHelper } from '../ethProviderHelper';
7
5
  import { IEthereum } from '../types';
8
- declare abstract class InjectedWalletBase extends EthWalletConnector {
9
- supportedChains: Chain[];
10
- connectedChain: Chain;
6
+ export declare abstract class InjectedWalletBase extends EthereumWalletConnector {
11
7
  publicAddress: string | undefined;
12
8
  walletConnectorFallback: boolean;
13
- ethProviderHelper: EthProviderHelper | undefined;
14
- wallet: WalletSchema | undefined;
15
- getEthProviderHelper(): EthProviderHelper | undefined;
9
+ _ethProviderHelper: EthProviderHelper | undefined;
10
+ get ethProviderHelper(): EthProviderHelper | undefined;
16
11
  getMobileOrInstalledWallet(): InjectedWalletBase;
17
12
  findProvider(): IEthereum | undefined;
18
13
  setupEventListeners(): void;
@@ -28,4 +23,3 @@ declare abstract class InjectedWalletBase extends EthWalletConnector {
28
23
  provider: WalletClient;
29
24
  }): Promise<void>;
30
25
  }
31
- export default InjectedWalletBase;