@dynamic-labs/ethereum 4.0.0-alpha.2 → 4.0.0-alpha.21

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,189 @@
1
1
 
2
+ ## [4.0.0-alpha.21](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.20...v4.0.0-alpha.21) (2024-10-30)
3
+
4
+ ## [4.0.0-alpha.20](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.19...v4.0.0-alpha.20) (2024-10-30)
5
+
6
+ ## [4.0.0-alpha.19](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.18...v4.0.0-alpha.19) (2024-10-29)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * ensure the client js will emit a change event after the value update ([#7284](https://github.com/dynamic-labs/dynamic-auth/issues/7284)) ([930d2e9](https://github.com/dynamic-labs/dynamic-auth/commit/930d2e9fdc75fd4a38da8ef6efc9d3e29152285b))
12
+
13
+ ## [4.0.0-alpha.18](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.17...v4.0.0-alpha.18) (2024-10-29)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **web-extension:** add color scheme style to prevent broken style ([#7247](https://github.com/dynamic-labs/dynamic-auth/issues/7247)) ([c525c50](https://github.com/dynamic-labs/dynamic-auth/commit/c525c50ac02997f3baf220fd2e67c6c4b3d10903))
19
+
20
+ ## [4.0.0-alpha.17](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.16...v4.0.0-alpha.17) (2024-10-28)
21
+
22
+
23
+ ### Features
24
+
25
+ * add support for eclipse ([#7255](https://github.com/dynamic-labs/dynamic-auth/issues/7255)) ([70e9830](https://github.com/dynamic-labs/dynamic-auth/commit/70e9830c6c801e0298825b914ee825b578350cf0))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * adds missing packages to zerodev-extension package ([#7187](https://github.com/dynamic-labs/dynamic-auth/issues/7187)) ([052a7e7](https://github.com/dynamic-labs/dynamic-auth/commit/052a7e7c08d458996d1be56f7697448ad5a9a1c9))
31
+ * unpin reactivity package for vue projects ([#7246](https://github.com/dynamic-labs/dynamic-auth/issues/7246)) ([18013e0](https://github.com/dynamic-labs/dynamic-auth/commit/18013e00d6855f8b371c9edb97594a08764c3868))
32
+
33
+ ## [4.0.0-alpha.16](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.15...v4.0.0-alpha.16) (2024-10-27)
34
+
35
+
36
+ ### Features
37
+
38
+ * add passkey to web-extension ([#7096](https://github.com/dynamic-labs/dynamic-auth/issues/7096)) ([a4b4643](https://github.com/dynamic-labs/dynamic-auth/commit/a4b4643e5307358425c878067bae095090f322ca))
39
+ * add social to web extension ([#7106](https://github.com/dynamic-labs/dynamic-auth/issues/7106)) ([422bc8e](https://github.com/dynamic-labs/dynamic-auth/commit/422bc8e2d276d960a7a76ad55a7b244c3fd83173))
40
+ * add support for compass and leap wallets ([9738749](https://github.com/dynamic-labs/dynamic-auth/commit/9738749bb5ed8e07a2582df255f683e4d408db93))
41
+ * add support for epicgames social ([#7220](https://github.com/dynamic-labs/dynamic-auth/issues/7220)) ([cb5bc30](https://github.com/dynamic-labs/dynamic-auth/commit/cb5bc30bc17d063bdaa9b427a9358b30124c4589))
42
+ * add web-extension to client ([#7180](https://github.com/dynamic-labs/dynamic-auth/issues/7180)) ([e2ccbb7](https://github.com/dynamic-labs/dynamic-auth/commit/e2ccbb77bdd0250d000a6cc4d89a2e5d7d2f4bb2))
43
+
44
+ ## [4.0.0-alpha.15](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.14...v4.0.0-alpha.15) (2024-10-19)
45
+
46
+ ## [4.0.0-alpha.14](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.13...v4.0.0-alpha.14) (2024-10-18)
47
+
48
+ ## [4.0.0-alpha.13](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.12...v4.0.0-alpha.13) (2024-10-18)
49
+
50
+
51
+ ### Bug Fixes
52
+
53
+ * improve displayed chain name in network switcher ([#7153](https://github.com/dynamic-labs/dynamic-auth/issues/7153)) ([55d2e5a](https://github.com/dynamic-labs/dynamic-auth/commit/55d2e5a9954bf0255b5caf7aba7a6f1f2e215967))
54
+
55
+ ## [4.0.0-alpha.12](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.11...v4.0.0-alpha.12) (2024-10-18)
56
+
57
+
58
+ ### Features
59
+
60
+ * add support for xverse account change event ([#7114](https://github.com/dynamic-labs/dynamic-auth/issues/7114)) ([79df047](https://github.com/dynamic-labs/dynamic-auth/commit/79df04775edb297a339e2d74adcc873584a6d8af))
61
+ * solana embedded signall headless ([#7132](https://github.com/dynamic-labs/dynamic-auth/issues/7132)) ([fe16b71](https://github.com/dynamic-labs/dynamic-auth/commit/fe16b71a4c0ad775f8de87ca899cfdd1071f11d6))
62
+
63
+
64
+ ### Bug Fixes
65
+
66
+ * bug where embeddedWalletCreated event was fired before listener … ([#7151](https://github.com/dynamic-labs/dynamic-auth/issues/7151)) ([ae9da56](https://github.com/dynamic-labs/dynamic-auth/commit/ae9da56850130491384a2d5f47c1617815dcce5b))
67
+ * edge case where wallet book fails to load ([#7148](https://github.com/dynamic-labs/dynamic-auth/issues/7148)) ([805dc6d](https://github.com/dynamic-labs/dynamic-auth/commit/805dc6d7cc4cdf0b23748d82b3bd8216d88d55b5))
68
+ * issues where native currency icons were incorrect ([#7126](https://github.com/dynamic-labs/dynamic-auth/issues/7126)) ([8b8891a](https://github.com/dynamic-labs/dynamic-auth/commit/8b8891a52397e17cc127ea3a09ade14c4b70a8ee))
69
+ * remove now-unused sessionTimeout from useSocial ([#7123](https://github.com/dynamic-labs/dynamic-auth/issues/7123)) ([7959a8a](https://github.com/dynamic-labs/dynamic-auth/commit/7959a8a4c8ceb76c5c4f1ae91af204bf9c5cae7b))
70
+ * Revert: Update Exodus extension version " ([#7130](https://github.com/dynamic-labs/dynamic-auth/issues/7130)) ([f2274ae](https://github.com/dynamic-labs/dynamic-auth/commit/f2274aefd29bb9f3fb6de8493e4a5f73946a5600)), closes [#7129](https://github.com/dynamic-labs/dynamic-auth/issues/7129)
71
+ * use embedded primaryChain when passing undefined chains list to createTurnkeyWallet ([#7149](https://github.com/dynamic-labs/dynamic-auth/issues/7149)) ([c73a3ae](https://github.com/dynamic-labs/dynamic-auth/commit/c73a3aeeda8045b936d218f7078ad79967c321ef))
72
+
73
+ ## [4.0.0-alpha.11](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.10...v4.0.0-alpha.11) (2024-10-15)
74
+
75
+
76
+ ### Bug Fixes
77
+
78
+ * missing null check in property accessor ([#7122](https://github.com/dynamic-labs/dynamic-auth/issues/7122)) ([bbb5e76](https://github.com/dynamic-labs/dynamic-auth/commit/bbb5e76c1284edad2829605444dda24971027a57))
79
+
80
+ ## [4.0.0-alpha.10](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.9...v4.0.0-alpha.10) (2024-10-15)
81
+
82
+
83
+ ### Bug Fixes
84
+
85
+ * epicgames key name without dash ([#7119](https://github.com/dynamic-labs/dynamic-auth/issues/7119)) ([7388d6c](https://github.com/dynamic-labs/dynamic-auth/commit/7388d6cf98f6ee92e12003549dfd1ad81951119e))
86
+
87
+ ## [4.0.0-alpha.9](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.8...v4.0.0-alpha.9) (2024-10-11)
88
+
89
+
90
+ ### Features
91
+
92
+ * add support for fordefi wallet ([#7109](https://github.com/dynamic-labs/dynamic-auth/issues/7109)) ([1adb6b1](https://github.com/dynamic-labs/dynamic-auth/commit/1adb6b15b7f8e9156207ac7addf4368d27c1e371))
93
+ * support ability to define additional oauth scopes ([#7105](https://github.com/dynamic-labs/dynamic-auth/issues/7105)) ([b303203](https://github.com/dynamic-labs/dynamic-auth/commit/b303203e8041c0cbf5f8968df0d3cde04ed1b22a))
94
+
95
+
96
+ ### Bug Fixes
97
+
98
+ * add eip6963 for exodus evm ([#7094](https://github.com/dynamic-labs/dynamic-auth/issues/7094)) ([c1ec5ef](https://github.com/dynamic-labs/dynamic-auth/commit/c1ec5ef4b6a531c563be4b690aa5f2bd4e7e6a16))
99
+
100
+ ## [4.0.0-alpha.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) (2024-10-07)
101
+
102
+
103
+ ### Features
104
+
105
+ * add support for dynamic event callbacks in rn ([#6997](https://github.com/dynamic-labs/dynamic-auth/issues/6997)) ([f9ac402](https://github.com/dynamic-labs/dynamic-auth/commit/f9ac40259d9168dfe69dafd5fd44478ba0e69505))
106
+ * add support for dynamic handlers in rn ([#7032](https://github.com/dynamic-labs/dynamic-auth/issues/7032)) ([f61f926](https://github.com/dynamic-labs/dynamic-auth/commit/f61f92666b6df8483dde2c47304fd4fb02690f7d))
107
+ * Support for multi-chain AA ([#6829](https://github.com/dynamic-labs/dynamic-auth/issues/6829)) ([b4a0c0a](https://github.com/dynamic-labs/dynamic-auth/commit/b4a0c0a4de48231a3748826600407c25abf6894d))
108
+
109
+
110
+ ### Bug Fixes
111
+
112
+ * persist isHardwareWalletEnabled on wallet connector ([#7025](https://github.com/dynamic-labs/dynamic-auth/issues/7025)) ([#7034](https://github.com/dynamic-labs/dynamic-auth/issues/7034)) ([4bfc301](https://github.com/dynamic-labs/dynamic-auth/commit/4bfc301d891f10db8c0bd31e5164c489a882c5c3))
113
+
114
+ ## [4.0.0-alpha.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2024-10-03)
115
+
116
+
117
+ ### Features
118
+
119
+ * add account abstraction module to client ([#7002](https://github.com/dynamic-labs/dynamic-auth/issues/7002)) ([2f06975](https://github.com/dynamic-labs/dynamic-auth/commit/2f06975083dfa9d40537ef4a99b414eda1a68e01))
120
+ * add support for wallet events in rn ([#7061](https://github.com/dynamic-labs/dynamic-auth/issues/7061)) ([c7c4ce5](https://github.com/dynamic-labs/dynamic-auth/commit/c7c4ce51f27a2b84a1710c120d7006a00920c1e7))
121
+ * add zerodev extension for react native ([#7028](https://github.com/dynamic-labs/dynamic-auth/issues/7028)) ([858b8a8](https://github.com/dynamic-labs/dynamic-auth/commit/858b8a851cfa0cddc8e4559541b03992cf5ccdfc))
122
+
123
+
124
+ ### Bug Fixes
125
+
126
+ * do not modify sol tx blockhash as tx could have been signed already ([#7050](https://github.com/dynamic-labs/dynamic-auth/issues/7050)) ([770edb4](https://github.com/dynamic-labs/dynamic-auth/commit/770edb49ddc231b75fb45a9f6d563f22e5185df2))
127
+ * ensure the correct auth mode is used on social redirect ([#7047](https://github.com/dynamic-labs/dynamic-auth/issues/7047)) ([7c27172](https://github.com/dynamic-labs/dynamic-auth/commit/7c271721d5ddf19e3fd1bf56ddb1d49e0e2bca07))
128
+ * prevent react native message timeout before sdk is ready ([#7051](https://github.com/dynamic-labs/dynamic-auth/issues/7051)) ([6421237](https://github.com/dynamic-labs/dynamic-auth/commit/6421237d677d788b824d53432c1a75b9d571aa78))
129
+ * update version error text ([#7054](https://github.com/dynamic-labs/dynamic-auth/issues/7054)) ([713dacb](https://github.com/dynamic-labs/dynamic-auth/commit/713dacb79c2513323c2e6840d7418716011c2dcd))
130
+ * use project settings sdk network for send flow ([#7011](https://github.com/dynamic-labs/dynamic-auth/issues/7011)) ([983e796](https://github.com/dynamic-labs/dynamic-auth/commit/983e79632762f71ee0502c92057a32ea985ae19c))
131
+
132
+ ## [4.0.0-alpha.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.5...v4.0.0-alpha.6) (2024-10-01)
133
+
134
+
135
+ ### ⚠ BREAKING CHANGES
136
+
137
+ * remove support to magic ([#7033](https://github.com/dynamic-labs/dynamic-auth/issues/7033)) ([0fdc41f](https://github.com/dynamic-labs/dynamic-auth/commit/0fdc41f05f87b32f56b73db068f984f18bdf69a0))
138
+
139
+ ### Features
140
+
141
+ * global connectivity disconnect ([#7008](https://github.com/dynamic-labs/dynamic-auth/issues/7008)) ([80d705b](https://github.com/dynamic-labs/dynamic-auth/commit/80d705ba252aa3b01cbf4861507fed00e460215f))
142
+
143
+
144
+ ### Bug Fixes
145
+
146
+ * add popper context to send balance ([#7016](https://github.com/dynamic-labs/dynamic-auth/issues/7016)) ([73aa6f1](https://github.com/dynamic-labs/dynamic-auth/commit/73aa6f122afe0db660ebb654f3e018ae7bf445c5))
147
+ * add retry to useConnectWithOtp ([#7012](https://github.com/dynamic-labs/dynamic-auth/issues/7012)) ([d551d72](https://github.com/dynamic-labs/dynamic-auth/commit/d551d72a463f8a03964858b30ec174d41985a7b1))
148
+ * don't re-fetch wallet address on network change ([#7019](https://github.com/dynamic-labs/dynamic-auth/issues/7019)) ([4e7900c](https://github.com/dynamic-labs/dynamic-auth/commit/4e7900cc24b3abda736bc81466eda7512cf7fc61))
149
+ * fix sign message with solana wallet standard provider ([#7014](https://github.com/dynamic-labs/dynamic-auth/issues/7014)) ([ffaf972](https://github.com/dynamic-labs/dynamic-auth/commit/ffaf972e8b190b0b8cd0103e0ef67bfdee6c8f7c))
150
+ * update wallet reference when user switches wallet in connect-only ([#7030](https://github.com/dynamic-labs/dynamic-auth/issues/7030)) ([75d9aa6](https://github.com/dynamic-labs/dynamic-auth/commit/75d9aa66f63fc5536caeff12d8b860c0ba86106f))
151
+
152
+
153
+ ## [4.0.0-alpha.5](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.4...v4.0.0-alpha.5) (2024-09-25)
154
+
155
+
156
+ ### Features
157
+
158
+ * add isInstalledOnBrowser prop to wallet options in useWalletOptions ([#6976](https://github.com/dynamic-labs/DynamicAuth/issues/6976)) ([0fda409](https://github.com/dynamic-labs/DynamicAuth/commit/0fda409b293c83d73869d791c3d38ac421dcdecb))
159
+
160
+
161
+ ### Bug Fixes
162
+
163
+ * **client:** return user profile when using sign in with external jwt ([#7004](https://github.com/dynamic-labs/DynamicAuth/issues/7004)) ([927cfb6](https://github.com/dynamic-labs/DynamicAuth/commit/927cfb69f3dd7f8b00e3f0f975277a84c99c830b))
164
+ * react-native-extension to include esm ([#6965](https://github.com/dynamic-labs/DynamicAuth/issues/6965)) ([336825b](https://github.com/dynamic-labs/DynamicAuth/commit/336825b50142002bbc67c6f8850bd63030bf384b))
165
+
166
+ ## [4.0.0-alpha.4](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.3...v4.0.0-alpha.4) (2024-09-23)
167
+
168
+
169
+ ### Bug Fixes
170
+
171
+ * issue where builtin stream module was a dependency ([#6968](https://github.com/dynamic-labs/DynamicAuth/issues/6968)) ([0661129](https://github.com/dynamic-labs/DynamicAuth/commit/0661129920ba70ebbcd4d17ee5aa988c51d1b477))
172
+ * update in memory secure storage ([#6955](https://github.com/dynamic-labs/DynamicAuth/issues/6955)) ([697fc20](https://github.com/dynamic-labs/DynamicAuth/commit/697fc20740b243fa31ecf06e8b2ed9d09932a544))
173
+
174
+ ## [4.0.0-alpha.3](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.2...v4.0.0-alpha.3) (2024-09-20)
175
+
176
+
177
+ ### Features
178
+
179
+ * developers provide global connectivity appkit project id ([#6941](https://github.com/dynamic-labs/DynamicAuth/issues/6941)) ([83760ea](https://github.com/dynamic-labs/DynamicAuth/commit/83760ea57591685b12caee945f173f6a7f9312d1))
180
+
181
+
182
+ ### Bug Fixes
183
+
184
+ * don't try to set up event listeners if wallet provider doesn't support it ([#6943](https://github.com/dynamic-labs/DynamicAuth/issues/6943)) ([439f1bb](https://github.com/dynamic-labs/DynamicAuth/commit/439f1bbb3c765959756cfc6eeb8429e4018e0379))
185
+ * dont verify all signatures for solana embedded multisig tx ([#6953](https://github.com/dynamic-labs/DynamicAuth/issues/6953)) ([7a7973e](https://github.com/dynamic-labs/DynamicAuth/commit/7a7973e05f0960421b348a55c6a00c9fd873b0b7))
186
+
2
187
  ## [4.0.0-alpha.2](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.1...v4.0.0-alpha.2) (2024-09-18)
3
188
 
4
189
 
package/package.cjs ADDED
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var version = "4.0.0-alpha.21";
7
+
8
+ exports.version = version;
package/package.js ADDED
@@ -0,0 +1,4 @@
1
+ 'use client'
2
+ var version = "4.0.0-alpha.21";
3
+
4
+ export { version };
package/package.json CHANGED
@@ -1,16 +1,7 @@
1
1
  {
2
2
  "name": "@dynamic-labs/ethereum",
3
- "version": "4.0.0-alpha.2",
4
- "repository": {
5
- "type": "git",
6
- "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
7
- "directory": "packages/ethereum"
8
- },
3
+ "version": "4.0.0-alpha.21",
9
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
10
- "bugs": {
11
- "url": "https://github.com/dynamic-labs/DynamicAuth/issues"
12
- },
13
- "homepage": "https://github.com/dynamic-labs/DynamicAuth#readme",
14
5
  "author": "Dynamic Labs, Inc.",
15
6
  "license": "MIT",
16
7
  "main": "./src/index.cjs",
@@ -25,18 +16,20 @@
25
16
  },
26
17
  "./package.json": "./package.json"
27
18
  },
19
+ "homepage": "https://www.dynamic.xyz/",
28
20
  "dependencies": {
29
21
  "@coinbase/wallet-sdk": "4.0.4",
30
22
  "@walletconnect/ethereum-provider": "2.11.2",
23
+ "@walletconnect/types": "2.10.6",
31
24
  "eventemitter3": "5.0.1",
32
25
  "buffer": "6.0.3",
33
- "@dynamic-labs/embedded-wallet-evm": "4.0.0-alpha.2",
34
- "@dynamic-labs/ethereum-core": "4.0.0-alpha.2",
35
- "@dynamic-labs/types": "4.0.0-alpha.2",
36
- "@dynamic-labs/utils": "4.0.0-alpha.2",
37
- "@dynamic-labs/wallet-book": "4.0.0-alpha.2",
38
- "@dynamic-labs/wallet-connector-core": "4.0.0-alpha.2",
39
- "stream": "0.0.2"
26
+ "@dynamic-labs/assert-package-version": "4.0.0-alpha.21",
27
+ "@dynamic-labs/embedded-wallet-evm": "4.0.0-alpha.21",
28
+ "@dynamic-labs/ethereum-core": "4.0.0-alpha.21",
29
+ "@dynamic-labs/types": "4.0.0-alpha.21",
30
+ "@dynamic-labs/utils": "4.0.0-alpha.21",
31
+ "@dynamic-labs/wallet-book": "4.0.0-alpha.21",
32
+ "@dynamic-labs/wallet-connector-core": "4.0.0-alpha.21"
40
33
  },
41
34
  "peerDependencies": {
42
35
  "viem": "^2.7.6"
@@ -12,15 +12,18 @@ var ethereumCore = require('@dynamic-labs/ethereum-core');
12
12
  class EthProviderHelper {
13
13
  constructor(wallet, connector) {
14
14
  this.wallet = wallet;
15
- this.connector = connector;
15
+ this._connector = connector;
16
+ }
17
+ get connector() {
18
+ if (!this._connector) {
19
+ throw new Error('Connect not provided to EthProviderHelper');
20
+ }
21
+ return this._connector;
16
22
  }
17
23
  getInstalledProvider() {
18
- const eip6963Config = this.getEip6963Config();
19
- if (eip6963Config) {
20
- const eip6963Provider = this.eip6963ProviderLookup(eip6963Config.rdns);
21
- if (eip6963Provider) {
22
- return eip6963Provider;
23
- }
24
+ const eip6963Provider = this.getEip6963Provider();
25
+ if (eip6963Provider) {
26
+ return eip6963Provider;
24
27
  }
25
28
  const config = this.getInjectedConfig();
26
29
  if (!config ||
@@ -29,6 +32,13 @@ class EthProviderHelper {
29
32
  return undefined;
30
33
  return this.installedProviderLookup(config.extensionLocators);
31
34
  }
35
+ getEip6963Provider() {
36
+ const eip6963Config = this.getEip6963Config();
37
+ if (eip6963Config) {
38
+ return this.eip6963ProviderLookup(eip6963Config.rdns);
39
+ }
40
+ return undefined;
41
+ }
32
42
  getEip6963Config() {
33
43
  if (!this.wallet || !this.wallet.eip6963Config)
34
44
  return;
@@ -75,7 +85,7 @@ class EthProviderHelper {
75
85
  return this.findProvider() !== undefined;
76
86
  }
77
87
  findProvider() {
78
- return this.getInstalledProvider();
88
+ return this.connector.findProvider();
79
89
  }
80
90
  findWalletClient(chainId) {
81
91
  const provider = this.findProvider();
@@ -130,32 +140,43 @@ class EthProviderHelper {
130
140
  }
131
141
  _setupEventListeners(walletConnector) {
132
142
  const web3Provider = this.findProvider();
133
- if (!web3Provider) {
143
+ if (web3Provider && 'on' in web3Provider) {
144
+ const { handleAccountChange, handleChainChange, handleDisconnect } = walletConnectorCore.eventListenerHandlers(walletConnector);
145
+ web3Provider.on('accountsChanged', handleAccountChange);
146
+ web3Provider.on('chainChanged', handleChainChange);
147
+ web3Provider.on('disconnect', handleDisconnect);
148
+ const tearDownEventListeners = () => {
149
+ const web3Provider = this.findProvider();
150
+ if (!web3Provider) {
151
+ return;
152
+ }
153
+ if (handleAccountChange) {
154
+ web3Provider.removeListener('accountsChanged', handleAccountChange);
155
+ }
156
+ if (handleChainChange) {
157
+ web3Provider.removeListener('chainChanged', handleChainChange);
158
+ }
159
+ if (handleDisconnect) {
160
+ web3Provider.removeListener('disconnect', handleDisconnect);
161
+ }
162
+ };
134
163
  return {
135
- tearDownEventListeners: () => { },
164
+ tearDownEventListeners,
136
165
  };
137
166
  }
138
- const { handleAccountChange, handleChainChange, handleDisconnect } = walletConnectorCore.eventListenerHandlers(walletConnector);
139
- web3Provider.on('accountsChanged', handleAccountChange);
140
- web3Provider.on('chainChanged', handleChainChange);
141
- web3Provider.on('disconnect', handleDisconnect);
142
- const tearDownEventListeners = () => {
143
- const web3Provider = this.findProvider();
144
- if (!web3Provider) {
145
- return;
146
- }
147
- if (handleAccountChange) {
148
- web3Provider.removeListener('accountsChanged', handleAccountChange);
149
- }
150
- if (handleChainChange) {
151
- web3Provider.removeListener('chainChanged', handleChainChange);
152
- }
153
- if (handleDisconnect) {
154
- web3Provider.removeListener('disconnect', handleDisconnect);
155
- }
156
- };
167
+ if (!web3Provider) {
168
+ walletConnectorCore.logger.warn('Provider not found', {
169
+ connector: walletConnector,
170
+ });
171
+ }
172
+ else if (!('on' in web3Provider)) {
173
+ walletConnectorCore.logger.warn('Provider does not support event listeners', {
174
+ connector: walletConnector,
175
+ provider: web3Provider,
176
+ });
177
+ }
157
178
  return {
158
- tearDownEventListeners,
179
+ tearDownEventListeners: () => { },
159
180
  };
160
181
  }
161
182
  }
@@ -1,13 +1,15 @@
1
1
  import { Hex, WalletClient, Account, Transport, Chain as ViemChain } from 'viem';
2
2
  import { ProviderCondition, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
3
  import { WalletSchema } from '@dynamic-labs/wallet-book';
4
- import { EthWalletConnector } from '@dynamic-labs/ethereum-core';
5
4
  import { IEthereum, ExtensionLocator } from './types';
5
+ import { InjectedWalletBase } from './injected/InjectedWalletBase';
6
6
  export declare class EthProviderHelper {
7
7
  private wallet;
8
- private connector;
9
- constructor(wallet: WalletSchema, connector: EthWalletConnector);
8
+ private _connector;
9
+ constructor(wallet: WalletSchema, connector?: InjectedWalletBase);
10
+ private get connector();
10
11
  getInstalledProvider(): IEthereum | undefined;
12
+ getEip6963Provider(): IEthereum | undefined;
11
13
  getEip6963Config(): {
12
14
  rdns: string;
13
15
  } | undefined;
@@ -8,15 +8,18 @@ import { chainsMap } from '@dynamic-labs/ethereum-core';
8
8
  class EthProviderHelper {
9
9
  constructor(wallet, connector) {
10
10
  this.wallet = wallet;
11
- this.connector = connector;
11
+ this._connector = connector;
12
+ }
13
+ get connector() {
14
+ if (!this._connector) {
15
+ throw new Error('Connect not provided to EthProviderHelper');
16
+ }
17
+ return this._connector;
12
18
  }
13
19
  getInstalledProvider() {
14
- const eip6963Config = this.getEip6963Config();
15
- if (eip6963Config) {
16
- const eip6963Provider = this.eip6963ProviderLookup(eip6963Config.rdns);
17
- if (eip6963Provider) {
18
- return eip6963Provider;
19
- }
20
+ const eip6963Provider = this.getEip6963Provider();
21
+ if (eip6963Provider) {
22
+ return eip6963Provider;
20
23
  }
21
24
  const config = this.getInjectedConfig();
22
25
  if (!config ||
@@ -25,6 +28,13 @@ class EthProviderHelper {
25
28
  return undefined;
26
29
  return this.installedProviderLookup(config.extensionLocators);
27
30
  }
31
+ getEip6963Provider() {
32
+ const eip6963Config = this.getEip6963Config();
33
+ if (eip6963Config) {
34
+ return this.eip6963ProviderLookup(eip6963Config.rdns);
35
+ }
36
+ return undefined;
37
+ }
28
38
  getEip6963Config() {
29
39
  if (!this.wallet || !this.wallet.eip6963Config)
30
40
  return;
@@ -71,7 +81,7 @@ class EthProviderHelper {
71
81
  return this.findProvider() !== undefined;
72
82
  }
73
83
  findProvider() {
74
- return this.getInstalledProvider();
84
+ return this.connector.findProvider();
75
85
  }
76
86
  findWalletClient(chainId) {
77
87
  const provider = this.findProvider();
@@ -126,32 +136,43 @@ class EthProviderHelper {
126
136
  }
127
137
  _setupEventListeners(walletConnector) {
128
138
  const web3Provider = this.findProvider();
129
- if (!web3Provider) {
139
+ if (web3Provider && 'on' in web3Provider) {
140
+ const { handleAccountChange, handleChainChange, handleDisconnect } = eventListenerHandlers(walletConnector);
141
+ web3Provider.on('accountsChanged', handleAccountChange);
142
+ web3Provider.on('chainChanged', handleChainChange);
143
+ web3Provider.on('disconnect', handleDisconnect);
144
+ const tearDownEventListeners = () => {
145
+ const web3Provider = this.findProvider();
146
+ if (!web3Provider) {
147
+ return;
148
+ }
149
+ if (handleAccountChange) {
150
+ web3Provider.removeListener('accountsChanged', handleAccountChange);
151
+ }
152
+ if (handleChainChange) {
153
+ web3Provider.removeListener('chainChanged', handleChainChange);
154
+ }
155
+ if (handleDisconnect) {
156
+ web3Provider.removeListener('disconnect', handleDisconnect);
157
+ }
158
+ };
130
159
  return {
131
- tearDownEventListeners: () => { },
160
+ tearDownEventListeners,
132
161
  };
133
162
  }
134
- const { handleAccountChange, handleChainChange, handleDisconnect } = 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
- };
163
+ if (!web3Provider) {
164
+ logger.warn('Provider not found', {
165
+ connector: walletConnector,
166
+ });
167
+ }
168
+ else if (!('on' in web3Provider)) {
169
+ logger.warn('Provider does not support event listeners', {
170
+ connector: walletConnector,
171
+ provider: web3Provider,
172
+ });
173
+ }
153
174
  return {
154
- tearDownEventListeners,
175
+ tearDownEventListeners: () => { },
155
176
  };
156
177
  }
157
178
  }
package/src/index.cjs CHANGED
@@ -5,11 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  require('./polyfills.cjs');
7
7
  var embeddedWalletEvm = require('@dynamic-labs/embedded-wallet-evm');
8
+ var assertPackageVersion = require('@dynamic-labs/assert-package-version');
9
+ var _package = require('../package.cjs');
8
10
  var PhantomEvm = require('./injected/PhantomEvm.cjs');
9
11
  var ExodusEvm = require('./injected/ExodusEvm.cjs');
10
12
  var UnknownInjected = require('./injected/UnknownInjected.cjs');
11
13
  var FallbackEvmConnector = require('./injected/FallbackEvmConnector.cjs');
12
14
  var fetchInjectedWalletConnectors = require('./injected/fetchInjectedWalletConnectors.cjs');
15
+ var InjectedWalletBase = require('./injected/InjectedWalletBase.cjs');
13
16
  require('./walletConnect/walletConnect.cjs');
14
17
  var fetchWalletConnectWallets = require('./walletConnect/fetchWalletConnectWallets.cjs');
15
18
  var coinbase = require('./coinbase/coinbase.cjs');
@@ -17,6 +20,7 @@ var ethereumCore = require('@dynamic-labs/ethereum-core');
17
20
  var ethProviderHelper = require('./ethProviderHelper.cjs');
18
21
  var constants = require('./constants.cjs');
19
22
 
23
+ assertPackageVersion.assertPackageVersion('@dynamic-labs/ethereum', _package.version);
20
24
  const EthereumWalletConnectors = (props) => [
21
25
  ...fetchInjectedWalletConnectors.injectedWalletOverrides,
22
26
  ...fetchInjectedWalletConnectors.fetchInjectedWalletConnector(props),
@@ -34,6 +38,7 @@ exports.UnknownInjected = UnknownInjected.UnknownInjected;
34
38
  exports.FallbackEvmConnector = FallbackEvmConnector.FallbackEvmConnector;
35
39
  exports.fetchInjectedWalletConnector = fetchInjectedWalletConnectors.fetchInjectedWalletConnector;
36
40
  exports.injectedWalletOverrides = fetchInjectedWalletConnectors.injectedWalletOverrides;
41
+ exports.EthereumInjectedConnector = InjectedWalletBase.InjectedWalletBase;
37
42
  Object.defineProperty(exports, 'isEthereumWallet', {
38
43
  enumerable: true,
39
44
  get: function () { return ethereumCore.isEthereumWallet; }
package/src/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  'use client'
2
2
  import './polyfills.js';
3
3
  import { TurnkeyEVMWalletConnectors } from '@dynamic-labs/embedded-wallet-evm';
4
+ import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
5
+ import { version } from '../package.js';
4
6
  export { PhantomEvm } from './injected/PhantomEvm.js';
5
7
  export { ExodusEvm } from './injected/ExodusEvm.js';
6
8
  import { UnknownInjected } from './injected/UnknownInjected.js';
@@ -9,6 +11,7 @@ import { FallbackEvmConnector } from './injected/FallbackEvmConnector.js';
9
11
  export { FallbackEvmConnector } from './injected/FallbackEvmConnector.js';
10
12
  import { injectedWalletOverrides, fetchInjectedWalletConnector } from './injected/fetchInjectedWalletConnectors.js';
11
13
  export { fetchInjectedWalletConnector, injectedWalletOverrides } from './injected/fetchInjectedWalletConnectors.js';
14
+ export { InjectedWalletBase as EthereumInjectedConnector } from './injected/InjectedWalletBase.js';
12
15
  import './walletConnect/walletConnect.js';
13
16
  import { fetchWalletConnectWallets, getWalletConnectConnector } from './walletConnect/fetchWalletConnectWallets.js';
14
17
  import { Coinbase } from './coinbase/coinbase.js';
@@ -16,6 +19,7 @@ export { isEthereumWallet } from '@dynamic-labs/ethereum-core';
16
19
  export { EthProviderHelper } from './ethProviderHelper.js';
17
20
  export { INFURA_ID } from './constants.js';
18
21
 
22
+ assertPackageVersion('@dynamic-labs/ethereum', version);
19
23
  const EthereumWalletConnectors = (props) => [
20
24
  ...injectedWalletOverrides,
21
25
  ...fetchInjectedWalletConnector(props),
@@ -7,7 +7,7 @@ var walletBook = require('@dynamic-labs/wallet-book');
7
7
  var InjectedWalletBase = require('./InjectedWalletBase.cjs');
8
8
 
9
9
  // leaving ExodusEvm in here due to a backwards compatibility issue with this one wallet and v18
10
- class ExodusEvm extends InjectedWalletBase {
10
+ class ExodusEvm extends InjectedWalletBase.InjectedWalletBase {
11
11
  constructor(props) {
12
12
  super(props);
13
13
  this.name = 'ExodusEvm';
@@ -1,5 +1,5 @@
1
1
  import { EthWalletConnectorOpts } from '@dynamic-labs/ethereum-core';
2
- import InjectedWalletBase from './InjectedWalletBase';
2
+ import { InjectedWalletBase } from './InjectedWalletBase';
3
3
  export declare class ExodusEvm extends InjectedWalletBase {
4
4
  name: string;
5
5
  overrideKey: string;
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
3
- import InjectedWalletBase from './InjectedWalletBase.js';
3
+ import { InjectedWalletBase } from './InjectedWalletBase.js';
4
4
 
5
5
  // leaving ExodusEvm in here due to a backwards compatibility issue with this one wallet and v18
6
6
  class ExodusEvm extends InjectedWalletBase {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var walletBook = require('@dynamic-labs/wallet-book');
7
7
  var InjectedWalletBase = require('./InjectedWalletBase.cjs');
8
8
 
9
- class FallbackEvmConnector extends InjectedWalletBase {
9
+ class FallbackEvmConnector extends InjectedWalletBase.InjectedWalletBase {
10
10
  constructor(props) {
11
11
  super(props);
12
12
  this.name = 'Fallback Connector';
@@ -1,5 +1,5 @@
1
1
  import { EthWalletConnectorOpts } from '@dynamic-labs/ethereum-core';
2
- import InjectedWalletBase from './InjectedWalletBase';
2
+ import { InjectedWalletBase } from './InjectedWalletBase';
3
3
  export declare class FallbackEvmConnector extends InjectedWalletBase {
4
4
  name: string;
5
5
  overrideKey: string;
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
3
- import InjectedWalletBase from './InjectedWalletBase.js';
3
+ import { InjectedWalletBase } from './InjectedWalletBase.js';
4
4
 
5
5
  class FallbackEvmConnector extends InjectedWalletBase {
6
6
  constructor(props) {
@@ -1,6 +1,8 @@
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
7
  var walletBook = require('@dynamic-labs/wallet-book');
6
8
  var utils = require('@dynamic-labs/utils');
@@ -51,6 +53,12 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
51
53
  }
52
54
  return new walletConnect.WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
53
55
  }
56
+ findProvider() {
57
+ const ethProviderHelper = this.getEthProviderHelper();
58
+ if (!ethProviderHelper)
59
+ return;
60
+ return ethProviderHelper.getInstalledProvider();
61
+ }
54
62
  setupEventListeners() {
55
63
  const provider = this.getWalletClient();
56
64
  if (!provider)
@@ -108,4 +116,4 @@ class InjectedWalletBase extends ethereumCore.EthWalletConnector {
108
116
  }
109
117
  }
110
118
 
111
- module.exports = InjectedWalletBase;
119
+ exports.InjectedWalletBase = InjectedWalletBase;
@@ -4,7 +4,8 @@ import { EvmNetwork } from '@dynamic-labs/types';
4
4
  import { WalletSchema } from '@dynamic-labs/wallet-book';
5
5
  import { EthWalletConnector } from '@dynamic-labs/ethereum-core';
6
6
  import { EthProviderHelper } from '../ethProviderHelper';
7
- declare abstract class InjectedWalletBase extends EthWalletConnector {
7
+ import { IEthereum } from '../types';
8
+ export declare abstract class InjectedWalletBase extends EthWalletConnector {
8
9
  supportedChains: Chain[];
9
10
  connectedChain: Chain;
10
11
  publicAddress: string | undefined;
@@ -13,6 +14,7 @@ declare abstract class InjectedWalletBase extends EthWalletConnector {
13
14
  wallet: WalletSchema | undefined;
14
15
  getEthProviderHelper(): EthProviderHelper | undefined;
15
16
  getMobileOrInstalledWallet(): InjectedWalletBase;
17
+ findProvider(): IEthereum | undefined;
16
18
  setupEventListeners(): void;
17
19
  getWalletClient(chainId?: string): WalletClient<Transport, ViemChain, Account> | undefined;
18
20
  isInstalledOnBrowser(): boolean;
@@ -26,4 +28,3 @@ declare abstract class InjectedWalletBase extends EthWalletConnector {
26
28
  provider: WalletClient;
27
29
  }): Promise<void>;
28
30
  }
29
- export default InjectedWalletBase;
@@ -49,6 +49,12 @@ class InjectedWalletBase extends EthWalletConnector {
49
49
  }
50
50
  return new WalletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
51
51
  }
52
+ findProvider() {
53
+ const ethProviderHelper = this.getEthProviderHelper();
54
+ if (!ethProviderHelper)
55
+ return;
56
+ return ethProviderHelper.getInstalledProvider();
57
+ }
52
58
  setupEventListeners() {
53
59
  const provider = this.getWalletClient();
54
60
  if (!provider)
@@ -106,4 +112,4 @@ class InjectedWalletBase extends EthWalletConnector {
106
112
  }
107
113
  }
108
114
 
109
- export { InjectedWalletBase as default };
115
+ export { InjectedWalletBase };
@@ -8,7 +8,7 @@ var utils = require('@dynamic-labs/utils');
8
8
  var walletBook = require('@dynamic-labs/wallet-book');
9
9
  var InjectedWalletBase = require('./InjectedWalletBase.cjs');
10
10
 
11
- class PhantomEvm extends InjectedWalletBase {
11
+ class PhantomEvm extends InjectedWalletBase.InjectedWalletBase {
12
12
  constructor(props) {
13
13
  super(props);
14
14
  this.name = 'Phantom';
@@ -1,5 +1,5 @@
1
1
  import { EthWalletConnectorOpts } from '@dynamic-labs/ethereum-core';
2
- import InjectedWalletBase from './InjectedWalletBase';
2
+ import { InjectedWalletBase } from './InjectedWalletBase';
3
3
  export declare class PhantomEvm extends InjectedWalletBase {
4
4
  name: string;
5
5
  overrideKey: string;
@@ -2,7 +2,7 @@
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
3
  import { isMobile, handleMobileWalletRedirect } from '@dynamic-labs/utils';
4
4
  import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
5
- import InjectedWalletBase from './InjectedWalletBase.js';
5
+ import { InjectedWalletBase } from './InjectedWalletBase.js';
6
6
 
7
7
  class PhantomEvm extends InjectedWalletBase {
8
8
  constructor(props) {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var walletBook = require('@dynamic-labs/wallet-book');
7
7
  var InjectedWalletBase = require('./InjectedWalletBase.cjs');
8
8
 
9
- class UnknownInjected extends InjectedWalletBase {
9
+ class UnknownInjected extends InjectedWalletBase.InjectedWalletBase {
10
10
  constructor(props) {
11
11
  super(props);
12
12
  this.name = 'Unknown';
@@ -1,5 +1,5 @@
1
1
  import { EthWalletConnectorOpts } from '@dynamic-labs/ethereum-core';
2
- import InjectedWalletBase from './InjectedWalletBase';
2
+ import { InjectedWalletBase } from './InjectedWalletBase';
3
3
  export declare class UnknownInjected extends InjectedWalletBase {
4
4
  name: string;
5
5
  overrideKey: string;
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
3
- import InjectedWalletBase from './InjectedWalletBase.js';
3
+ import { InjectedWalletBase } from './InjectedWalletBase.js';
4
4
 
5
5
  class UnknownInjected extends InjectedWalletBase {
6
6
  constructor(props) {
@@ -30,7 +30,7 @@ const fetchInjectedWalletConnector = ({ walletBook, }) => {
30
30
  const { shortName } = wallet;
31
31
  const name = shortName || wallet.name;
32
32
  const walletConnectorFallback = Boolean(wallet.walletConnect);
33
- return class extends InjectedWalletBase {
33
+ return class extends InjectedWalletBase.InjectedWalletBase {
34
34
  constructor(props) {
35
35
  super(Object.assign({}, props));
36
36
  this.name = name;
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
3
  import { logger } from '@dynamic-labs/wallet-connector-core';
4
- import InjectedWalletBase from './InjectedWalletBase.js';
4
+ import { InjectedWalletBase } from './InjectedWalletBase.js';
5
5
  import { PhantomEvm } from './PhantomEvm.js';
6
6
  import { ExodusEvm } from './ExodusEvm.js';
7
7
 
@@ -3,3 +3,4 @@ export * from './ExodusEvm';
3
3
  export * from './UnknownInjected';
4
4
  export * from './FallbackEvmConnector';
5
5
  export * from './fetchInjectedWalletConnectors';
6
+ export { InjectedWalletBase as EthereumInjectedConnector } from './InjectedWalletBase';
package/src/types.d.ts CHANGED
@@ -1,6 +1,4 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { EventEmitter } from 'stream';
1
+ import { type EventEmitter } from 'eventemitter3';
4
2
  import { PublicClient } from 'viem';
5
3
  import { ProviderCondition } from '@dynamic-labs/wallet-connector-core';
6
4
  declare global {