@dynamic-labs/wallet-connector-core 0.19.0-alpha.13 → 0.19.0-alpha.14

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,30 @@
1
1
 
2
+ ## [0.19.0-alpha.14](https://github.com/dynamic-labs/DynamicAuth/compare/v0.19.0-alpha.13...v0.19.0-alpha.14) (2023-10-10)
3
+
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * remove numberOfWallets (#3521)
8
+
9
+ ### Features
10
+
11
+ * add embedded widget components ([#3533](https://github.com/dynamic-labs/DynamicAuth/issues/3533)) ([513cba8](https://github.com/dynamic-labs/DynamicAuth/commit/513cba8e7694544122ff9cce3aa1aea0a0c23986))
12
+ * add ethers extension support to wallet-connectors ([#3544](https://github.com/dynamic-labs/DynamicAuth/issues/3544)) ([3c09ba5](https://github.com/dynamic-labs/DynamicAuth/commit/3c09ba58b0f2c745df60a87b1820abbbfc1b95b7))
13
+ * add switch network for turnkey wallets ([#3539](https://github.com/dynamic-labs/DynamicAuth/issues/3539)) ([1bcbbb2](https://github.com/dynamic-labs/DynamicAuth/commit/1bcbbb2bd4e333d47ce4c93d4bd4b1f29a80c1f4))
14
+ * editable copy for switch network view ([#3561](https://github.com/dynamic-labs/DynamicAuth/issues/3561)) ([4dea2f1](https://github.com/dynamic-labs/DynamicAuth/commit/4dea2f159ee0675d5b9ba1cb412d75e5e211b3d1))
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * always call connectSucess callback after successfully connecting wallet ([#3562](https://github.com/dynamic-labs/DynamicAuth/issues/3562)) ([2587ff8](https://github.com/dynamic-labs/DynamicAuth/commit/2587ff8a915f61793b15bfa1289689514344fc75))
20
+ * don't let user update email if they have an embedded wallet ([#3552](https://github.com/dynamic-labs/DynamicAuth/issues/3552)) ([c710cce](https://github.com/dynamic-labs/DynamicAuth/commit/c710cce22c7a54004f56c8fc68f8c4075f5f9e51))
21
+ * embedded widget rerender bug ([#3545](https://github.com/dynamic-labs/DynamicAuth/issues/3545)) ([27ed979](https://github.com/dynamic-labs/DynamicAuth/commit/27ed979618ac7d9e912381faebbf61ec9e9e839c))
22
+ * sync passkey should not throw error ([#3535](https://github.com/dynamic-labs/DynamicAuth/issues/3535)) ([0336ba6](https://github.com/dynamic-labs/DynamicAuth/commit/0336ba65bf1cc4394e4f005f273baea26326784a))
23
+ * wrap eth wallet connector rpc calls in retry function ([#3497](https://github.com/dynamic-labs/DynamicAuth/issues/3497)) ([7800b45](https://github.com/dynamic-labs/DynamicAuth/commit/7800b45dc93f20731ee643e89e84d57765387778))
24
+
25
+
26
+ * remove numberOfWallets ([#3521](https://github.com/dynamic-labs/DynamicAuth/issues/3521)) ([0174297](https://github.com/dynamic-labs/DynamicAuth/commit/017429745d08b7b1edc23bc4da43bc01b4ef1cd4))
27
+
2
28
  ## [0.19.0-alpha.13](https://github.com/dynamic-labs/DynamicAuth/compare/v0.19.0-alpha.12...v0.19.0-alpha.13) (2023-10-04)
3
29
 
4
30
 
@@ -25,6 +25,13 @@ function __awaiter(thisArg, _arguments, P, generator) {
25
25
  function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
26
26
  step((generator = generator.apply(thisArg, _arguments || [])).next());
27
27
  });
28
+ }
29
+
30
+ function __classPrivateFieldGet(receiver, state, kind, f) {
31
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
32
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
33
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
28
34
  }
29
35
 
30
36
  exports.__awaiter = __awaiter;
37
+ exports.__classPrivateFieldGet = __classPrivateFieldGet;
@@ -21,6 +21,12 @@ function __awaiter(thisArg, _arguments, P, generator) {
21
21
  function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
22
  step((generator = generator.apply(thisArg, _arguments || [])).next());
23
23
  });
24
+ }
25
+
26
+ function __classPrivateFieldGet(receiver, state, kind, f) {
27
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
28
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
29
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
24
30
  }
25
31
 
26
- export { __awaiter };
32
+ export { __awaiter, __classPrivateFieldGet };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/wallet-connector-core",
3
- "version": "0.19.0-alpha.13",
3
+ "version": "0.19.0-alpha.14",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -26,11 +26,11 @@
26
26
  "./package.json": "./package.json"
27
27
  },
28
28
  "peerDependencies": {
29
- "@dynamic-labs/logger": "0.19.0-alpha.13",
30
- "@dynamic-labs/rpc-providers": "0.19.0-alpha.13",
29
+ "@dynamic-labs/logger": "0.19.0-alpha.14",
30
+ "@dynamic-labs/rpc-providers": "0.19.0-alpha.14",
31
31
  "@dynamic-labs/sdk-api": "0.0.281",
32
- "@dynamic-labs/utils": "0.19.0-alpha.13",
33
- "@dynamic-labs/wallet-book": "0.19.0-alpha.13",
32
+ "@dynamic-labs/utils": "0.19.0-alpha.14",
33
+ "@dynamic-labs/wallet-book": "0.19.0-alpha.14",
34
34
  "eventemitter3": "5.0.1"
35
35
  }
36
36
  }
package/src/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './lib';
2
2
  export * from './utils';
3
+ export type { WalletConnectorExtension } from './lib/WalletConnectorExtension';
@@ -12,6 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
12
12
  var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
13
13
 
14
14
  /* eslint-disable @typescript-eslint/no-unused-vars */
15
+ var _WalletConnectorBase_registeredExtensions;
15
16
  /* eslint-disable @typescript-eslint/no-empty-interface */
16
17
  const Chains = [
17
18
  'ETH',
@@ -46,6 +47,7 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
46
47
  constructor(props) {
47
48
  super();
48
49
  this.chainRpcProviders = undefined;
50
+ _WalletConnectorBase_registeredExtensions.set(this, []);
49
51
  this.didSetup = false;
50
52
  /**
51
53
  * @default false
@@ -106,6 +108,13 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
106
108
  throw new Error('WalletConnectorBase was not called with super(props) and is missing wallet-book');
107
109
  }
108
110
  }
111
+ extend(extension) {
112
+ if (_tslib.__classPrivateFieldGet(this, _WalletConnectorBase_registeredExtensions, "f").includes(extension.name)) {
113
+ throw new Error(`You can only register a single extension of: ${extension.name}`);
114
+ }
115
+ _tslib.__classPrivateFieldGet(this, _WalletConnectorBase_registeredExtensions, "f").push(extension.name);
116
+ extension.extend(this);
117
+ }
109
118
  /**
110
119
  * Add the event listeners for the wallet and connect
111
120
  * with event emitter.
@@ -189,6 +198,9 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
189
198
  getRpcProvider() {
190
199
  return Promise.resolve(undefined);
191
200
  }
201
+ getEthersRpcProvider() {
202
+ throw new Error('getEthersRpcProvider not implemented for this wallet connector');
203
+ }
192
204
  getSession() {
193
205
  return _tslib.__awaiter(this, void 0, void 0, function* () {
194
206
  return Promise.resolve();
@@ -197,9 +209,15 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
197
209
  getSigner() {
198
210
  return Promise.resolve(undefined);
199
211
  }
212
+ getEthersSigner() {
213
+ throw new Error('getEthersSigner not implemented for this wallet connector');
214
+ }
200
215
  getWeb3Provider() {
201
216
  return undefined;
202
217
  }
218
+ getEthersWeb3Provider() {
219
+ throw new Error('getEthersWeb3Provider not implemented for this wallet connector');
220
+ }
203
221
  /**
204
222
  * Initialize the wallet connector with any async operations
205
223
  *
@@ -289,6 +307,7 @@ class WalletConnectorBase extends EventEmitter__default["default"] {
289
307
  return;
290
308
  }
291
309
  }
310
+ _WalletConnectorBase_registeredExtensions = new WeakMap();
292
311
 
293
312
  exports.Chains = Chains;
294
313
  exports.WalletConnectorBase = WalletConnectorBase;
@@ -3,6 +3,7 @@ import { ChainRpcProviders } from '@dynamic-labs/rpc-providers';
3
3
  import { WalletBookSchema } from '@dynamic-labs/wallet-book';
4
4
  import type { JwtVerifiedCredential } from '@dynamic-labs/sdk-api';
5
5
  import { WalletBookSingleton } from './WalletBookSingleton';
6
+ import { WalletConnectorExtension } from './WalletConnectorExtension';
6
7
  export declare const Chains: readonly ["ETH", "FLOW", "SOL", "EVM", "ALGO", "STARK", "ATOM", "COSMOS"];
7
8
  export type Chain = typeof Chains[number];
8
9
  export declare const socialProviders: readonly ["google", "facebook", "apple", "github", "bitbucket", "gitlab", "linkedin", "twitter", "discord", "twitch", "microsoft"];
@@ -42,6 +43,7 @@ export type WalletConnectorEventTypes = {
42
43
  disconnect: () => void;
43
44
  };
44
45
  export declare abstract class WalletConnectorBase extends EventEmitter<WalletConnectorEventTypes> {
46
+ #private;
45
47
  chainRpcProviders: typeof ChainRpcProviders | undefined;
46
48
  protected constructorProps: any;
47
49
  _walletBookInstance: WalletBookSingleton;
@@ -54,6 +56,7 @@ export declare abstract class WalletConnectorBase extends EventEmitter<WalletCon
54
56
  constructor(props: {
55
57
  walletBook: WalletBookSchema;
56
58
  });
59
+ extend(extension: WalletConnectorExtension): void;
57
60
  didSetup: boolean;
58
61
  /**
59
62
  * Add the event listeners for the wallet and connect
@@ -148,6 +151,13 @@ export declare abstract class WalletConnectorBase extends EventEmitter<WalletCon
148
151
  */
149
152
  getRpcProvider(): Promise<unknown>;
150
153
  getRpcProvider<T>(): Promise<T>;
154
+ /**
155
+ * Get the RPC provider for the wallet
156
+ *
157
+ * @default Promise<undefined>
158
+ */
159
+ getEthersRpcProvider(): Promise<unknown>;
160
+ getEthersRpcProvider<T>(): Promise<T>;
151
161
  /**
152
162
  * Get the session for the wallet
153
163
  * @default Promise<undefined>
@@ -161,6 +171,13 @@ export declare abstract class WalletConnectorBase extends EventEmitter<WalletCon
161
171
  */
162
172
  getSigner(): Promise<unknown>;
163
173
  getSigner<T>(): Promise<T>;
174
+ /**
175
+ * Get the signer for the wallet
176
+ *
177
+ * @default Promise<undefined>
178
+ */
179
+ getEthersSigner(): Promise<unknown>;
180
+ getEthersSigner<T>(): Promise<T>;
164
181
  /**
165
182
  * Get the web3 provider for the wallet
166
183
  *
@@ -168,6 +185,8 @@ export declare abstract class WalletConnectorBase extends EventEmitter<WalletCon
168
185
  */
169
186
  getWeb3Provider(): unknown;
170
187
  getWeb3Provider<T>(): T;
188
+ getEthersWeb3Provider(): Promise<unknown>;
189
+ getEthersWeb3Provider<T>(): Promise<T>;
171
190
  /**
172
191
  * Initialize the wallet connector with any async operations
173
192
  *
@@ -1,9 +1,10 @@
1
- import { __awaiter } from '../../_virtual/_tslib.js';
1
+ import { __classPrivateFieldGet, __awaiter } from '../../_virtual/_tslib.js';
2
2
  import EventEmitter from 'eventemitter3';
3
3
  import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
4
4
  import { WalletBookSingleton } from './WalletBookSingleton.js';
5
5
 
6
6
  /* eslint-disable @typescript-eslint/no-unused-vars */
7
+ var _WalletConnectorBase_registeredExtensions;
7
8
  /* eslint-disable @typescript-eslint/no-empty-interface */
8
9
  const Chains = [
9
10
  'ETH',
@@ -38,6 +39,7 @@ class WalletConnectorBase extends EventEmitter {
38
39
  constructor(props) {
39
40
  super();
40
41
  this.chainRpcProviders = undefined;
42
+ _WalletConnectorBase_registeredExtensions.set(this, []);
41
43
  this.didSetup = false;
42
44
  /**
43
45
  * @default false
@@ -98,6 +100,13 @@ class WalletConnectorBase extends EventEmitter {
98
100
  throw new Error('WalletConnectorBase was not called with super(props) and is missing wallet-book');
99
101
  }
100
102
  }
103
+ extend(extension) {
104
+ if (__classPrivateFieldGet(this, _WalletConnectorBase_registeredExtensions, "f").includes(extension.name)) {
105
+ throw new Error(`You can only register a single extension of: ${extension.name}`);
106
+ }
107
+ __classPrivateFieldGet(this, _WalletConnectorBase_registeredExtensions, "f").push(extension.name);
108
+ extension.extend(this);
109
+ }
101
110
  /**
102
111
  * Add the event listeners for the wallet and connect
103
112
  * with event emitter.
@@ -181,6 +190,9 @@ class WalletConnectorBase extends EventEmitter {
181
190
  getRpcProvider() {
182
191
  return Promise.resolve(undefined);
183
192
  }
193
+ getEthersRpcProvider() {
194
+ throw new Error('getEthersRpcProvider not implemented for this wallet connector');
195
+ }
184
196
  getSession() {
185
197
  return __awaiter(this, void 0, void 0, function* () {
186
198
  return Promise.resolve();
@@ -189,9 +201,15 @@ class WalletConnectorBase extends EventEmitter {
189
201
  getSigner() {
190
202
  return Promise.resolve(undefined);
191
203
  }
204
+ getEthersSigner() {
205
+ throw new Error('getEthersSigner not implemented for this wallet connector');
206
+ }
192
207
  getWeb3Provider() {
193
208
  return undefined;
194
209
  }
210
+ getEthersWeb3Provider() {
211
+ throw new Error('getEthersWeb3Provider not implemented for this wallet connector');
212
+ }
195
213
  /**
196
214
  * Initialize the wallet connector with any async operations
197
215
  *
@@ -281,5 +299,6 @@ class WalletConnectorBase extends EventEmitter {
281
299
  return;
282
300
  }
283
301
  }
302
+ _WalletConnectorBase_registeredExtensions = new WeakMap();
284
303
 
285
304
  export { Chains, WalletConnectorBase, socialProviders };
@@ -0,0 +1,5 @@
1
+ import { WalletConnector } from '.';
2
+ export interface WalletConnectorExtension {
3
+ extend(connector: WalletConnector): void;
4
+ name: string;
5
+ }