@dynamic-labs/multi-wallet 0.17.0-RC.0 → 0.17.0-RC.1

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 (112) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/package.json +3 -3
  3. package/src/index.cjs +2 -2
  4. package/src/index.d.ts +1 -1
  5. package/src/index.js +1 -1
  6. package/src/multi-wallet.cjs +5 -8
  7. package/src/multi-wallet.js +5 -8
  8. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +2 -2
  9. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +2 -2
  10. package/src/utils/message.cjs +1 -1
  11. package/src/utils/message.js +1 -1
  12. package/src/utils/walletConnect.cjs +1 -1
  13. package/src/wallets/algorand/{myalgo.cjs → MyAlgoWalletConnector.cjs} +4 -42
  14. package/src/wallets/algorand/MyAlgoWalletConnector.d.ts +21 -0
  15. package/src/wallets/algorand/{myalgo.js → MyAlgoWalletConnector.js} +4 -42
  16. package/src/wallets/clients/coinbase/coinbase.cjs +2 -6
  17. package/src/wallets/clients/coinbase/coinbase.js +1 -1
  18. package/src/wallets/cosmos/{keplrWalletConnect.cjs → KeplrWalletConnect.cjs} +9 -25
  19. package/src/wallets/cosmos/{keplrWalletConnect.d.ts → KeplrWalletConnect.d.ts} +6 -14
  20. package/src/wallets/cosmos/{keplrWalletConnect.js → KeplrWalletConnect.js} +9 -25
  21. package/src/wallets/cosmos/{keplr.cjs → KeplrWalletConnector.cjs} +5 -17
  22. package/src/wallets/cosmos/{keplr.d.ts → KeplrWalletConnector.d.ts} +5 -13
  23. package/src/wallets/cosmos/{keplr.js → KeplrWalletConnector.js} +5 -17
  24. package/src/wallets/cosmos/getKeplrConnector.cjs +6 -6
  25. package/src/wallets/cosmos/getKeplrConnector.d.ts +3 -3
  26. package/src/wallets/cosmos/getKeplrConnector.js +3 -3
  27. package/src/wallets/cosmos/index.d.ts +1 -1
  28. package/src/wallets/ethereum/BloctoEvm.cjs +2 -31
  29. package/src/wallets/ethereum/BloctoEvm.d.ts +4 -13
  30. package/src/wallets/ethereum/BloctoEvm.js +2 -31
  31. package/src/wallets/ethereum/{ethProvider.cjs → EthWalletConnector.cjs} +38 -18
  32. package/src/wallets/ethereum/{ethProvider.d.ts → EthWalletConnector.d.ts} +4 -4
  33. package/src/wallets/ethereum/{ethProvider.js → EthWalletConnector.js} +38 -18
  34. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +9 -4
  35. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +5 -5
  36. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +9 -4
  37. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +1 -1
  38. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +2 -2
  39. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +1 -1
  40. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +1 -2
  41. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +2 -3
  42. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +1 -2
  43. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -1
  44. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -1
  45. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +6 -13
  46. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +3 -10
  47. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +6 -13
  48. package/src/wallets/ethereum/coinbase.cjs +2 -18
  49. package/src/wallets/ethereum/coinbase.d.ts +3 -8
  50. package/src/wallets/ethereum/coinbase.js +2 -18
  51. package/src/wallets/ethereum/ethProviderHelper.cjs +16 -9
  52. package/src/wallets/ethereum/ethProviderHelper.js +16 -9
  53. package/src/wallets/ethereum/fortmatic.cjs +2 -25
  54. package/src/wallets/ethereum/fortmatic.d.ts +3 -11
  55. package/src/wallets/ethereum/fortmatic.js +2 -25
  56. package/src/wallets/ethereum/meta-mask.cjs +2 -9
  57. package/src/wallets/ethereum/meta-mask.d.ts +3 -7
  58. package/src/wallets/ethereum/meta-mask.js +2 -9
  59. package/src/wallets/flow/{flow-provider.cjs → FlowWalletConnector.cjs} +6 -33
  60. package/src/wallets/flow/{flow-provider.d.ts → FlowWalletConnector.d.ts} +4 -11
  61. package/src/wallets/flow/{flow-provider.js → FlowWalletConnector.js} +6 -33
  62. package/src/wallets/flow/blocto.cjs +2 -10
  63. package/src/wallets/flow/blocto.d.ts +2 -8
  64. package/src/wallets/flow/blocto.js +2 -10
  65. package/src/wallets/flow/dapper.cjs +2 -10
  66. package/src/wallets/flow/dapper.d.ts +2 -8
  67. package/src/wallets/flow/dapper.js +2 -10
  68. package/src/wallets/flow/lilico.cjs +2 -11
  69. package/src/wallets/flow/lilico.d.ts +2 -9
  70. package/src/wallets/flow/lilico.js +2 -11
  71. package/src/wallets/getMobileOrInjectedWallet.cjs +1 -1
  72. package/src/wallets/getMobileOrInjectedWallet.d.ts +1 -3
  73. package/src/wallets/getWalletConnectConnector.cjs +3 -2
  74. package/src/wallets/getWalletConnectConnector.d.ts +2 -1
  75. package/src/wallets/getWalletConnectConnector.js +2 -1
  76. package/src/wallets/solana/CoinbaseSolana.cjs +2 -25
  77. package/src/wallets/solana/CoinbaseSolana.d.ts +3 -12
  78. package/src/wallets/solana/CoinbaseSolana.js +2 -25
  79. package/src/wallets/solana/glow.cjs +2 -25
  80. package/src/wallets/solana/glow.d.ts +3 -12
  81. package/src/wallets/solana/glow.js +2 -25
  82. package/src/wallets/solana/phantom.cjs +2 -25
  83. package/src/wallets/solana/phantom.d.ts +3 -12
  84. package/src/wallets/solana/phantom.js +2 -25
  85. package/src/wallets/solana/slope.cjs +2 -31
  86. package/src/wallets/solana/slope.d.ts +2 -14
  87. package/src/wallets/solana/slope.js +2 -31
  88. package/src/wallets/solana/{solProvider.cjs → solWalletConnector.cjs} +6 -11
  89. package/src/wallets/solana/{solProvider.d.ts → solWalletConnector.d.ts} +4 -4
  90. package/src/wallets/solana/{solProvider.js → solWalletConnector.js} +6 -11
  91. package/src/wallets/solana/solflare.cjs +2 -31
  92. package/src/wallets/solana/solflare.d.ts +2 -14
  93. package/src/wallets/solana/solflare.js +2 -31
  94. package/src/wallets/starknet/argentx.cjs +2 -2
  95. package/src/wallets/starknet/argentx.d.ts +1 -1
  96. package/src/wallets/starknet/argentx.js +2 -2
  97. package/src/wallets/starknet/braavos.cjs +2 -2
  98. package/src/wallets/starknet/braavos.d.ts +1 -1
  99. package/src/wallets/starknet/braavos.js +2 -2
  100. package/src/wallets/starknet/{starknetProvider.cjs → starknetWalletConnector.cjs} +4 -34
  101. package/src/wallets/starknet/{starknetProvider.d.ts → starknetWalletConnector.d.ts} +3 -14
  102. package/src/wallets/starknet/{starknetProvider.js → starknetWalletConnector.js} +4 -34
  103. package/src/wallets/walletConnect/walletConnect.cjs +2 -19
  104. package/src/wallets/walletConnect/walletConnect.d.ts +3 -8
  105. package/src/wallets/walletConnect/walletConnect.js +2 -19
  106. package/src/wallets/walletConnect/walletConnectV2.cjs +69 -83
  107. package/src/wallets/walletConnect/walletConnectV2.d.ts +10 -12
  108. package/src/wallets/walletConnect/walletConnectV2.js +69 -80
  109. package/src/wallets/algorand/myalgo.d.ts +0 -36
  110. package/src/wallets/initializeWalletProviders.cjs +0 -14
  111. package/src/wallets/initializeWalletProviders.d.ts +0 -6
  112. package/src/wallets/initializeWalletProviders.js +0 -10
