@dynamic-labs/multi-wallet 0.10.37 → 0.10.40

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/multi-wallet",
3
- "version": "0.10.37",
3
+ "version": "0.10.40",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },
@@ -1,28 +1,15 @@
1
1
  import Client from '@walletconnect/client';
2
2
  import { WalletConnectWalletMetadata } from '../../../types';
3
3
  import { FetchPublicAddressOpts, WalletEventListeners } from '../../wallet-connector';
4
- import { InitializeWalletConnectClientOpts } from './types';
5
- /**
6
- * Initialize a new WalletConnectClient. If a WalletConnect session exists in
7
- * local storage, the new WalletConnectClient will be initialized with that
8
- * session. Otherwise, it will be initialized with the supplied bridge.
9
- *
10
- * See https://docs.walletconnect.com/quick-start/dapps/client
11
- */
12
- export declare const initializeWalletConnectClient: (opts?: InitializeWalletConnectClientOpts) => Client;
13
- /**
14
- * Initialize a new WalletConnectClient from an existing session, otherwise undefined.
15
- *
16
- * See https://docs.walletconnect.com/quick-start/dapps/client
17
- */
18
- export declare const initializeWalletConnectClientFromSession: () => Client | undefined;
4
+ export declare const initClient: (name: string) => Client;
19
5
  /**
20
6
  * Attach event handlers to WalletConnect events.
21
7
  */
22
- export declare const setupWalletConnectEventListeners: (opts: WalletEventListeners, client?: Client | undefined) => (() => void);
8
+ export declare const setupWalletConnectEventListeners: (opts: WalletEventListeners, client: Client) => (() => void);
23
9
  /**
24
10
  * Initialize a client from a stored session and terminate the connection.
25
11
  */
26
- export declare const killWalletConnectSession: () => Promise<void>;
27
- export declare const fetchWalletConnectPublicAddress: (metadata: WalletConnectWalletMetadata, opts?: FetchPublicAddressOpts) => Promise<string | undefined>;
28
- export declare const signWalletConnectPersonalMessage: (messageToSign: string, metadata: WalletConnectWalletMetadata) => Promise<string | undefined>;
12
+ export declare const killWalletConnectSession: (client: Client) => Promise<void>;
13
+ export declare const getDeeplink: (uri: string, metadata: WalletConnectWalletMetadata) => string;
14
+ export declare const fetchWalletConnectPublicAddress: (metadata: WalletConnectWalletMetadata, client: Client, opts?: FetchPublicAddressOpts) => Promise<string | undefined>;
15
+ export declare const signWalletConnectPersonalMessage: (messageToSign: string, metadata: WalletConnectWalletMetadata, client: Client) => Promise<string | undefined>;
@@ -12,54 +12,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.signWalletConnectPersonalMessage = exports.fetchWalletConnectPublicAddress = exports.killWalletConnectSession = exports.setupWalletConnectEventListeners = exports.initializeWalletConnectClientFromSession = exports.initializeWalletConnectClient = void 0;
15
+ exports.signWalletConnectPersonalMessage = exports.fetchWalletConnectPublicAddress = exports.getDeeplink = exports.killWalletConnectSession = exports.setupWalletConnectEventListeners = exports.initClient = void 0;
16
16
  const client_1 = __importDefault(require("@walletconnect/client"));
17
17
  const console_1 = __importDefault(require("../../../utils/console"));
18
18
  const isMobile_1 = require("../../../utils/isMobile");
