@dynamic-labs/ethereum 4.18.7 → 4.19.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,27 @@
1
1
 
2
+ ## [4.19.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.8...v4.19.0) (2025-05-23)
3
+
4
+
5
+ ### Features
6
+
7
+ * expose 7702 kernel and add viem controller ([#8786](https://github.com/dynamic-labs/dynamic-auth/issues/8786)) ([eea710e](https://github.com/dynamic-labs/dynamic-auth/commit/eea710e238ccbc36e6be37d8f7493954b99858ef))
8
+ * use browser wallet client & iframe for waas operations ([#8697](https://github.com/dynamic-labs/dynamic-auth/issues/8697)) ([13a47b1](https://github.com/dynamic-labs/dynamic-auth/commit/13a47b1c9a2984f08682e833ca8c87605a3a872f))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **global-wallet:** close popup when page unloads to prevent orphaned popup windows ([#8787](https://github.com/dynamic-labs/dynamic-auth/issues/8787)) ([441b04c](https://github.com/dynamic-labs/dynamic-auth/commit/441b04ca04a02feb37473e43bca0e66c5d772ce2))
14
+ * override network when requesting BTC networks in useTokenBalances ([#8773](https://github.com/dynamic-labs/dynamic-auth/issues/8773)) ([fd07d09](https://github.com/dynamic-labs/dynamic-auth/commit/fd07d09de970c7e6f85b251a88854e8eca57e249))
15
+ * remove libmpc executor dependency global wallet ([#8792](https://github.com/dynamic-labs/dynamic-auth/issues/8792)) ([7502585](https://github.com/dynamic-labs/dynamic-auth/commit/75025859d2f952915322cf65504117ec2506152b))
16
+ * standardize font on headers ([#8734](https://github.com/dynamic-labs/dynamic-auth/issues/8734)) ([9f0900c](https://github.com/dynamic-labs/dynamic-auth/commit/9f0900cb7c4294201cc952ae7538648bdea83ff5))
17
+
18
+ ### [4.18.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.7...v4.18.8) (2025-05-22)
19
+
20
+ ### Bug Fixes
21
+
22
+ * allow closing widget right after login ([#8760](https://github.com/dynamic-labs/dynamic-auth/issues/8760)) ([a9afff0](https://github.com/dynamic-labs/dynamic-auth/commit/a9afff0ab2a685853b39aed88e10bf1e700e4c8c))
23
+ * user wallets turning empty when linking new wallets ([#8775](https://github.com/dynamic-labs/dynamic-auth/issues/8775)) ([04215f5](https://github.com/dynamic-labs/dynamic-auth/commit/04215f5307e16ec4e1a7ff235a0d7df2340c3447))
24
+
2
25
  ### [4.18.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.6...v4.18.7) (2025-05-21)
3
26
 
4
27
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.18.7";
6
+ var version = "4.19.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.18.7";
2
+ var version = "4.19.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/ethereum",
3
- "version": "4.18.7",
3
+ "version": "4.19.0",
4
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -22,16 +22,16 @@
22
22
  "@walletconnect/ethereum-provider": "2.19.1",
23
23
  "eventemitter3": "5.0.1",
24
24
  "buffer": "6.0.3",
25
- "@metamask/sdk": "0.32.0",
26
- "@dynamic-labs/assert-package-version": "4.18.7",
27
- "@dynamic-labs/embedded-wallet-evm": "4.18.7",
28
- "@dynamic-labs/ethereum-core": "4.18.7",
29
- "@dynamic-labs/logger": "4.18.7",
30
- "@dynamic-labs/rpc-providers": "4.18.7",
31
- "@dynamic-labs/types": "4.18.7",
32
- "@dynamic-labs/utils": "4.18.7",
33
- "@dynamic-labs/wallet-book": "4.18.7",
34
- "@dynamic-labs/wallet-connector-core": "4.18.7"
25
+ "@metamask/sdk": "0.33.0",
26
+ "@dynamic-labs/assert-package-version": "4.19.0",
27
+ "@dynamic-labs/embedded-wallet-evm": "4.19.0",
28
+ "@dynamic-labs/ethereum-core": "4.19.0",
29
+ "@dynamic-labs/logger": "4.19.0",
30
+ "@dynamic-labs/rpc-providers": "4.19.0",
31
+ "@dynamic-labs/types": "4.19.0",
32
+ "@dynamic-labs/utils": "4.19.0",
33
+ "@dynamic-labs/wallet-book": "4.19.0",
34
+ "@dynamic-labs/wallet-connector-core": "4.19.0"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "viem": "^2.28.4"
@@ -51,6 +51,9 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
51
51
  * is installed on the browser.
52
52
  */
53
53
  this.canHandleMultipleConnections = this.isInstalledOnBrowser();
54
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] constructor', {
55
+ hasMetaMaskSDK: Boolean(_metaMaskSDK),
56
+ });
54
57
  if (!_metaMaskSDK) {
55
58
  this.createMetaMaskSDK();
56
59
  }
@@ -80,6 +83,9 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
80
83
  name: this.appName,
81
84
  url: utils.PlatformService.getOrigin(),
82
85
  };
86
+ logger.logger.debug('[MetaMaskConnector] createMetaMaskSDK - creating sdk', {
87
+ dappMetadata,
88
+ });
83
89
  _metaMaskSDK = new sdk.MetaMaskSDK({
84
90
  checkInstallationImmediately: true,
85
91
  dappMetadata,
@@ -92,10 +98,12 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
92
98
  readonlyRPCMap: getReadonlyRPCMap(this.evmNetworkRpcMap()),
93
99
  useDeeplink: true,
94
100
  });
101
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] createMetaMaskSDK - created sdk', { _metaMaskSDK });
95
102
  }
96
103
  endSession() {
97
104
  return _tslib.__awaiter(this, void 0, void 0, function* () {
98
105
  eventTimeline.postEvent('disconnect');
106
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] endSession - terminating sdk');
99
107
  /**
100
108
  * The MetaMask SDK must be terminated and reinitialized on mobile
101
109
  * to prevent deeplinks not working
@@ -114,10 +122,13 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
114
122
  }
115
123
  getAddress(opts) {
116
124
  return _tslib.__awaiter(this, void 0, void 0, function* () {
125
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - waiting for sdk init');
117
126
  yield this.metaMaskSDK.sdkInitPromise;
127
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - sdk init promise resolved');
118
128
  // QR Code flow
119
129
  const handleDisplayUri = (displayUri) => {
120
130
  var _a;
131
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] handleDisplayUri', { displayUri });
121
132
  if (!displayUri)
122
133
  return;
123
134
  setMetaMaskDisplayUri(displayUri);
@@ -134,15 +145,20 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
134
145
  utils.PlatformService.openURL(`${this.metadata.inAppBrowserUrl}/${window.location.href}`);
135
146
  return;
136
147
  }
148
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - getting initial connected accounts');
137
149
  // Connect to MetaMask
138
150
  const initialConnectedAccounts = yield this.getConnectedAccountsSafely();
151
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - got initial connected accounts', { initialConnectedAccounts });
139
152
  if (initialConnectedAccounts.length) {
140
153
  return this.parseAddress(initialConnectedAccounts[0]);
141
154
  }
142
155
  try {
156
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - connecting to metaMask');
143
157
  yield this.metaMaskSDK.connect();
158
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - connected to metaMask');
144
159
  }
145
160
  catch (error) {
161
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - error connecting to metaMask', { error });
146
162
  /**
147
163
  * In case of a getAddress call was already made and is pending
148
164
  * and a new getAddress call is made after a endSession call, the
@@ -161,10 +177,13 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
161
177
  throw utils.MetaMaskError.fromError(error);
162
178
  }
163
179
  else {
180
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - error connection - waiting for connection');
164
181
  yield waitForConnection.waitForConnection(this.getProvider());
165
182
  }
166
183
  }
184
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - getting connected accounts');
167
185
  const accounts = yield this.getConnectedAccounts();
186
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - got connected accounts', { accounts });
168
187
  return accounts[0];
169
188
  }
170
189
  finally {
@@ -212,7 +231,9 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
212
231
  }
213
232
  signMessage(messageToSign) {
214
233
  return _tslib.__awaiter(this, void 0, void 0, function* () {
234
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - waiting for sdk init');
215
235
  yield this.metaMaskSDK.sdkInitPromise;
236
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - sdk init promise resolved');
216
237
  /**
217
238
  * Should wait for the window to be focused on mobile
218
239
  * to account for the user moving between the MetaMaskApp
@@ -222,20 +243,25 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
222
243
  ? waitForFocusWindowEvent()
223
244
  : Promise.resolve();
224
245
  const provider = this.getProvider();
246
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - got provider', { provider });
225
247
  if (!provider) {
226
248
  return undefined;
227
249
  }
228
250
  const [selectedAddress] = yield this.getConnectedAccounts();
251
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - got selected address', { selectedAddress });
229
252
  if (!selectedAddress) {
230
253
  return undefined;
231
254
  }
232
255
  const walletClient = this.getWalletClientForAddress(selectedAddress);
233
256
  if (!walletClient)
234
257
  return undefined;
258
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - will sign', { messageToSign });
235
259
  const signature = yield walletClient.signMessage({
236
260
  message: messageToSign,
237
261
  });
262
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - will wait for window focus');
238
263
  yield windowFocusPromiseForMobile;
264
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - signed', { signature });
239
265
  return signature;
240
266
  });
241
267
  }
@@ -246,6 +272,7 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
246
272
  }
247
273
  getWalletClient(chainId) {
248
274
  const provider = this.getProvider();
275
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getWalletClient - got provider', { provider });
249
276
  if (!provider) {
250
277
  return undefined;
251
278
  }
@@ -305,8 +332,11 @@ class MetaMaskConnector extends InjectedWalletBase.InjectedWalletBase {
305
332
  getNetwork: { get: () => super.getNetwork }
306
333
  });
307
334
  return _tslib.__awaiter(this, void 0, void 0, function* () {
335
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getNetwork - waiting for sdk init');
308
336
  yield this.metaMaskSDK.sdkInitPromise;
337
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getNetwork - sdk init promise resolved');
309
338
  const net = yield _super.getNetwork.call(this);
339
+ logger.logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getNetwork - got network', { network: net });
310
340
  return net;
311
341
  });
312
342
  }
@@ -47,6 +47,9 @@ class MetaMaskConnector extends InjectedWalletBase {
47
47
  * is installed on the browser.
48
48
  */
49
49
  this.canHandleMultipleConnections = this.isInstalledOnBrowser();
50
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] constructor', {
51
+ hasMetaMaskSDK: Boolean(_metaMaskSDK),
52
+ });
50
53
  if (!_metaMaskSDK) {
51
54
  this.createMetaMaskSDK();
52
55
  }
@@ -76,6 +79,9 @@ class MetaMaskConnector extends InjectedWalletBase {
76
79
  name: this.appName,
77
80
  url: PlatformService.getOrigin(),
78
81
  };
82
+ logger.debug('[MetaMaskConnector] createMetaMaskSDK - creating sdk', {
83
+ dappMetadata,
84
+ });
79
85
  _metaMaskSDK = new MetaMaskSDK({
80
86
  checkInstallationImmediately: true,
81
87
  dappMetadata,
@@ -88,10 +94,12 @@ class MetaMaskConnector extends InjectedWalletBase {
88
94
  readonlyRPCMap: getReadonlyRPCMap(this.evmNetworkRpcMap()),
89
95
  useDeeplink: true,
90
96
  });
97
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] createMetaMaskSDK - created sdk', { _metaMaskSDK });
91
98
  }
92
99
  endSession() {
93
100
  return __awaiter(this, void 0, void 0, function* () {
94
101
  eventTimeline.postEvent('disconnect');
102
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] endSession - terminating sdk');
95
103
  /**
96
104
  * The MetaMask SDK must be terminated and reinitialized on mobile
97
105
  * to prevent deeplinks not working
@@ -110,10 +118,13 @@ class MetaMaskConnector extends InjectedWalletBase {
110
118
  }
111
119
  getAddress(opts) {
112
120
  return __awaiter(this, void 0, void 0, function* () {
121
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - waiting for sdk init');
113
122
  yield this.metaMaskSDK.sdkInitPromise;
123
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - sdk init promise resolved');
114
124
  // QR Code flow
115
125
  const handleDisplayUri = (displayUri) => {
116
126
  var _a;
127
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] handleDisplayUri', { displayUri });
117
128
  if (!displayUri)
118
129
  return;
119
130
  setMetaMaskDisplayUri(displayUri);
@@ -130,15 +141,20 @@ class MetaMaskConnector extends InjectedWalletBase {
130
141
  PlatformService.openURL(`${this.metadata.inAppBrowserUrl}/${window.location.href}`);
131
142
  return;
132
143
  }
144
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - getting initial connected accounts');
133
145
  // Connect to MetaMask
134
146
  const initialConnectedAccounts = yield this.getConnectedAccountsSafely();
147
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - got initial connected accounts', { initialConnectedAccounts });
135
148
  if (initialConnectedAccounts.length) {
136
149
  return this.parseAddress(initialConnectedAccounts[0]);
137
150
  }
138
151
  try {
152
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - connecting to metaMask');
139
153
  yield this.metaMaskSDK.connect();
154
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - connected to metaMask');
140
155
  }
141
156
  catch (error) {
157
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - error connecting to metaMask', { error });
142
158
  /**
143
159
  * In case of a getAddress call was already made and is pending
144
160
  * and a new getAddress call is made after a endSession call, the
@@ -157,10 +173,13 @@ class MetaMaskConnector extends InjectedWalletBase {
157
173
  throw MetaMaskError.fromError(error);
158
174
  }
159
175
  else {
176
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - error connection - waiting for connection');
160
177
  yield waitForConnection(this.getProvider());
161
178
  }
162
179
  }
180
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - getting connected accounts');
163
181
  const accounts = yield this.getConnectedAccounts();
182
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getAddress - got connected accounts', { accounts });
164
183
  return accounts[0];
165
184
  }
166
185
  finally {
@@ -208,7 +227,9 @@ class MetaMaskConnector extends InjectedWalletBase {
208
227
  }
209
228
  signMessage(messageToSign) {
210
229
  return __awaiter(this, void 0, void 0, function* () {
230
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - waiting for sdk init');
211
231
  yield this.metaMaskSDK.sdkInitPromise;
232
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - sdk init promise resolved');
212
233
  /**
213
234
  * Should wait for the window to be focused on mobile
214
235
  * to account for the user moving between the MetaMaskApp
@@ -218,20 +239,25 @@ class MetaMaskConnector extends InjectedWalletBase {
218
239
  ? waitForFocusWindowEvent()
219
240
  : Promise.resolve();
220
241
  const provider = this.getProvider();
242
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - got provider', { provider });
221
243
  if (!provider) {
222
244
  return undefined;
223
245
  }
224
246
  const [selectedAddress] = yield this.getConnectedAccounts();
247
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - got selected address', { selectedAddress });
225
248
  if (!selectedAddress) {
226
249
  return undefined;
227
250
  }
228
251
  const walletClient = this.getWalletClientForAddress(selectedAddress);
229
252
  if (!walletClient)
230
253
  return undefined;
254
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - will sign', { messageToSign });
231
255
  const signature = yield walletClient.signMessage({
232
256
  message: messageToSign,
233
257
  });
258
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - will wait for window focus');
234
259
  yield windowFocusPromiseForMobile;
260
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] signMessage - signed', { signature });
235
261
  return signature;
236
262
  });
237
263
  }
@@ -242,6 +268,7 @@ class MetaMaskConnector extends InjectedWalletBase {
242
268
  }
243
269
  getWalletClient(chainId) {
244
270
  const provider = this.getProvider();
271
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getWalletClient - got provider', { provider });
245
272
  if (!provider) {
246
273
  return undefined;
247
274
  }
@@ -301,8 +328,11 @@ class MetaMaskConnector extends InjectedWalletBase {
301
328
  getNetwork: { get: () => super.getNetwork }
302
329
  });
303
330
  return __awaiter(this, void 0, void 0, function* () {
331
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getNetwork - waiting for sdk init');
304
332
  yield this.metaMaskSDK.sdkInitPromise;
333
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getNetwork - sdk init promise resolved');
305
334
  const net = yield _super.getNetwork.call(this);
335
+ logger.logVerboseTroubleshootingMessage('[MetaMaskConnector] getNetwork - got network', { network: net });
306
336
  return net;
307
337
  });
308
338
  }