@dynamic-labs/multi-wallet 0.16.11 → 0.16.12

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,16 @@
1
1
 
2
+ ### [0.16.12](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.11...v0.16.12) (2023-05-05)
3
+
4
+
5
+ ### Features
6
+
7
+ * **DYN-1820:** support allow list in email authorization ([#1916](https://github.com/dynamic-labs/DynamicAuth/issues/1916)) ([#2039](https://github.com/dynamic-labs/DynamicAuth/issues/2039)) ([3aafb9d](https://github.com/dynamic-labs/DynamicAuth/commit/3aafb9d57e4125048f8b972624625b4a109eb9b1)), closes [#2040](https://github.com/dynamic-labs/DynamicAuth/issues/2040)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * **MagicClientNetworkHandler:** save last used network id ([#2046](https://github.com/dynamic-labs/DynamicAuth/issues/2046)) ([bdd9f87](https://github.com/dynamic-labs/DynamicAuth/commit/bdd9f87060905730d76e4aabf7caeee30b310b9e))
13
+
2
14
  ### [0.16.11](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.10...v0.16.11) (2023-05-03)
3
15
 
4
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/multi-wallet",
3
- "version": "0.16.11",
3
+ "version": "0.16.12",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -28,8 +28,8 @@
28
28
  "magic-sdk": "^16.0.1",
29
29
  "@keplr-wallet/provider": "0.11.56",
30
30
  "@keplr-wallet/types": "^0.11.51",
31
- "@dynamic-labs/logger": "0.16.11",
32
- "@dynamic-labs/wallet-connector-core": "0.16.11"
31
+ "@dynamic-labs/logger": "0.16.12",
32
+ "@dynamic-labs/wallet-connector-core": "0.16.12"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@walletconnect/types": "^2.2.1"
package/src/errors.cjs CHANGED
@@ -14,9 +14,10 @@ class EmailVerificationError extends DynamicError {
14
14
  }
15
15
  }
16
16
  class NoAccessError extends DynamicError {
17
- constructor(walletPublicKey) {
17
+ constructor({ walletPublicKey, email, }) {
18
18
  super('User does not have access');
19
19
  this.name = 'NoAccessError';
20
+ this.email = email;
20
21
  this.walletPublicKey = walletPublicKey;
21
22
  }
22
23
  }
package/src/errors.d.ts CHANGED
@@ -7,8 +7,12 @@ export declare class EmailVerificationError extends DynamicError {
7
7
  constructor(code: string);
8
8
  }
9
9
  export declare class NoAccessError extends DynamicError {
10
- walletPublicKey: string | undefined;
11
- constructor(walletPublicKey: string);
10
+ walletPublicKey?: string;
11
+ email?: string;
12
+ constructor({ walletPublicKey, email, }: {
13
+ email?: string;
14
+ walletPublicKey?: string;
15
+ });
12
16
  }
13
17
  export declare class ChainalysisError extends DynamicError {
14
18
  walletPublicKey: string | undefined;
package/src/errors.js CHANGED
@@ -10,9 +10,10 @@ class EmailVerificationError extends DynamicError {
10
10
  }
11
11
  }
12
12
  class NoAccessError extends DynamicError {
13
- constructor(walletPublicKey) {
13
+ constructor({ walletPublicKey, email, }) {
14
14
  super('User does not have access');
15
15
  this.name = 'NoAccessError';
16
+ this.email = email;
16
17
  this.walletPublicKey = walletPublicKey;
17
18
  }
18
19
  }
@@ -36,7 +36,7 @@ var Dawn = require('./wallets/ethereum/injected/Dawn.cjs');
36
36
  var PhantomEvm = require('./wallets/ethereum/injected/PhantomEvm.cjs');
37
37
  require('ethers');
38
38
  require('./utils/logger.cjs');
39
- require('magic-sdk');
39
+ require('./wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs');
40
40
  var EmailOTPMagicWalletConnector = require('./wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs');
41
41
  var isEmailWalletConnector = require('./utils/isEmailWalletConnector/isEmailWalletConnector.cjs');
42
42
  var getKeplrConnector = require('./wallets/cosmos/getKeplrConnector.cjs');
@@ -33,7 +33,7 @@ import Dawn from './wallets/ethereum/injected/Dawn.js';
33
33
  import PhantomEvm from './wallets/ethereum/injected/PhantomEvm.js';
34
34
  import 'ethers';
35
35
  import './utils/logger.js';
36
- import 'magic-sdk';
36
+ import './wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js';
37
37
  import { EmailOTPMagicWalletConnector } from './wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js';
38
38
  import { isEmailWalletConnector } from './utils/isEmailWalletConnector/isEmailWalletConnector.js';
39
39
  import { getKeplerConnector } from './wallets/cosmos/getKeplrConnector.js';
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var magicSdk = require('magic-sdk');
7
+ var logger = require('../../../../utils/logger.cjs');
7
8
 
8
9
  // these are based off of Magic's EthNetworkName type
9
10
  const chainNameToChainIdMap = {
@@ -25,15 +26,21 @@ class MagicClientNetworkHandler {
25
26
  this._config = config;
26
27
  this._apiKey = apiKey;
27
28
  this.evmNetworks = evmNetworks;
28
- this._networkId =
29
- typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
30
- ? chainNameToChainIdMap[config.network]
31
- : (_b = (_a = config === null || config === void 0 ? void 0 : config.network) === null || _a === void 0 ? void 0 : _a.chainId) !== null && _b !== void 0 ? _b : 1;
29
+ if (this.lastUsedNetworkId) {
30
+ this._networkId = this.lastUsedNetworkId;
31
+ }
32
+ else {
33
+ this._networkId =
34
+ typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
35
+ ? chainNameToChainIdMap[config.network]
36
+ : (_b = (_a = config === null || config === void 0 ? void 0 : config.network) === null || _a === void 0 ? void 0 : _a.chainId) !== null && _b !== void 0 ? _b : 1;
37
+ }
32
38
  }
33
39
  selectNetwork(networkChainId) {
34
40
  var _a;
35
41
  return tslib.__awaiter(this, void 0, void 0, function* () {
36
42
  this._networkId = networkChainId;
43
+ this.lastUsedNetworkId = networkChainId;
37
44
  (_a = this.onChainChanged) === null || _a === void 0 ? void 0 : _a.call(this, networkChainId);
38
45
  });
39
46
  }
@@ -91,6 +98,31 @@ class MagicClientNetworkHandler {
91
98
  var _a;
92
99
  return (_a = this.evmNetworks.find((evmNetwork) => evmNetwork.networkId === networkId)) === null || _a === void 0 ? void 0 : _a.chainId;
93
100
  }
94
- }
101
+ get lastUsedNetworkId() {
102
+ const savedNetworkIdText = localStorage.getItem(MagicClientNetworkHandler.lastUsedNetworkIdStorageKey);
103
+ if (!savedNetworkIdText)
104
+ return undefined;
105
+ try {
106
+ const networkId = parseInt(savedNetworkIdText);
107
+ if (isNaN(networkId)) {
108
+ return undefined;
109
+ }
110
+ return networkId;
111
+ }
112
+ catch (err) {
113
+ logger.logger.error(err);
114
+ return undefined;
115
+ }
116
+ }
117
+ set lastUsedNetworkId(networkId) {
118
+ if (networkId === undefined) {
119
+ localStorage.removeItem(MagicClientNetworkHandler.lastUsedNetworkIdStorageKey);
120
+ }
121
+ else {
122
+ localStorage.setItem(MagicClientNetworkHandler.lastUsedNetworkIdStorageKey, networkId.toString());
123
+ }
124
+ }
125
+ }
126
+ MagicClientNetworkHandler.lastUsedNetworkIdStorageKey = 'magic-last-used-network-id';
95
127
 
96
128
  exports.MagicClientNetworkHandler = MagicClientNetworkHandler;
@@ -11,6 +11,7 @@ export declare abstract class MagicClientNetworkHandler {
11
11
  private _networkId;
12
12
  private _config;
13
13
  evmNetworks: EvmNetwork[];
14
+ static lastUsedNetworkIdStorageKey: string;
14
15
  constructor({ apiKey, evmNetworks, config }: MagicClientNetworkHandlerProps);
15
16
  abstract onChainChanged?(networkChainId: number): void;
16
17
  selectNetwork(networkChainId: number): Promise<void>;
@@ -21,4 +22,6 @@ export declare abstract class MagicClientNetworkHandler {
21
22
  private get configNetworkId();
22
23
  private _getRpcUrlByNetworkId;
23
24
  private _getChainIdByNetworkId;
25
+ get lastUsedNetworkId(): number | undefined;
26
+ set lastUsedNetworkId(networkId: number | undefined);
24
27
  }
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { Magic } from 'magic-sdk';
3
+ import { logger } from '../../../../utils/logger.js';
3
4
 
4
5
  // these are based off of Magic's EthNetworkName type
5
6
  const chainNameToChainIdMap = {
@@ -21,15 +22,21 @@ class MagicClientNetworkHandler {
21
22
  this._config = config;
22
23
  this._apiKey = apiKey;
23
24
  this.evmNetworks = evmNetworks;
24
- this._networkId =
25
- typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
26
- ? chainNameToChainIdMap[config.network]
27
- : (_b = (_a = config === null || config === void 0 ? void 0 : config.network) === null || _a === void 0 ? void 0 : _a.chainId) !== null && _b !== void 0 ? _b : 1;
25
+ if (this.lastUsedNetworkId) {
26
+ this._networkId = this.lastUsedNetworkId;
27
+ }
28
+ else {
29
+ this._networkId =
30
+ typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
31
+ ? chainNameToChainIdMap[config.network]
32
+ : (_b = (_a = config === null || config === void 0 ? void 0 : config.network) === null || _a === void 0 ? void 0 : _a.chainId) !== null && _b !== void 0 ? _b : 1;
33
+ }
28
34
  }
29
35
  selectNetwork(networkChainId) {
30
36
  var _a;
31
37
  return __awaiter(this, void 0, void 0, function* () {
32
38
  this._networkId = networkChainId;
39
+ this.lastUsedNetworkId = networkChainId;
33
40
  (_a = this.onChainChanged) === null || _a === void 0 ? void 0 : _a.call(this, networkChainId);
34
41
  });
35
42
  }
@@ -87,6 +94,31 @@ class MagicClientNetworkHandler {
87
94
  var _a;
88
95
  return (_a = this.evmNetworks.find((evmNetwork) => evmNetwork.networkId === networkId)) === null || _a === void 0 ? void 0 : _a.chainId;
89
96
  }
90
- }
97
+ get lastUsedNetworkId() {
98
+ const savedNetworkIdText = localStorage.getItem(MagicClientNetworkHandler.lastUsedNetworkIdStorageKey);
99
+ if (!savedNetworkIdText)
100
+ return undefined;
101
+ try {
102
+ const networkId = parseInt(savedNetworkIdText);
103
+ if (isNaN(networkId)) {
104
+ return undefined;
105
+ }
106
+ return networkId;
107
+ }
108
+ catch (err) {
109
+ logger.error(err);
110
+ return undefined;
111
+ }
112
+ }
113
+ set lastUsedNetworkId(networkId) {
114
+ if (networkId === undefined) {
115
+ localStorage.removeItem(MagicClientNetworkHandler.lastUsedNetworkIdStorageKey);
116
+ }
117
+ else {
118
+ localStorage.setItem(MagicClientNetworkHandler.lastUsedNetworkIdStorageKey, networkId.toString());
119
+ }
120
+ }
121
+ }
122
+ MagicClientNetworkHandler.lastUsedNetworkIdStorageKey = 'magic-last-used-network-id';
91
123
 
92
124
  export { MagicClientNetworkHandler };