19
- /**
20
- * Singleton instance to reuse across a single execution context
21
- */
22
- let client;
23
- /**
24
- * Initialize a new WalletConnectClient. If a WalletConnect session exists in
25
- * local storage, the new WalletConnectClient will be initialized with that
26
- * session. Otherwise, it will be initialized with the supplied bridge.
27
- *
28
- * See https://docs.walletconnect.com/quick-start/dapps/client
29
- */
30
- const initializeWalletConnectClient = (opts = {}) => {
31
- var _a;
32
- if (client) {
33
- return client;
34
- }
35
- const { bridge = 'https://bridge.walletconnect.org' } = opts;
36
- client = (_a = (0, exports.initializeWalletConnectClientFromSession)()) !== null && _a !== void 0 ? _a : new client_1.default({ bridge });
37
- return client;
38
- };
39
- exports.initializeWalletConnectClient = initializeWalletConnectClient;
40
- /**
41
- * Initialize a new WalletConnectClient from an existing session, otherwise undefined.
42
- *
43
- * See https://docs.walletconnect.com/quick-start/dapps/client
44
- */
45
- const initializeWalletConnectClientFromSession = () => {
46
- if (client) {
47
- return client;
48
- }
49
- // WalletConnect stores this in local storage
50
- const rawSession = localStorage.getItem('walletconnect');
51
- if (!rawSession) {
52
- return undefined;
53
- }
54
- const session = JSON.parse(rawSession);
55
- client = new client_1.default({ session });
56
- return client;
19
+ const isSameAddress_1 = require("../../../utils/isSameAddress");
20
+ const initClient = (name) => {
21
+ const storageId = `walletconnect-${name}`;
22
+ const session = localStorage.getItem(storageId);
23
+ const clientArgs = session
24
+ ? { session: JSON.parse(session), storageId }
25
+ : { bridge: 'https://bridge.walletconnect.org', storageId };
26
+ return new client_1.default(clientArgs);
57
27
  };
58
- exports.initializeWalletConnectClientFromSession = initializeWalletConnectClientFromSession;
28
+ exports.initClient = initClient;
59
29
  /**
60
30
  * Attach event handlers to WalletConnect events.
61
31
  */
62
- const setupWalletConnectEventListeners = (opts, client = (0, exports.initializeWalletConnectClientFromSession)()) => {
32
+ const setupWalletConnectEventListeners = (opts, client) => {
63
33
  if (!client) {
64
34
  return () => {
65
35
  // nothing to teardown
@@ -80,7 +50,7 @@ const setupWalletConnectEventListeners = (opts, client = (0, exports.initializeW
80
50
  var _b, _c;
81
51
  // eslint-disable-next-line prefer-destructuring
82
52
  const { accounts, chainId } = payload.params[0];
83
- const didAccountChange = prevAccount !== accounts[0];
53
+ const didAccountChange = !(0, isSameAddress_1.isSameAddress)(prevAccount || '', accounts[0], 'eip155');
84
54
  const didChainChange = prevChain !== chainId;
85
55
  // eslint-disable-next-line prefer-destructuring
86
56
  prevAccount = accounts[0];
@@ -101,11 +71,10 @@ exports.setupWalletConnectEventListeners = setupWalletConnectEventListeners;
101
71
  /**
102
72
  * Initialize a client from a stored session and terminate the connection.
103
73
  */
104
- const killWalletConnectSession = () => __awaiter(void 0, void 0, void 0, function* () {
74
+ const killWalletConnectSession = (client) => __awaiter(void 0, void 0, void 0, function* () {
105
75
  try {
106
- const walletConnectClient = (0, exports.initializeWalletConnectClientFromSession)();
107
- if (walletConnectClient === null || walletConnectClient === void 0 ? void 0 : walletConnectClient.connected) {
108
- yield walletConnectClient.killSession();
76
+ if (client === null || client === void 0 ? void 0 : client.connected) {
77
+ yield client.killSession();
109
78
  }
110
79
  }
111
80
  catch (e) {
@@ -117,9 +86,9 @@ const getDeeplink = (uri, metadata) => {
117
86
  const origin = metadata.mobile.universal || metadata.mobile.native;
118
87
  return `${origin}/wc?uri=${encodeURIComponent(uri !== null && uri !== void 0 ? uri : '')}`;
119
88
  };
120
- const fetchWalletConnectPublicAddress = (metadata, opts) => __awaiter(void 0, void 0, void 0, function* () {
89
+ exports.getDeeplink = getDeeplink;
90
+ const fetchWalletConnectPublicAddress = (metadata, client, opts) => __awaiter(void 0, void 0, void 0, function* () {
121
91
  var _a;
122
- const client = (0, exports.initializeWalletConnectClient)();
123
92
  if (client.connected) {
124
93
  const [accountPublicAddress] = client.accounts;
125
94
  return accountPublicAddress;
@@ -127,7 +96,7 @@ const fetchWalletConnectPublicAddress = (metadata, opts) => __awaiter(void 0, vo
127
96
  // createSession will trigger the QR code...
128
97
  yield client.createSession();
129
98
  if ((0, isMobile_1.isMobile)()) {
130
- const deepLink = getDeeplink(client.uri, metadata);
99
+ const deepLink = (0, exports.getDeeplink)(client.uri, metadata);
131
100
  window.location.href = deepLink;
132
101
  }
133
102
  else {
@@ -150,14 +119,13 @@ const fetchWalletConnectPublicAddress = (metadata, opts) => __awaiter(void 0, vo
150
119
  });
151
120
  });
152
121
  exports.fetchWalletConnectPublicAddress = fetchWalletConnectPublicAddress;
153
- const signWalletConnectPersonalMessage = (messageToSign, metadata) => __awaiter(void 0, void 0, void 0, function* () {
154
- const client = (0, exports.initializeWalletConnectClientFromSession)();
122
+ const signWalletConnectPersonalMessage = (messageToSign, metadata, client) => __awaiter(void 0, void 0, void 0, function* () {
155
123
  if (!client || !client.connected) {
156
124
  return;
157
125
  }
158
126
  const [accountPublicAddress] = client.accounts;
159
127
  if ((0, isMobile_1.isMobile)()) {
160
- const deepLink = getDeeplink(client.uri, metadata);
128
+ const deepLink = (0, exports.getDeeplink)(client.uri, metadata);
161
129
  window.location.href = deepLink;
162
130
  }
163
131
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"walletConnect.js","sourceRoot":"","sources":["../../../../../../../packages/multi-wallet/src/wallets/clients/walletConnect/walletConnect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walletConnect.js","sourceRoot":"","sources":["../../../../../../../packages/multi-wallet/src/wallets/clients/walletConnect/walletConnect.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,13 @@ export declare abstract class EthProvider {
13
13
  getSigner(): Promise<ethers.providers.JsonRpcSigner | undefined>;
14
14
  getBalance: () => Promise<string | undefined>;
15
15
  switchNetwork({ networkName, networkChainId, }: SwitchNetworkOps): Promise<void>;
16
- private addNetwork;
16
+ protected providerSwitchNetwork({ network, provider, }: {
17
+ network: EvmNetwork;
18
+ provider: ethers.providers.Web3Provider;
19
+ }): Promise<void>;
20
+ protected providerAddNetwork({ network, provider, }: {
21
+ network: EvmNetwork;
22
+ provider: ethers.providers.Web3Provider;
23
+ }): Promise<void>;
17
24
  }
18
25
  export {};
@@ -34,7 +34,6 @@ class EthProvider {
34
34
  });
35
35
  }
36
36
  switchNetwork({ networkName, networkChainId, }) {
37
- var _a;
38
37
  return __awaiter(this, void 0, void 0, function* () {
39
38
  const network = (0, evm_network_1.findEvmNetwork)({
40
39
  chainId: networkChainId,
@@ -48,6 +47,12 @@ class EthProvider {
48
47
  if (!provider) {
49
48
  throw new Error('Provider not found');
50
49
  }
50
+ return this.providerSwitchNetwork({ network, provider });
51
+ });
52
+ }
53
+ providerSwitchNetwork({ network, provider, }) {
54
+ var _a;
55
+ return __awaiter(this, void 0, void 0, function* () {
51
56
  const { chainId } = network;
52
57
  try {
53
58
  return yield provider.send('wallet_switchEthereumChain', [
@@ -61,11 +66,11 @@ class EthProvider {
61
66
  (typeof error === 'string' && error.includes('rejected'))) {
62
67
  throw new Error("User rejected the wallet's request to switch network");
63
68
  }
64
- return this.addNetwork({ network, provider });
69
+ return this.providerAddNetwork({ network, provider });
65
70
  }
66
71
  });
67
72
  }
68
- addNetwork({ network, provider, }) {
73
+ providerAddNetwork({ network, provider, }) {
69
74
  var _a;
70
75
  return __awaiter(this, void 0, void 0, function* () {
71
76
  const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, chainName } = network;
@@ -1 +1 @@
1
- {"version":3,"file":"ethProvider.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/ethProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ethProvider.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/ethProvider.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ exports.EthProviderHelper = exports.ProviderFlag = void 0;
16
16
  const ethers_1 = require("ethers");
17
17
  const console_1 = __importDefault(require("../../utils/console"));
18
18
  const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
19
+ const isSameAddress_1 = require("../../utils/isSameAddress");
19
20
  var ProviderFlag;
20
21
  (function (ProviderFlag) {
21
22
  ProviderFlag["isCoinbaseWallet"] = "isCoinbaseWallet";
@@ -107,7 +108,7 @@ class EthProviderHelper {
107
108
  yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
108
109
  return;
109
110
  }
110
- if (account !== accounts[0]) {
111
+ if (!(0, isSameAddress_1.isSameAddress)(account || '', accounts[0], 'eip155')) {
111
112
  yield ((_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, accounts));
112
113
  }
113
114
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ethProviderHelper.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/ethProviderHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mCAAuC;AAGvC,kEAA0C;AAC1C,yEAAsE;AAStE,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qDAAqC,CAAA;IACrC,yCAAyB,CAAA;AAC3B,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAID,MAAa,iBAAiB;IAA9B;QACE,qBAAgB,GAAa,GAAG,EAAE,CAChC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAExD,qBAAgB,GAAa,GAAG,EAAE,CAChC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAE9D,cAAS,GAEL;YACF,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;SAChC,CAAC;IA0HJ,CAAC;IAxHC,uBAAuB,CAAC,YAA0B;QAChD,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,CACtC,CAAC,QAAQ,EAAE,EAAE,CAAE,QAAsB,aAAtB,QAAQ,uBAAR,QAAQ,CAAiB,YAAY,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,qBAAqB,CAAC,QAAoB;QACxC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QAEvC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACnC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClC;aAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;YACzC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACtC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,UAAkB;;QAC7B,MAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,EAAC,IAAA,yCAAmB,EAAC,UAAU,CAAC,CAAC,kDAAI,CAAC;QAErE,OAAO,QAAQ,KAAK,SAAS;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEK,0BAA0B,CAAC,IAAY;;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACnC;YAED,IAAI;gBACF,MAAM,CAAC,gBAAgB,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;gBAC1E,MAAM,aAAa,GAAG,cAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACzD,iBAAO,CAAC,GAAG,CAAC,GAAG,IAAI,oBAAoB,aAAa,EAAE,CAAC,CAAC;gBACxD,OAAO,aAAa,CAAC;aACtB;YAAC,OAAO,GAAG,EAAE;gBACZ,iBAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACnC;QACH,CAAC;KAAA;IAEK,mBAAmB,CACvB,aAAqB,EACrB,IAAY;;YAEZ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,CAAC,aAAa,EAAE;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACnC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACnC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC9D,iBAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YAC7C,OAAO,aAAa,CAAC;QACvB,CAAC;KAAA;IAEK,oBAAoB,CACxB,SAA+B,EAC/B,YAA4C;;YAE5C,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO,GAAG,EAAE;oBACV,sBAAsB;gBACxB,CAAC,CAAC;aACH;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAe,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAErE,MAAM,mBAAmB,GAAG,CAAO,QAAkB,EAAE,EAAE;;gBACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,MAAM,CAAA,MAAA,SAAS,CAAC,YAAY,yDAAI,CAAA,CAAC;oBACjC,OAAO;iBACR;gBAED,IAAI,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAC3B,MAAM,CAAA,MAAA,SAAS,CAAC,eAAe,0DAAG,QAAQ,CAAC,CAAA,CAAC;iBAC7C;YACH,CAAC,CAAA,CAAC;YAEF,MAAM,iBAAiB,GAAG,CAAO,OAAwB,EAAE,EAAE;;gBAC3D,MAAM,CAAA,MAAA,SAAS,CAAC,aAAa,0DAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC;YACnD,CAAC,CAAA,CAAC;YAEF,MAAM,gBAAgB,GAAG,CAAO,KAAwB,EAAE,EAAE;;gBAC1D,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,IAAI,EAAE;oBACxB,OAAO;iBACR;gBACD,MAAM,CAAA,MAAA,SAAS,CAAC,YAAY,yDAAI,CAAA,CAAC;YACnC,CAAC,CAAA,CAAC;YAEF,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;YACpD,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;YAC/C,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAE5C,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;gBAChE,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBAC3D,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC1D,CAAC,CAAC;QACJ,CAAC;KAAA;CACF;AAtID,8CAsIC"}
1
+ {"version":3,"file":"ethProviderHelper.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/ethProviderHelper.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import Client from '@walletconnect/client';
1
2
  import { ethers } from 'ethers';
2
3
  import { Chain, FetchPublicAddressOpts, WalletConnector, WalletEventListeners } from '../wallet-connector';
3
4
  import { EthProviderHelper } from './ethProviderHelper';
4
5
  import { EthProvider } from './ethProvider';
6
+ import { EvmNetwork } from './evm-network';
5
7
  declare class MetaMask extends EthProvider implements WalletConnector {
6
8
  name: string;
7
9
  supportedChains: Chain[];
@@ -10,6 +12,8 @@ declare class MetaMask extends EthProvider implements WalletConnector {
10
12
  canConnectViaCustodialService: boolean;
11
13
  ethProviderHelper: EthProviderHelper;
12
14
  publicAddress: string | undefined;
15
+ client?: Client;
16
+ getClient(): Client;
13
17
  setupEventListeners(listeners: WalletEventListeners): Promise<() => void>;
14
18
  getWeb3Provider(): ethers.providers.Web3Provider | undefined;
15
19
  isInstalledOnBrowser(): boolean;
@@ -18,5 +22,9 @@ declare class MetaMask extends EthProvider implements WalletConnector {
18
22
  proveOwnership(messageToSign: string): Promise<string | undefined>;
19
23
  endSession(): Promise<void>;
20
24
  supportsNetworkSwitching(): boolean;
25
+ providerSwitchNetwork({ network, provider, }: {
26
+ network: EvmNetwork;
27
+ provider: ethers.providers.Web3Provider;
28
+ }): Promise<void>;
21
29
  }
22
30
  export default MetaMask;
@@ -17,6 +17,8 @@ const ethers_1 = require("ethers");
17
17
  const walletConnect_1 = require("../clients/walletConnect");
18
18
  const walletConnect_2 = require("../../utils/walletConnect");
19
19
  const constants_1 = require("../constants");
20
+ const isMobile_1 = require("../../utils/isMobile");
21
+ const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
20
22
  const ethProviderHelper_1 = require("./ethProviderHelper");
21
23
  const ethProvider_1 = require("./ethProvider");
22
24
  class MetaMask extends ethProvider_1.EthProvider {
@@ -29,6 +31,13 @@ class MetaMask extends ethProvider_1.EthProvider {
29
31
  this.canConnectViaCustodialService = false;
30
32
  this.ethProviderHelper = new ethProviderHelper_1.EthProviderHelper();
31
33
  }
34
+ getClient() {
35
+ if (this.client) {
36
+ return this.client;
37
+ }
38
+ this.client = (0, walletConnect_1.initClient)((0, normalizeWalletName_1.normalizeWalletName)(this.name));
39
+ return this.client;
40
+ }
32
41
  setupEventListeners(listeners) {
33
42
  return this.ethProviderHelper._setupEventListeners(listeners, this.getWeb3Provider());
34
43
  }
@@ -36,7 +45,7 @@ class MetaMask extends ethProvider_1.EthProvider {
36
45
  if (this.isInstalledOnBrowser()) {
37
46
  return this.ethProviderHelper.findProvider(this.name);
38
47
  }
39
- const client = (0, walletConnect_1.initializeWalletConnectClientFromSession)();
48
+ const client = this.getClient();
40
49
  return client
41
50
  ? new ethers_1.ethers.providers.Web3Provider(new ethereum_provider_1.default({
42
51
  connector: client,
@@ -52,7 +61,7 @@ class MetaMask extends ethProvider_1.EthProvider {
52
61
  if (this.isInstalledOnBrowser()) {
53
62
  return this.ethProviderHelper.fetchPublicAddressWithName(this.name);
54
63
  }
55
- const address = yield (0, walletConnect_1.fetchWalletConnectPublicAddress)((0, walletConnect_2.getWalletConnectMetadata)(this.name), opts);
64
+ const address = yield (0, walletConnect_1.fetchWalletConnectPublicAddress)((0, walletConnect_2.getWalletConnectMetadata)(this.name), this.getClient(), opts);
56
65
  return address ? ethers_1.utils.getAddress(address) : undefined;
57
66
  });
58
67
  }
@@ -60,7 +69,7 @@ class MetaMask extends ethProvider_1.EthProvider {
60
69
  return __awaiter(this, void 0, void 0, function* () {
61
70
  return this.isInstalledOnBrowser()
62
71
  ? this.ethProviderHelper.signMessageWithName(messageToSign, this.name)
63
- : (0, walletConnect_1.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_2.getWalletConnectMetadata)(this.name));
72
+ : (0, walletConnect_1.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_2.getWalletConnectMetadata)(this.name), this.getClient());
64
73
  });
65
74
  }
66
75
  proveOwnership(messageToSign) {
@@ -70,12 +79,31 @@ class MetaMask extends ethProvider_1.EthProvider {
70
79
  }
71
80
  endSession() {
72
81
  return __awaiter(this, void 0, void 0, function* () {
73
- (0, walletConnect_1.killWalletConnectSession)();
82
+ (0, walletConnect_1.killWalletConnectSession)(this.getClient());
74
83
  });
75
84
  }
76
85
  supportsNetworkSwitching() {
77
86
  return true;
78
87
  }
88
+ providerSwitchNetwork({ network, provider, }) {
89
+ const _super = Object.create(null, {
90
+ providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
91
+ });
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ if (this.isInstalledOnBrowser()) {
94
+ return _super.providerSwitchNetwork.call(this, { network, provider });
95
+ }
96
+ const client = this.getClient();
97
+ if (!client) {
98
+ throw new Error('Client not found');
99
+ }
100
+ if ((0, isMobile_1.isMobile)()) {
101
+ const deepLink = (0, walletConnect_1.getDeeplink)(client.uri, (0, walletConnect_2.getWalletConnectMetadata)(this.name));
102
+ window.location.href = deepLink;
103
+ }
104
+ return _super.providerSwitchNetwork.call(this, { network, provider });
105
+ });
106
+ }
79
107
  }
80
108
  exports.default = MetaMask;
81
109
  //# sourceMappingURL=meta-mask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-mask.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/meta-mask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yFAAqE;AACrE,mCAAuC;AAEvC,4DAKkC;AAOlC,6DAAqE;AACrE,4CAAwC;AAExC,2DAAwD;AACxD,+CAA4C;AAE5C,MAAM,QAAS,SAAQ,yBAAW;IAAlC;;QACE,SAAI,GAAG,UAAU,CAAC;QAElB,oBAAe,GAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE1C,mBAAc,GAAU,KAAK,CAAC;QAE9B,wBAAmB,GAAG,IAAI,CAAC;QAC3B,kCAA6B,GAAG,KAAK,CAAC;QACtC,sBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;IA+D9C,CAAC;IA5DC,mBAAmB,CAAC,SAA+B;QACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAChD,SAAS,EACT,IAAI,CAAC,eAAe,EAAE,CACvB,CAAC;IACJ,CAAC;IAEQ,eAAe;QACtB,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;YAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvD;QAED,MAAM,MAAM,GAAG,IAAA,wDAAwC,GAAE,CAAC;QAC1D,OAAO,MAAM;YACX,CAAC,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,YAAY,CAC/B,IAAI,2BAAqB,CAAC;gBACxB,SAAS,EAAE,MAAM;gBACjB,QAAQ,EAAR,oBAAQ;aACT,CAAC,CACH;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEK,kBAAkB,CACtB,IAA6B;;YAE7B,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrE;YACD,MAAM,OAAO,GAAG,MAAM,IAAA,+CAA+B,EACnD,IAAA,wCAAwB,EAAC,IAAI,CAAC,IAAI,CAAC,EACnC,IAAI,CACL,CAAC;YACF,OAAO,OAAO,CAAC,CAAC,CAAC,cAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,CAAC;KAAA;IAEK,WAAW,CAAC,aAAqB;;YACrC,OAAO,IAAI,CAAC,oBAAoB,EAAE;gBAChC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC;gBACtE,CAAC,CAAC,IAAA,gDAAgC,EAC9B,aAAa,EACb,IAAA,wCAAwB,EAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;QACR,CAAC;KAAA;IAEK,cAAc,CAAC,aAAqB;;YACxC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,UAAU;;YACd,IAAA,wCAAwB,GAAE,CAAC;QAC7B,CAAC;KAAA;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"meta-mask.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/meta-mask.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import Client from '@walletconnect/client';
1
2
  import { ethers } from 'ethers';
2
3
  import { EthProvider } from '../ethereum/ethProvider';
3
4
  import { EvmNetwork } from '../ethereum/evm-network';
@@ -8,10 +9,12 @@ declare class WalletConnect extends EthProvider implements WalletConnector {
8
9
  name: string;
9
10
  canConnectViaQrCode: boolean;
10
11
  canConnectViaCustodialService: boolean;
12
+ client?: Client;
11
13
  constructor({ walletName, evmNetworks, }: {
12
14
  evmNetworks: EvmNetwork[];
13
15
  walletName: string;
14
16
  });
17
+ getClient(): Client;
15
18
  supportsNetworkSwitching(): boolean;
16
19
  setupEventListeners(listeners: WalletEventListeners): () => void;
17
20
  getWeb3Provider(): ethers.providers.Web3Provider | undefined;
@@ -20,5 +23,9 @@ declare class WalletConnect extends EthProvider implements WalletConnector {
20
23
  signMessage(messageToSign: string): Promise<string | undefined>;
21
24
  proveOwnership(messageToSign: string): Promise<string | undefined>;
22
25
  endSession(): Promise<void>;
26
+ providerSwitchNetwork({ network, provider, }: {
27
+ network: EvmNetwork;
28
+ provider: ethers.providers.Web3Provider;
29
+ }): Promise<void>;
23
30
  }
24
31
  export default WalletConnect;
@@ -18,6 +18,8 @@ const walletConnect_1 = require("../../utils/walletConnect");
18
18
  const constants_1 = require("../constants");
19
19
  const ethProvider_1 = require("../ethereum/ethProvider");
20
20
  const walletConnect_2 = require("../clients/walletConnect");
21
+ const isMobile_1 = require("../../utils/isMobile");
22
+ const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
21
23
  class WalletConnect extends ethProvider_1.EthProvider {
22
24
  constructor({ walletName, evmNetworks, }) {
23
25
  super({ evmNetworks });
@@ -26,12 +28,19 @@ class WalletConnect extends ethProvider_1.EthProvider {
26
28
  this.canConnectViaCustodialService = false;
27
29
  this.name = walletName;
28
30
  }
31
+ getClient() {
32
+ if (this.client) {
33
+ return this.client;
34
+ }
35
+ this.client = (0, walletConnect_2.initClient)((0, normalizeWalletName_1.normalizeWalletName)(this.name));
36
+ return this.client;
37
+ }
29
38
  supportsNetworkSwitching() {
30
39
  if (this.connectedChain === 'EVM') {
31
40
  return true;
32
41
  }
33
42
  else {
34
- const client = (0, walletConnect_2.initializeWalletConnectClientFromSession)();
43
+ const client = this.getClient();
35
44
  return Boolean(client === null || client === void 0 ? void 0 : client.chainId);
36
45
  }
37
46
  }
@@ -40,10 +49,10 @@ class WalletConnect extends ethProvider_1.EthProvider {
40
49
  onAccountChange: listeners.onAccountChange,
41
50
  onChainChange: listeners.onChainChange,
42
51
  onDisconnect: listeners.onDisconnect,
43
- });
52
+ }, this.getClient());
44
53
  }
45
54
  getWeb3Provider() {
46
- const client = (0, walletConnect_2.initializeWalletConnectClientFromSession)();
55
+ const client = this.getClient();
47
56
  return client
48
57
  ? new ethers_1.ethers.providers.Web3Provider(new ethereum_provider_1.default({
49
58
  connector: client,
@@ -56,7 +65,7 @@ class WalletConnect extends ethProvider_1.EthProvider {
56
65
  }
57
66
  fetchPublicAddress(opts) {
58
67
  return __awaiter(this, void 0, void 0, function* () {
59
- return (0, walletConnect_2.fetchWalletConnectPublicAddress)((0, walletConnect_1.getWalletConnectMetadata)(this.name), Object.assign(Object.assign({}, opts), { onConnect: (payload) => {
68
+ return (0, walletConnect_2.fetchWalletConnectPublicAddress)((0, walletConnect_1.getWalletConnectMetadata)(this.name), this.getClient(), Object.assign(Object.assign({}, opts), { onConnect: (payload) => {
60
69
  var _a;
61
70
  (_a = opts === null || opts === void 0 ? void 0 : opts.onConnect) === null || _a === void 0 ? void 0 : _a.call(opts, payload);
62
71
  this.connectedChain = payload.params[0].chainId ? 'EVM' : 'SOL';
@@ -65,7 +74,7 @@ class WalletConnect extends ethProvider_1.EthProvider {
65
74
  }
66
75
  signMessage(messageToSign) {
67
76
  return __awaiter(this, void 0, void 0, function* () {
68
- return (0, walletConnect_2.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_1.getWalletConnectMetadata)(this.name));
77
+ return (0, walletConnect_2.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_1.getWalletConnectMetadata)(this.name), this.getClient());
69
78
  });
70
79
  }
71
80
  proveOwnership(messageToSign) {
@@ -75,7 +84,23 @@ class WalletConnect extends ethProvider_1.EthProvider {
75
84
  }
76
85
  endSession() {
77
86
  return __awaiter(this, void 0, void 0, function* () {
78
- (0, walletConnect_2.killWalletConnectSession)();
87
+ (0, walletConnect_2.killWalletConnectSession)(this.getClient());
88
+ });
89
+ }
90
+ providerSwitchNetwork({ network, provider, }) {
91
+ const _super = Object.create(null, {
92
+ providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
93
+ });
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ const client = this.getClient();
96
+ if (!client) {
97
+ throw new Error('Client not found');
98
+ }
99
+ if ((0, isMobile_1.isMobile)()) {
100
+ const deepLink = (0, walletConnect_2.getDeeplink)(client.uri, (0, walletConnect_1.getWalletConnectMetadata)(this.name));
101
+ window.location.href = deepLink;
102
+ }
103
+ return _super.providerSwitchNetwork.call(this, { network, provider });
79
104
  });
80
105
  }
81
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"walletConnect.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/walletConnect/walletConnect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yFAAqE;AACrE,mCAAgC;AAEhC,6DAAqE;AACrE,4CAAwC;AACxC,yDAAsD;AAEtD,4DAMkC;AAQlC,MAAM,aAAc,SAAQ,yBAAW;IAUrC,YAAY,EACV,UAAU,EACV,WAAW,GAIZ;QACC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAhBzB,oBAAe,GAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAMjD,wBAAmB,GAAG,IAAI,CAAC;QAC3B,kCAA6B,GAAG,KAAK,CAAC;QAUpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;IAED,wBAAwB;QACtB,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;aAAM;YACL,MAAM,MAAM,GAAG,IAAA,wDAAwC,GAAE,CAAC;YAC1D,OAAO,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC;SACjC;IACH,CAAC;IAED,mBAAmB,CAAC,SAA+B;QACjD,OAAO,IAAA,gDAAgC,EAAC;YACtC,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,YAAY,EAAE,SAAS,CAAC,YAAY;SACrC,CAAC,CAAC;IACL,CAAC;IAEQ,eAAe;QACtB,MAAM,MAAM,GAAG,IAAA,wDAAwC,GAAE,CAAC;QAC1D,OAAO,MAAM;YACX,CAAC,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,YAAY,CAC/B,IAAI,2BAAqB,CAAC;gBACxB,SAAS,EAAE,MAAM;gBACjB,QAAQ,EAAR,oBAAQ;aACT,CAAC,CACH;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,oBAAoB;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAEK,kBAAkB,CACtB,IAA6B;;YAE7B,OAAO,IAAA,+CAA+B,EACpC,IAAA,wCAAwB,EAAC,IAAI,CAAC,IAAI,CAAC,kCAE9B,IAAI,KACP,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;;oBACrB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,qDAAG,OAAO,CAAC,CAAC;oBAC3B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClE,CAAC,IAEJ,CAAC;QACJ,CAAC;KAAA;IAEK,WAAW,CAAC,aAAqB;;YACrC,OAAO,IAAA,gDAAgC,EACrC,aAAa,EACb,IAAA,wCAAwB,EAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;QACJ,CAAC;KAAA;IAEK,cAAc,CAAC,aAAqB;;YACxC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,UAAU;;YACd,IAAA,wCAAwB,GAAE,CAAC;QAC7B,CAAC;KAAA;CACF;AAED,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"walletConnect.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/walletConnect/walletConnect.ts"],"names":[],"mappings":"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"}