@dynamic-labs/multi-wallet 0.10.38 → 0.10.39
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 +5 -19
- package/src/wallets/clients/walletConnect/walletConnect.js +17 -50
- package/src/wallets/clients/walletConnect/walletConnect.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 +3 -0
- package/src/wallets/ethereum/meta-mask.js +12 -4
- package/src/wallets/ethereum/meta-mask.js.map +1 -1
- package/src/wallets/walletConnect/walletConnect.d.ts +3 -0
- package/src/wallets/walletConnect/walletConnect.js +14 -6
- package/src/wallets/walletConnect/walletConnect.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
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 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 fetchWalletConnectPublicAddress: (metadata: WalletConnectWalletMetadata, client: Client, opts?: FetchPublicAddressOpts) => Promise<string | undefined>;
|
|
14
|
+
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.
|
|
15
|
+
exports.signWalletConnectPersonalMessage = exports.fetchWalletConnectPublicAddress = 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,8 @@ 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
|
+
const fetchWalletConnectPublicAddress = (metadata, client, opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
121
90
|
var _a;
|
|
122
|
-
const client = (0, exports.initializeWalletConnectClient)();
|
|
123
91
|
if (client.connected) {
|
|
124
92
|
const [accountPublicAddress] = client.accounts;
|
|
125
93
|
return accountPublicAddress;
|
|
@@ -150,8 +118,7 @@ const fetchWalletConnectPublicAddress = (metadata, opts) => __awaiter(void 0, vo
|
|
|
150
118
|
});
|
|
151
119
|
});
|
|
152
120
|
exports.fetchWalletConnectPublicAddress = fetchWalletConnectPublicAddress;
|
|
153
|
-
const signWalletConnectPersonalMessage = (messageToSign, metadata) => __awaiter(void 0, void 0, void 0, function* () {
|
|
154
|
-
const client = (0, exports.initializeWalletConnectClientFromSession)();
|
|
121
|
+
const signWalletConnectPersonalMessage = (messageToSign, metadata, client) => __awaiter(void 0, void 0, void 0, function* () {
|
|
155
122
|
if (!client || !client.connected) {
|
|
156
123
|
return;
|
|
157
124
|
}
|
|
@@ -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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"}
|
|
@@ -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":";;;;;;;;;;;;;;;AAAA,mCAAuC;AAGvC,kEAA0C;AAC1C,yEAAsE;AAEtE,6DAA0D;AAQ1D,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,CAAC,IAAA,6BAAa,EAAC,OAAO,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE;oBACxD,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,3 +1,4 @@
|
|
|
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';
|
|
@@ -10,6 +11,8 @@ declare class MetaMask extends EthProvider implements WalletConnector {
|
|
|
10
11
|
canConnectViaCustodialService: boolean;
|
|
11
12
|
ethProviderHelper: EthProviderHelper;
|
|
12
13
|
publicAddress: string | undefined;
|
|
14
|
+
client?: Client;
|
|
15
|
+
getClient(): Client;
|
|
13
16
|
setupEventListeners(listeners: WalletEventListeners): Promise<() => void>;
|
|
14
17
|
getWeb3Provider(): ethers.providers.Web3Provider | undefined;
|
|
15
18
|
isInstalledOnBrowser(): boolean;
|
|
@@ -17,6 +17,7 @@ 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 normalizeWalletName_1 = require("../../utils/normalizeWalletName");
|
|
20
21
|
const ethProviderHelper_1 = require("./ethProviderHelper");
|
|
21
22
|
const ethProvider_1 = require("./ethProvider");
|
|
22
23
|
class MetaMask extends ethProvider_1.EthProvider {
|
|
@@ -29,6 +30,13 @@ class MetaMask extends ethProvider_1.EthProvider {
|
|
|
29
30
|
this.canConnectViaCustodialService = false;
|
|
30
31
|
this.ethProviderHelper = new ethProviderHelper_1.EthProviderHelper();
|
|
31
32
|
}
|
|
33
|
+
getClient() {
|
|
34
|
+
if (this.client) {
|
|
35
|
+
return this.client;
|
|
36
|
+
}
|
|
37
|
+
this.client = (0, walletConnect_1.initClient)((0, normalizeWalletName_1.normalizeWalletName)(this.name));
|
|
38
|
+
return this.client;
|
|
39
|
+
}
|
|
32
40
|
setupEventListeners(listeners) {
|
|
33
41
|
return this.ethProviderHelper._setupEventListeners(listeners, this.getWeb3Provider());
|
|
34
42
|
}
|
|
@@ -36,7 +44,7 @@ class MetaMask extends ethProvider_1.EthProvider {
|
|
|
36
44
|
if (this.isInstalledOnBrowser()) {
|
|
37
45
|
return this.ethProviderHelper.findProvider(this.name);
|
|
38
46
|
}
|
|
39
|
-
const client =
|
|
47
|
+
const client = this.getClient();
|
|
40
48
|
return client
|
|
41
49
|
? new ethers_1.ethers.providers.Web3Provider(new ethereum_provider_1.default({
|
|
42
50
|
connector: client,
|
|
@@ -52,7 +60,7 @@ class MetaMask extends ethProvider_1.EthProvider {
|
|
|
52
60
|
if (this.isInstalledOnBrowser()) {
|
|
53
61
|
return this.ethProviderHelper.fetchPublicAddressWithName(this.name);
|
|
54
62
|
}
|
|
55
|
-
const address = yield (0, walletConnect_1.fetchWalletConnectPublicAddress)((0, walletConnect_2.getWalletConnectMetadata)(this.name), opts);
|
|
63
|
+
const address = yield (0, walletConnect_1.fetchWalletConnectPublicAddress)((0, walletConnect_2.getWalletConnectMetadata)(this.name), this.getClient(), opts);
|
|
56
64
|
return address ? ethers_1.utils.getAddress(address) : undefined;
|
|
57
65
|
});
|
|
58
66
|
}
|
|
@@ -60,7 +68,7 @@ class MetaMask extends ethProvider_1.EthProvider {
|
|
|
60
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
69
|
return this.isInstalledOnBrowser()
|
|
62
70
|
? this.ethProviderHelper.signMessageWithName(messageToSign, this.name)
|
|
63
|
-
: (0, walletConnect_1.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_2.getWalletConnectMetadata)(this.name));
|
|
71
|
+
: (0, walletConnect_1.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_2.getWalletConnectMetadata)(this.name), this.getClient());
|
|
64
72
|
});
|
|
65
73
|
}
|
|
66
74
|
proveOwnership(messageToSign) {
|
|
@@ -70,7 +78,7 @@ class MetaMask extends ethProvider_1.EthProvider {
|
|
|
70
78
|
}
|
|
71
79
|
endSession() {
|
|
72
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
(0, walletConnect_1.killWalletConnectSession)();
|
|
81
|
+
(0, walletConnect_1.killWalletConnectSession)(this.getClient());
|
|
74
82
|
});
|
|
75
83
|
}
|
|
76
84
|
supportsNetworkSwitching() {
|
|
@@ -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":";;;;;;;;;;;;;;AACA,yFAAqE;AACrE,mCAAuC;AAEvC,4DAKkC;AAOlC,6DAAqE;AACrE,4CAAwC;AACxC,yEAAsE;AAEtE,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;IA0E9C,CAAC;IArEC,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,GAAG,IAAA,0BAAU,EAAC,IAAA,yCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,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,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,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,CAAC,SAAS,EAAE,EAChB,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,EACnC,IAAI,CAAC,SAAS,EAAE,CACjB,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,EAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7C,CAAC;KAAA;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,kBAAe,QAAQ,CAAC"}
|
|
@@ -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;
|
|
@@ -18,6 +18,7 @@ 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 normalizeWalletName_1 = require("../../utils/normalizeWalletName");
|
|
21
22
|
class WalletConnect extends ethProvider_1.EthProvider {
|
|
22
23
|
constructor({ walletName, evmNetworks, }) {
|
|
23
24
|
super({ evmNetworks });
|
|
@@ -26,12 +27,19 @@ class WalletConnect extends ethProvider_1.EthProvider {
|
|
|
26
27
|
this.canConnectViaCustodialService = false;
|
|
27
28
|
this.name = walletName;
|
|
28
29
|
}
|
|
30
|
+
getClient() {
|
|
31
|
+
if (this.client) {
|
|
32
|
+
return this.client;
|
|
33
|
+
}
|
|
34
|
+
this.client = (0, walletConnect_2.initClient)((0, normalizeWalletName_1.normalizeWalletName)(this.name));
|
|
35
|
+
return this.client;
|
|
36
|
+
}
|
|
29
37
|
supportsNetworkSwitching() {
|
|
30
38
|
if (this.connectedChain === 'EVM') {
|
|
31
39
|
return true;
|
|
32
40
|
}
|
|
33
41
|
else {
|
|
34
|
-
const client =
|
|
42
|
+
const client = this.getClient();
|
|
35
43
|
return Boolean(client === null || client === void 0 ? void 0 : client.chainId);
|
|
36
44
|
}
|
|
37
45
|
}
|
|
@@ -40,10 +48,10 @@ class WalletConnect extends ethProvider_1.EthProvider {
|
|
|
40
48
|
onAccountChange: listeners.onAccountChange,
|
|
41
49
|
onChainChange: listeners.onChainChange,
|
|
42
50
|
onDisconnect: listeners.onDisconnect,
|
|
43
|
-
});
|
|
51
|
+
}, this.getClient());
|
|
44
52
|
}
|
|
45
53
|
getWeb3Provider() {
|
|
46
|
-
const client =
|
|
54
|
+
const client = this.getClient();
|
|
47
55
|
return client
|
|
48
56
|
? new ethers_1.ethers.providers.Web3Provider(new ethereum_provider_1.default({
|
|
49
57
|
connector: client,
|
|
@@ -56,7 +64,7 @@ class WalletConnect extends ethProvider_1.EthProvider {
|
|
|
56
64
|
}
|
|
57
65
|
fetchPublicAddress(opts) {
|
|
58
66
|
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) => {
|
|
67
|
+
return (0, walletConnect_2.fetchWalletConnectPublicAddress)((0, walletConnect_1.getWalletConnectMetadata)(this.name), this.getClient(), Object.assign(Object.assign({}, opts), { onConnect: (payload) => {
|
|
60
68
|
var _a;
|
|
61
69
|
(_a = opts === null || opts === void 0 ? void 0 : opts.onConnect) === null || _a === void 0 ? void 0 : _a.call(opts, payload);
|
|
62
70
|
this.connectedChain = payload.params[0].chainId ? 'EVM' : 'SOL';
|
|
@@ -65,7 +73,7 @@ class WalletConnect extends ethProvider_1.EthProvider {
|
|
|
65
73
|
}
|
|
66
74
|
signMessage(messageToSign) {
|
|
67
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
return (0, walletConnect_2.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_1.getWalletConnectMetadata)(this.name));
|
|
76
|
+
return (0, walletConnect_2.signWalletConnectPersonalMessage)(messageToSign, (0, walletConnect_1.getWalletConnectMetadata)(this.name), this.getClient());
|
|
69
77
|
});
|
|
70
78
|
}
|
|
71
79
|
proveOwnership(messageToSign) {
|
|
@@ -75,7 +83,7 @@ class WalletConnect extends ethProvider_1.EthProvider {
|
|
|
75
83
|
}
|
|
76
84
|
endSession() {
|
|
77
85
|
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
(0, walletConnect_2.killWalletConnectSession)();
|
|
86
|
+
(0, walletConnect_2.killWalletConnectSession)(this.getClient());
|
|
79
87
|
});
|
|
80
88
|
}
|
|
81
89
|
}
|
|
@@ -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":";;;;;;;;;;;;;;AACA,yFAAqE;AACrE,mCAAgC;AAEhC,6DAAqE;AACrE,4CAAwC;AACxC,yDAAsD;AAEtD,4DAMkC;AAOlC,yEAAsE;AAEtE,MAAM,aAAc,SAAQ,yBAAW;IAYrC,YAAY,EACV,UAAU,EACV,WAAW,GAIZ;QACC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAlBzB,oBAAe,GAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAMjD,wBAAmB,GAAG,IAAI,CAAC;QAC3B,kCAA6B,GAAG,KAAK,CAAC;QAYpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,GAAG,IAAA,0BAAU,EAAC,IAAA,yCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,wBAAwB;QACtB,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC;SACjC;IACH,CAAC;IAED,mBAAmB,CAAC,SAA+B;QACjD,OAAO,IAAA,gDAAgC,EACrC;YACE,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,YAAY,EAAE,SAAS,CAAC,YAAY;SACrC,EACD,IAAI,CAAC,SAAS,EAAE,CACjB,CAAC;IACJ,CAAC;IAEQ,eAAe;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,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,EACnC,IAAI,CAAC,SAAS,EAAE,kCAEX,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,EACnC,IAAI,CAAC,SAAS,EAAE,CACjB,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,EAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7C,CAAC;KAAA;CACF;AAED,kBAAe,aAAa,CAAC"}
|