@dynamic-labs/multi-wallet 0.10.38 → 0.10.41
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 +1 -1
- package/src/wallets/clients/walletConnect/walletConnect.d.ts +6 -19
- package/src/wallets/clients/walletConnect/walletConnect.js +20 -52
- package/src/wallets/clients/walletConnect/walletConnect.js.map +1 -1
- package/src/wallets/ethereum/ethProvider.d.ts +8 -1
- package/src/wallets/ethereum/ethProvider.js +8 -3
- package/src/wallets/ethereum/ethProvider.js.map +1 -1
- package/src/wallets/ethereum/ethProviderHelper.js +2 -1
- package/src/wallets/ethereum/ethProviderHelper.js.map +1 -1
- package/src/wallets/ethereum/meta-mask.d.ts +8 -0
- package/src/wallets/ethereum/meta-mask.js +32 -4
- package/src/wallets/ethereum/meta-mask.js.map +1 -1
- package/src/wallets/walletConnect/walletConnect.d.ts +7 -0
- package/src/wallets/walletConnect/walletConnect.js +31 -6
- package/src/wallets/walletConnect/walletConnect.js.map +1 -1
package/package.json
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
|
28
|
-
export declare const
|
|
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.
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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.
|
|
28
|
+
exports.initClient = initClient;
|
|
59
29
|
/**
|
|
60
30
|
* Attach event handlers to WalletConnect events.
|
|
61
31
|
*/
|
|
62
|
-
const setupWalletConnectEventListeners = (opts, client
|
|
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
|
|
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
|
-
|
|
107
|
-
|
|
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
|
-
|
|
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":";;;;;;;;;;;;;;;AAAA,mEAA2C;AAG3C,qEAA6C;AAC7C,sDAAmD;
|
|
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
|
-
|
|
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.
|
|
69
|
+
return this.providerAddNetwork({ network, provider });
|
|
65
70
|
}
|
|
66
71
|
});
|
|
67
72
|
}
|
|
68
|
-
|
|
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":";;;;;;;;;;;;AAAA,mCAAgC;AAEhC,+CAA2D;AAW3D,MAAsB,WAAW;IAI/B,YAAY,EAAE,WAAW,EAAiC;QAQ1D,eAAU,GAAG,GAAS,EAAE;;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,EAAE,CAAA,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,MAAM,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,eAAe,EAAE,0CAAE,UAAU,CAAC,OAAO,CAAC,CAAA,CAAC;YACjE,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,OAAO,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAA,CAAC;QAdA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAEK,SAAS;;;YACb,OAAO,MAAA,IAAI,CAAC,eAAe,EAAE,0CAAE,SAAS,EAAE,CAAC;;KAC5C;IAWK,aAAa,CAAC,EAClB,WAAW,EACX,cAAc,GACG
|
|
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
|
|
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;
|
|
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 =
|
|
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":";;;;;;;;;;;;;;
|
|
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 =
|
|
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 =
|
|
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":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"walletConnect.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/walletConnect/walletConnect.ts"],"names":[],"mappings":"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"}
|