@@ -1,19 +1,19 @@
1
1
  import { __awaiter } from 'tslib';
2
+ import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
2
3
  import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
3
4
  import { initClient, fetchWalletConnectCosmosPublicAddress, killWalletConnectSession, getDeepLink, setupWalletConnectEventListeners, teardownWalletConnectEventListeners } from '../clients/walletConnect/walletConnect.js';
4
5
  import { isMobile, isIOS } from '../../utils/isMobile.js';
5
6
  import { logger } from '../../utils/logger.js';
6
- import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
7
7
  import { KeplrWalletConnectV1 } from './wcClient.js';
8
8
 
9
9
  const DYNAMIC_KEPLR_NETWORK_ID = 'dynamic_keplr_wc_network_id';
10
- class KeplrWalletConnect {
10
+ class KeplrWalletConnect extends WalletConnectorBase {
11
11
  constructor({ evmNetworks }) {
12
12
  var _a;
13
- this.canConnectViaSocial = false;
13
+ super();
14
14
  this.name = 'Keplr';
15
15
  this.isWalletConnect = true;
16
- this.switchNetworkOnlyFromWallet = false;
16
+ this.canConnectViaQrCode = true;
17
17
  this.clientOptions = {
18
18
  signingMethods: [
19
19
  'keplr_enable_wallet_connect_v1',
@@ -27,8 +27,6 @@ class KeplrWalletConnect {
27
27
  };
28
28
  this.supportedChains = ['COSMOS'];
29
29
  this.connectedChain = 'COSMOS';
30
- this.canConnectViaCustodialService = false;
31
- this.canConnectViaQrCode = true;
32
30
  this.evmNetworks = evmNetworks;
33
31
  const persistedNetworkId = localStorage.getItem(DYNAMIC_KEPLR_NETWORK_ID);
34
32
  if (persistedNetworkId) {
@@ -38,9 +36,6 @@ class KeplrWalletConnect {
38
36
  this.selectedNetworkId = ((_a = evmNetworks[0]) === null || _a === void 0 ? void 0 : _a.chainId) || 401;
39
37
  }
40
38
  }
41
- get key() {
42
- return normalizeWalletName(this.name);
43
- }
44
39
  get evmNetwork() {
45
40
  var _a;
46
41
  return (_a = this.evmNetworks) === null || _a === void 0 ? void 0 : _a.find((network) => network.chainId === this.selectedNetworkId);
@@ -64,8 +59,8 @@ class KeplrWalletConnect {
64
59
  return this.chainIdMap[this.selectedNetwork.chainId];
65
60
  }
66
61
  getProvider() {
67
- if (this.client && !this._keplrInstance) {
68
- this._keplrInstance = new KeplrWalletConnectV1(this.client);
62
+ if (!this._keplrInstance) {
63
+ this._keplrInstance = new KeplrWalletConnectV1(this.getClient());
69
64
  }
70
65
  return this._keplrInstance;
71
66
  }
@@ -73,13 +68,13 @@ class KeplrWalletConnect {
73
68
  if (this.client) {
74
69
  return this.client;
75
70
  }
76
- this.client = initClient(normalizeWalletName(this.name), this.clientOptions);
71
+ this.client = initClient(this.key, this.clientOptions);
77
72
  return this.client;
78
73
  }
79
74
  getNetwork() {
80
75
  return Promise.resolve(this.selectedNetworkId);
81
76
  }
82
- switchNetwork({ networkChainId }) {
77
+ switchNetwork({ networkChainId, }) {
83
78
  return __awaiter(this, void 0, void 0, function* () {
84
79
  if (!networkChainId)
85
80
  return;
@@ -146,11 +141,6 @@ class KeplrWalletConnect {
146
141
  }
147
142
  });
148
143
  }
149
- connect() {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- yield this.fetchPublicAddress();
152
- });
153
- }
154
144
  endSession() {
155
145
  return __awaiter(this, void 0, void 0, function* () {
156
146
  killWalletConnectSession(this.getClient());
@@ -171,7 +161,7 @@ class KeplrWalletConnect {
171
161
  return undefined;
172
162
  }
173
163
  return getDeepLink(this.getClient().uri, wallet, {
174
- removeWCUri: isIOS() && normalizeWalletName(this.name) === 'cryptocom',
164
+ removeWCUri: isIOS() && this.key === 'cryptocom',
175
165
  });
176
166
  }
177
167
  getRpcProvider() {
@@ -186,12 +176,6 @@ class KeplrWalletConnect {
186
176
  getWeb3Provider() {
187
177
  return this.getProvider();
188
178
  }
189
- isInstalledOnBrowser() {
190
- return false;
191
- }
192
- proveOwnership(messageToSign) {
193
- return this.signMessage(messageToSign);
194
- }
195
179
  setupEventListeners(listeners) {
196
180
  return setupWalletConnectEventListeners({
197
181
  onAccountChange: listeners.onAccountChange,
@@ -3,20 +3,14 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
6
7
  var logger = require('../../utils/logger.cjs');
7
- var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
8
8
 
9
9
  const DYNAMIC_KEPLR_NETWORK_ID = 'dynamic_keplr_network_id';
10
- class Keplr {
11
- get key() {
12
- return normalizeWalletName.normalizeWalletName(this.name);
13
- }
10
+ class KeplrWalletConnector extends walletConnectorCore.WalletConnectorBase {
14
11
  constructor({ evmNetworks }) {
15
- this.canConnectViaSocial = false;
16
- this.canConnectViaCustodialService = false;
17
- this.canConnectViaQrCode = false;
12
+ super();
18
13
  this.switchNetworkOnlyFromWallet = true;
19
- this.isWalletConnect = false;
20
14
  this.selectedNetworkId = 401;
21
15
  this.name = 'Keplr';
22
16
  this.connectedChain = 'COSMOS';
@@ -33,9 +27,6 @@ class Keplr {
33
27
  this.selectedNetworkId = Number(persistedNetworkId);
34
28
  }
35
29
  }
36
- getRpcProvider() {
37
- throw new Error('Method not implemented.');
38
- }
39
30
  getWeb3Provider() {
40
31
  return this.keplr;
41
32
  }
@@ -130,9 +121,6 @@ class Keplr {
130
121
  // @ts-ignore window.keplr is provided by extension
131
122
  return typeof window.keplr !== 'undefined';
132
123
  }
133
- proveOwnership(messageToSign) {
134
- return this.signMessage(messageToSign);
135
- }
136
124
  _handleAccountChange() {
137
125
  var _a, _b;
138
126
  return tslib.__awaiter(this, void 0, void 0, function* () {
@@ -192,7 +180,7 @@ class Keplr {
192
180
  }
193
181
  });
194
182
  }
195
- switchNetwork({ networkChainId }) {
183
+ switchNetwork({ networkChainId, }) {
196
184
  return tslib.__awaiter(this, void 0, void 0, function* () {
197
185
  if (!networkChainId)
198
186
  return;
@@ -202,4 +190,4 @@ class Keplr {
202
190
  }
203
191
  }
204
192
 
205
- exports.Keplr = Keplr;
193
+ exports.KeplrWalletConnector = KeplrWalletConnector;
@@ -1,6 +1,6 @@
1
1
  import { Keplr as KeplrWallet } from '@keplr-wallet/types';
2
- import { Chain, WalletConnector, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
3
- import { SwitchNetworkOps } from '../ethereum/ethProvider';
2
+ import { Chain, WalletConnectorBase, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
3
+ import { SwitchNetworkOps } from '../ethereum/EthWalletConnector';
4
4
  import { EvmNetwork } from '../ethereum/evm-network';
5
5
  export interface IFetchBalanceResponse {
6
6
  balances: IFetchBalanceBalance[];
@@ -14,24 +14,17 @@ export interface IFetchBalancePagination {
14
14
  next_key: any;
15
15
  total: string;
16
16
  }
17
- export declare class Keplr implements WalletConnector {
17
+ export declare class KeplrWalletConnector extends WalletConnectorBase {
18
18
  evmNetworks: EvmNetwork[];
19
- canConnectViaSocial: boolean;
20
- canConnectViaCustodialService: boolean;
21
- canConnectViaQrCode: boolean;
22
19
  switchNetworkOnlyFromWallet: boolean;
23
- isWalletConnect: boolean;
24
20
  selectedNetworkId: number;
25
21
  name: string;
26
22
  connectedChain: Chain;
27
23
  supportedChains: Chain[];
28
- get key(): string;
29
24
  chainIdMap: Record<number, string>;
30
25
  constructor({ evmNetworks }: {
31
26
  evmNetworks: EvmNetwork[];
32
27
  });
33
- providerResources: string[] | undefined;
34
- getRpcProvider(): Promise<unknown>;
35
28
  getWeb3Provider(): KeplrWallet;
36
29
  getDeepLink(): string | undefined;
37
30
  get selectedNetwork(): EvmNetwork | undefined;
@@ -42,7 +35,7 @@ export declare class Keplr implements WalletConnector {
42
35
  get symbol(): string | undefined;
43
36
  protected getAccount(): Promise<import("@keplr-wallet/types").AccountData>;
44
37
  get keplr(): KeplrWallet;
45
- endSession?(): Promise<void>;
38
+ endSession(): Promise<void>;
46
39
  connect(): Promise<void>;
47
40
  fetchPublicAddress(): Promise<string>;
48
41
  getBalance(): Promise<string | undefined>;
@@ -50,7 +43,6 @@ export declare class Keplr implements WalletConnector {
50
43
  getNetwork(): Promise<number>;
51
44
  getSigner(): Promise<import("@keplr-wallet/types").OfflineAminoSigner & import("@keplr-wallet/types").OfflineDirectSigner>;
52
45
  isInstalledOnBrowser(): boolean;
53
- proveOwnership(messageToSign: string): Promise<string | undefined>;
54
46
  protected _listeners?: WalletEventListeners;
55
47
  _handleAccountChange(): Promise<void>;
56
48
  setupEventListeners(listeners: WalletEventListeners): void;
@@ -74,5 +66,5 @@ export declare class Keplr implements WalletConnector {
74
66
  signMessage(messageToSign: string): Promise<string | undefined>;
75
67
  supportsNetworkSwitching(): boolean;
76
68
  fetchBalance(address: string): Promise<string>;
77
- switchNetwork({ networkChainId }: SwitchNetworkOps): Promise<void>;
69
+ switchNetwork({ networkChainId, }: SwitchNetworkOps): Promise<void>;
78
70
  }
@@ -1,18 +1,12 @@
1
1
  import { __awaiter } from 'tslib';
2
+ import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
2
3
  import { logger } from '../../utils/logger.js';
3
- import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
4
4
 
5
5
  const DYNAMIC_KEPLR_NETWORK_ID = 'dynamic_keplr_network_id';
6
- class Keplr {
7
- get key() {
8
- return normalizeWalletName(this.name);
9
- }
6
+ class KeplrWalletConnector extends WalletConnectorBase {
10
7
  constructor({ evmNetworks }) {
11
- this.canConnectViaSocial = false;
12
- this.canConnectViaCustodialService = false;
13
- this.canConnectViaQrCode = false;
8
+ super();
14
9
  this.switchNetworkOnlyFromWallet = true;
15
- this.isWalletConnect = false;
16
10
  this.selectedNetworkId = 401;
17
11
  this.name = 'Keplr';
18
12
  this.connectedChain = 'COSMOS';
@@ -29,9 +23,6 @@ class Keplr {
29
23
  this.selectedNetworkId = Number(persistedNetworkId);
30
24
  }
31
25
  }
32
- getRpcProvider() {
33
- throw new Error('Method not implemented.');
34
- }
35
26
  getWeb3Provider() {
36
27
  return this.keplr;
37
28
  }
@@ -126,9 +117,6 @@ class Keplr {
126
117
  // @ts-ignore window.keplr is provided by extension
127
118
  return typeof window.keplr !== 'undefined';
128
119
  }
129
- proveOwnership(messageToSign) {
130
- return this.signMessage(messageToSign);
131
- }
132
120
  _handleAccountChange() {
133
121
  var _a, _b;
134
122
  return __awaiter(this, void 0, void 0, function* () {
@@ -188,7 +176,7 @@ class Keplr {
188
176
  }
189
177
  });
190
178
  }
191
- switchNetwork({ networkChainId }) {
179
+ switchNetwork({ networkChainId, }) {
192
180
  return __awaiter(this, void 0, void 0, function* () {
193
181
  if (!networkChainId)
194
182
  return;
@@ -198,4 +186,4 @@ class Keplr {
198
186
  }
199
187
  }
200
188
 
201
- export { Keplr };
189
+ export { KeplrWalletConnector };
@@ -2,16 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var keplr = require('./keplr.cjs');
6
- var keplrWalletConnect = require('./keplrWalletConnect.cjs');
5
+ var KeplrWalletConnector = require('./KeplrWalletConnector.cjs');
6
+ var KeplrWalletConnect = require('./KeplrWalletConnect.cjs');
7
7
 
8
8
  const getKeplerConnector = ({ evmNetworks, }) => {
9
- const keplr$1 = new keplr.Keplr({ evmNetworks });
10
- if (keplr$1.isInstalledOnBrowser()) {
11
- return keplr$1;
9
+ const keplr = new KeplrWalletConnector.KeplrWalletConnector({ evmNetworks });
10
+ if (keplr.isInstalledOnBrowser()) {
11
+ return keplr;
12
12
  }
13
13
  else {
14
- return new keplrWalletConnect({ evmNetworks });
14
+ return new KeplrWalletConnect({ evmNetworks });
15
15
  }
16
16
  };
17
17
 
@@ -1,6 +1,6 @@
1
1
  import { EvmNetwork } from '../ethereum/evm-network';
2
- import { Keplr } from './keplr';
3
- import KeplrWalletConnect from './keplrWalletConnect';
2
+ import { KeplrWalletConnector } from './KeplrWalletConnector';
3
+ import KeplrWalletConnect from './KeplrWalletConnect';
4
4
  export declare const getKeplerConnector: ({ evmNetworks, }: {
5
5
  evmNetworks: EvmNetwork[];
6
- }) => Keplr | KeplrWalletConnect;
6
+ }) => KeplrWalletConnector | KeplrWalletConnect;
@@ -1,8 +1,8 @@
1
- import { Keplr } from './keplr.js';
2
- import KeplrWalletConnect from './keplrWalletConnect.js';
1
+ import { KeplrWalletConnector } from './KeplrWalletConnector.js';
2
+ import KeplrWalletConnect from './KeplrWalletConnect.js';
3
3
 
4
4
  const getKeplerConnector = ({ evmNetworks, }) => {
5
- const keplr = new Keplr({ evmNetworks });
5
+ const keplr = new KeplrWalletConnector({ evmNetworks });
6
6
  if (keplr.isInstalledOnBrowser()) {
7
7
  return keplr;
8
8
  }
@@ -1 +1 @@
1
- export { Keplr } from './keplr';
1
+ export { KeplrWalletConnector } from './KeplrWalletConnector';
@@ -3,16 +3,15 @@
3
3
  var tslib = require('tslib');
4
4
  var BloctoSDK = require('@blocto/sdk');
5
5
  var ethers = require('ethers');
6
- var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
7
6
  var logger = require('../../utils/logger.cjs');
8
- var ethProvider = require('./ethProvider.cjs');
7
+ var EthWalletConnector = require('./EthWalletConnector.cjs');
9
8
  var ethProviderHelper = require('./ethProviderHelper.cjs');
10
9
 
11
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
11
 
13
12
  var BloctoSDK__default = /*#__PURE__*/_interopDefaultLegacy(BloctoSDK);
14
13
 
15
- class BloctoEvm extends ethProvider.EthProvider {
14
+ class BloctoEvm extends EthWalletConnector.EthWalletConnector {
16
15
  constructor({ evmNetworks }) {
17
16
  var _a, _b;
18
17
  // Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
@@ -21,9 +20,7 @@ class BloctoEvm extends ethProvider.EthProvider {
21
20
  super({ evmNetworks: bloctoSupportedNetworks });
22
21
  this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
23
22
  this.name = 'bloctoevm';
24
- this.canConnectViaQrCode = false;
25
23
  this.canConnectViaCustodialService = true;
26
- this.isWalletConnect = false;
27
24
  this.connectedChain = 'EVM';
28
25
  this.supportedChains = ['EVM', 'ETH'];
29
26
  this.ethProviderHelper = new ethProviderHelper.EthProviderHelper();
@@ -33,9 +30,6 @@ class BloctoEvm extends ethProvider.EthProvider {
33
30
  ((_a = bloctoSupportedNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
34
31
  ((_b = bloctoSupportedNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
35
32
  }
36
- get key() {
37
- return normalizeWalletName.normalizeWalletName(this.name);
38
- }
39
33
  getClient() {
40
34
  if (!this.client) {
41
35
  const network = this.evmNetworks.find((n) => n.chainId === this.chainId);
@@ -87,17 +81,6 @@ class BloctoEvm extends ethProvider.EthProvider {
87
81
  }
88
82
  });
89
83
  }
90
- connect() {
91
- return tslib.__awaiter(this, void 0, void 0, function* () {
92
- yield this.fetchPublicAddress();
93
- });
94
- }
95
- isInstalledOnBrowser() {
96
- return false;
97
- }
98
- proveOwnership(messageToSign) {
99
- return this.signMessage(messageToSign);
100
- }
101
84
  signMessage(messageToSign) {
102
85
  return tslib.__awaiter(this, void 0, void 0, function* () {
103
86
  try {
@@ -123,18 +106,6 @@ class BloctoEvm extends ethProvider.EthProvider {
123
106
  }
124
107
  });
125
108
  }
126
- // *********************
127
- // Unimplemented methods
128
- // *********************
129
- switchNetwork() {
130
- return Promise.resolve();
131
- }
132
- setupEventListeners() {
133
- return;
134
- }
135
- teardownEventListeners() {
136
- return;
137
- }
138
109
  }
139
110
 
140
111
  module.exports = BloctoEvm;
@@ -1,15 +1,13 @@
1
1
  import { ethers } from 'ethers';
2
- import { Chain, WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
+ import { Chain } from '@dynamic-labs/wallet-connector-core';
3
3
  import { EvmNetwork } from './evm-network';
4
- import { EthProvider } from './ethProvider';
4
+ import { EthWalletConnector } from './EthWalletConnector';
5
5
  import { EthProviderHelper } from './ethProviderHelper';
6
- declare class BloctoEvm extends EthProvider implements WalletConnector {
6
+ declare class BloctoEvm extends EthWalletConnector {
7
7
  LOCAL_STORAGE_KEY: string;
8
8
  private client?;
9
9
  name: string;
10
- canConnectViaQrCode: boolean;
11
10
  canConnectViaCustodialService: boolean;
12
- isWalletConnect: boolean;
13
11
  connectedChain: Chain;
14
12
  supportedChains: Chain[];
15
13
  chainId: number;
@@ -18,17 +16,10 @@ declare class BloctoEvm extends EthProvider implements WalletConnector {
18
16
  constructor({ evmNetworks }: {
19
17
  evmNetworks: EvmNetwork[];
20
18
  });
21
- get key(): string;
22
19
  private getClient;
23
20
  getWeb3Provider(): ethers.providers.Web3Provider | undefined;
24
21
  fetchPublicAddress(): Promise<string | undefined>;
25
- connect(): Promise<void>;
26
- isInstalledOnBrowser(): boolean;
27
- proveOwnership(messageToSign: string): Promise<string | undefined>;
28
22
  signMessage(messageToSign: string): Promise<string | undefined>;
29
- endSession?(): Promise<void>;
30
- switchNetwork(): Promise<void>;
31
- setupEventListeners(): void;
32
- teardownEventListeners(): void;
23
+ endSession(): Promise<void>;
33
24
  }
34
25
  export default BloctoEvm;
@@ -1,12 +1,11 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import BloctoSDK from '@blocto/sdk';
3
3
  import { ethers } from 'ethers';
4
- import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
5
4
  import { logger } from '../../utils/logger.js';
6
- import { EthProvider } from './ethProvider.js';
5
+ import { EthWalletConnector } from './EthWalletConnector.js';
7
6
  import { EthProviderHelper } from './ethProviderHelper.js';
8
7
 
9
- class BloctoEvm extends EthProvider {
8
+ class BloctoEvm extends EthWalletConnector {
10
9
  constructor({ evmNetworks }) {
11
10
  var _a, _b;
12
11
  // Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
@@ -15,9 +14,7 @@ class BloctoEvm extends EthProvider {
15
14
  super({ evmNetworks: bloctoSupportedNetworks });
16
15
  this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
17
16
  this.name = 'bloctoevm';
18
- this.canConnectViaQrCode = false;
19
17
  this.canConnectViaCustodialService = true;
20
- this.isWalletConnect = false;
21
18
  this.connectedChain = 'EVM';
22
19
  this.supportedChains = ['EVM', 'ETH'];
23
20
  this.ethProviderHelper = new EthProviderHelper();
@@ -27,9 +24,6 @@ class BloctoEvm extends EthProvider {
27
24
  ((_a = bloctoSupportedNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
28
25
  ((_b = bloctoSupportedNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
29
26
  }
30
- get key() {
31
- return normalizeWalletName(this.name);
32
- }
33
27
  getClient() {
34
28
  if (!this.client) {
35
29
  const network = this.evmNetworks.find((n) => n.chainId === this.chainId);
@@ -81,17 +75,6 @@ class BloctoEvm extends EthProvider {
81
75
  }
82
76
  });
83
77
  }
84
- connect() {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- yield this.fetchPublicAddress();
87
- });
88
- }
89
- isInstalledOnBrowser() {
90
- return false;
91
- }
92
- proveOwnership(messageToSign) {
93
- return this.signMessage(messageToSign);
94
- }
95
78
  signMessage(messageToSign) {
96
79
  return __awaiter(this, void 0, void 0, function* () {
97
80
  try {
@@ -117,18 +100,6 @@ class BloctoEvm extends EthProvider {
117
100
  }
118
101
  });
119
102
  }
120
- // *********************
121
- // Unimplemented methods
122
- // *********************
123
- switchNetwork() {
124
- return Promise.resolve();
125
- }
126
- setupEventListeners() {
127
- return;
128
- }
129
- teardownEventListeners() {
130
- return;
131
- }
132
103
  }
133
104
 
134
105
  export { BloctoEvm as default };
@@ -4,14 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var ethers = require('ethers');
7
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
7
8
  var errors = require('../../errors.cjs');
8
9
  var rpcProviders = require('../../rpcProviders.cjs');
9
10
  var evmNetwork = require('./evm-network.cjs');
10
11
 
11
- class EthProvider {
12
- getDeepLink() {
13
- return undefined;
14
- }
12
+ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
15
13
  getRpcProvider() {
16
14
  var _a, _b;
17
15
  return tslib.__awaiter(this, void 0, void 0, function* () {
@@ -32,19 +30,7 @@ class EthProvider {
32
30
  });
33
31
  }
34
32
  constructor({ evmNetworks }) {
35
- this.canConnectViaSocial = false;
36
- this.getBalance = () => tslib.__awaiter(this, void 0, void 0, function* () {
37
- var _a;
38
- // This is equivalent to getSigner().getAddress() but does not crash
39
- // if the signer is not available
40
- const [address] = yield this.getConnectedAccounts();
41
- if (!address)
42
- return;
43
- const result = yield ((_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getBalance(address));
44
- if (!result)
45
- return;
46
- return ethers.ethers.utils.formatEther(result);
47
- });
33
+ super();
48
34
  this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
49
35
  var _a;
50
36
  [acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
@@ -66,12 +52,46 @@ class EthProvider {
66
52
  return Promise.resolve(network === null || network === void 0 ? void 0 : network.chainId);
67
53
  });
68
54
  }
55
+ getNameService() {
56
+ return tslib.__awaiter(this, void 0, void 0, function* () {
57
+ const [[address], provider] = yield Promise.all([
58
+ this.getConnectedAccounts(),
59
+ this.getRpcProvider(),
60
+ ]);
61
+ if (!address || !provider || !('lookupAddress' in provider)) {
62
+ return;
63
+ }
64
+ const [ensName, ensAvatar] = yield Promise.all([
65
+ provider.lookupAddress(address),
66
+ provider.getAvatar(address),
67
+ ]);
68
+ const ensData = {
69
+ avatar: ensAvatar !== null && ensAvatar !== void 0 ? ensAvatar : undefined,
70
+ name: ensName !== null && ensName !== void 0 ? ensName : undefined,
71
+ };
72
+ return ensData;
73
+ });
74
+ }
69
75
  getSigner() {
70
76
  var _a;
71
77
  return tslib.__awaiter(this, void 0, void 0, function* () {
72
78
  return (_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getSigner();
73
79
  });
74
80
  }
81
+ getBalance() {
82
+ var _a;
83
+ return tslib.__awaiter(this, void 0, void 0, function* () {
84
+ // This is equivalent to getSigner().getAddress() but does not crash
85
+ // if the signer is not available
86
+ const [address] = yield this.getConnectedAccounts();
87
+ if (!address)
88
+ return;
89
+ const result = yield ((_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getBalance(address));
90
+ if (!result)
91
+ return;
92
+ return ethers.ethers.utils.formatEther(result);
93
+ });
94
+ }
75
95
  supportsNetworkSwitching() {
76
96
  return true;
77
97
  }
@@ -168,4 +188,4 @@ class EthProvider {
168
188
  }
169
189
  }
170
190
 
171
- exports.EthProvider = EthProvider;
191
+ exports.EthWalletConnector = EthWalletConnector;
@@ -1,4 +1,5 @@
1
1
  import { ethers } from 'ethers';
2
+ import { NameServiceData, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
2
3
  import { EvmNetwork } from './evm-network';
3
4
  export type SwitchNetworkOps = {
4
5
  networkChainId?: number;
@@ -7,18 +8,17 @@ export type SwitchNetworkOps = {
7
8
  type EvmRpcMap = {
8
9
  [chainId: number]: string;
9
10
  };
10
- export declare abstract class EthProvider {
11
- canConnectViaSocial: boolean;
11
+ export declare abstract class EthWalletConnector extends WalletConnectorBase {
12
12
  evmNetworks: EvmNetwork[];
13
13
  abstract getWeb3Provider(): ethers.providers.Web3Provider | undefined;
14
- getDeepLink(): string | undefined;
15
14
  getRpcProvider(): Promise<ethers.providers.JsonRpcProvider | undefined>;
16
15
  constructor({ evmNetworks }: {
17
16
  evmNetworks: EvmNetwork[];
18
17
  });
19
18
  getNetwork(): Promise<number | undefined>;
19
+ getNameService(): Promise<NameServiceData | undefined>;
20
20
  getSigner(): Promise<ethers.providers.JsonRpcSigner | undefined>;
21
- getBalance: () => Promise<string | undefined>;
21
+ getBalance(): Promise<string | undefined>;
22
22
  supportsNetworkSwitching(): boolean;
23
23
  switchNetwork({ networkName, networkChainId, }: SwitchNetworkOps): Promise<void>;
24
24
  getConnectedAccounts(): Promise<string[]>;