@reown/appkit-adapter-ethers 1.8.15-viem-upgrade.0 → 1.8.15-viem-upgrade-2.0
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/dist/esm/src/client.js +612 -0
- package/dist/esm/src/client.js.map +1 -0
- package/dist/esm/src/index.js +4 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/utils/EthersMethods.js +88 -0
- package/dist/esm/src/utils/EthersMethods.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/src/client.d.ts +44 -0
- package/dist/types/src/index.d.ts +4 -0
- package/dist/types/src/utils/EthersMethods.d.ts +11 -0
- package/package.json +8 -8
|
@@ -0,0 +1,612 @@
|
|
|
1
|
+
import UniversalProvider from '@walletconnect/universal-provider';
|
|
2
|
+
import { JsonRpcProvider, formatEther, getAddress } from 'ethers';
|
|
3
|
+
import { WcConstantsUtil } from '@reown/appkit';
|
|
4
|
+
import { ConstantsUtil as CommonConstantsUtil, ErrorUtil, ParseUtil, UserRejectedRequestError } from '@reown/appkit-common';
|
|
5
|
+
import { ConstantsUtil, PresetsUtil } from '@reown/appkit-common';
|
|
6
|
+
import { AssetController, ChainController, ConnectorUtil, CoreHelperUtil, OptionsController, SIWXUtil, StorageUtil, WcHelpersUtil, getPreferredAccountType } from '@reown/appkit-controllers';
|
|
7
|
+
import { AdapterBlueprint, ProviderController, WalletConnectConnector } from '@reown/appkit-controllers';
|
|
8
|
+
import { HelpersUtil } from '@reown/appkit-utils';
|
|
9
|
+
import { BaseProvider, EthersHelpersUtil, InjectedProvider, SafeProvider } from '@reown/appkit-utils/ethers';
|
|
10
|
+
import { EthersMethods } from './utils/EthersMethods.js';
|
|
11
|
+
export class EthersAdapter extends AdapterBlueprint {
|
|
12
|
+
constructor() {
|
|
13
|
+
super({
|
|
14
|
+
adapterType: CommonConstantsUtil.ADAPTER_TYPES.ETHERS,
|
|
15
|
+
namespace: CommonConstantsUtil.CHAIN.EVM
|
|
16
|
+
});
|
|
17
|
+
this.balancePromises = {};
|
|
18
|
+
this.ethersProviders = {};
|
|
19
|
+
}
|
|
20
|
+
async createEthersConfig() {
|
|
21
|
+
const { metadata, enableCoinbase, enableInjected, enableEIP6963 } = OptionsController.state;
|
|
22
|
+
if (!metadata) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
if (enableInjected !== false) {
|
|
26
|
+
const injectedProvider = new InjectedProvider();
|
|
27
|
+
await injectedProvider.initialize();
|
|
28
|
+
this.ethersProviders.injected = injectedProvider;
|
|
29
|
+
}
|
|
30
|
+
if (enableCoinbase !== false) {
|
|
31
|
+
this.ethersProviders.baseAccount = new BaseProvider();
|
|
32
|
+
}
|
|
33
|
+
if (CoreHelperUtil.isSafeApp()) {
|
|
34
|
+
const safeProvider = new SafeProvider();
|
|
35
|
+
await safeProvider.initialize();
|
|
36
|
+
this.ethersProviders.safe = safeProvider;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
...this.ethersProviders,
|
|
40
|
+
EIP6963: enableEIP6963 !== false,
|
|
41
|
+
metadata
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async signMessage(params) {
|
|
45
|
+
const { message, address, provider } = params;
|
|
46
|
+
if (!provider) {
|
|
47
|
+
throw new Error('Provider is undefined');
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const signature = await EthersMethods.signMessage(message, provider, address);
|
|
51
|
+
return { signature };
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
throw new Error('EthersAdapter:signMessage - Sign message failed');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async sendTransaction(params) {
|
|
58
|
+
if (!params.provider) {
|
|
59
|
+
throw new Error('Provider is undefined');
|
|
60
|
+
}
|
|
61
|
+
const address = ChainController.getAccountData(CommonConstantsUtil.CHAIN.EVM)?.address;
|
|
62
|
+
if (!address) {
|
|
63
|
+
throw new Error('Address is undefined');
|
|
64
|
+
}
|
|
65
|
+
const tx = await EthersMethods.sendTransaction({
|
|
66
|
+
value: Number.isNaN(Number(params.value)) ? BigInt(0) : BigInt(params.value),
|
|
67
|
+
to: params.to,
|
|
68
|
+
data: params.data ? params.data : '0x',
|
|
69
|
+
gas: params.gas ? BigInt(params.gas) : undefined,
|
|
70
|
+
gasPrice: params.gasPrice ? BigInt(params.gasPrice) : undefined,
|
|
71
|
+
address: address
|
|
72
|
+
}, params.provider, address, Number(params.caipNetwork?.id));
|
|
73
|
+
return { hash: tx };
|
|
74
|
+
}
|
|
75
|
+
async writeContract(params) {
|
|
76
|
+
if (!params.provider) {
|
|
77
|
+
throw new Error('Provider is undefined');
|
|
78
|
+
}
|
|
79
|
+
const { address } = ParseUtil.parseCaipAddress(params.caipAddress);
|
|
80
|
+
const result = await EthersMethods.writeContract(params, params.provider, address, Number(params.caipNetwork?.id));
|
|
81
|
+
return { hash: result };
|
|
82
|
+
}
|
|
83
|
+
async estimateGas(params) {
|
|
84
|
+
const { provider, caipNetwork, address } = params;
|
|
85
|
+
if (!provider) {
|
|
86
|
+
throw new Error('Provider is undefined');
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
const result = await EthersMethods.estimateGas({
|
|
90
|
+
data: params.data,
|
|
91
|
+
to: params.to,
|
|
92
|
+
address: address
|
|
93
|
+
}, provider, address, Number(caipNetwork?.id));
|
|
94
|
+
return { gas: result };
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
throw new Error('EthersAdapter:estimateGas - Estimate gas failed');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
parseUnits(params) {
|
|
101
|
+
return EthersMethods.parseUnits(params.value, params.decimals);
|
|
102
|
+
}
|
|
103
|
+
formatUnits(params) {
|
|
104
|
+
return EthersMethods.formatUnits(params.value, params.decimals);
|
|
105
|
+
}
|
|
106
|
+
async syncConnection(params) {
|
|
107
|
+
const { id, chainId } = params;
|
|
108
|
+
const connector = this.connectors.find(c => c.id === id);
|
|
109
|
+
const selectedProvider = connector?.provider;
|
|
110
|
+
if (!selectedProvider) {
|
|
111
|
+
throw new Error('Provider not found');
|
|
112
|
+
}
|
|
113
|
+
const accounts = await selectedProvider.request({
|
|
114
|
+
method: 'eth_requestAccounts'
|
|
115
|
+
});
|
|
116
|
+
const requestChainId = await selectedProvider.request({
|
|
117
|
+
method: 'eth_chainId'
|
|
118
|
+
});
|
|
119
|
+
this.listenProviderEvents(id, selectedProvider);
|
|
120
|
+
if (!accounts[0]) {
|
|
121
|
+
throw new Error('No accounts found');
|
|
122
|
+
}
|
|
123
|
+
if (!connector?.type) {
|
|
124
|
+
throw new Error('Connector type not found');
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
address: this.toChecksummedAddress(accounts[0]),
|
|
128
|
+
chainId: Number(requestChainId) || Number(chainId),
|
|
129
|
+
provider: selectedProvider,
|
|
130
|
+
type: connector.type,
|
|
131
|
+
id
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
async syncConnectors() {
|
|
135
|
+
this.ethersConfig = await this.createEthersConfig();
|
|
136
|
+
if (this.ethersConfig?.EIP6963) {
|
|
137
|
+
this.listenInjectedConnector(true);
|
|
138
|
+
}
|
|
139
|
+
const connectors = Object.keys(this.ethersConfig || {}).filter(key => key !== 'metadata' && key !== 'EIP6963');
|
|
140
|
+
const connectorPromises = connectors.map(async (connector) => {
|
|
141
|
+
const isInjectedConnector = connector === CommonConstantsUtil.CONNECTOR_ID.INJECTED;
|
|
142
|
+
if (this.namespace) {
|
|
143
|
+
const provider = this.ethersProviders[connector];
|
|
144
|
+
this.addConnector({
|
|
145
|
+
id: connector,
|
|
146
|
+
explorerId: PresetsUtil.ConnectorExplorerIds[connector],
|
|
147
|
+
imageUrl: AssetController.state.connectorImages?.[connector],
|
|
148
|
+
name: PresetsUtil.ConnectorNamesMap[connector] || 'Unknown',
|
|
149
|
+
imageId: PresetsUtil.ConnectorImageIds[connector],
|
|
150
|
+
type: PresetsUtil.ConnectorTypesMap[connector] ?? 'EXTERNAL',
|
|
151
|
+
info: isInjectedConnector ? undefined : { rdns: connector },
|
|
152
|
+
chain: this.namespace,
|
|
153
|
+
chains: [],
|
|
154
|
+
provider: (await provider?.getProvider())
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
await Promise.all(connectorPromises);
|
|
159
|
+
}
|
|
160
|
+
async disconnectAll() {
|
|
161
|
+
const connections = await Promise.all(this.connections.map(async (connection) => {
|
|
162
|
+
const connector = this.connectors.find(c => HelpersUtil.isLowerCaseMatch(c.id, connection.connectorId));
|
|
163
|
+
if (!connector) {
|
|
164
|
+
throw new Error('Connector not found');
|
|
165
|
+
}
|
|
166
|
+
await this.disconnect({
|
|
167
|
+
id: connector.id
|
|
168
|
+
});
|
|
169
|
+
return connection;
|
|
170
|
+
}));
|
|
171
|
+
return { connections };
|
|
172
|
+
}
|
|
173
|
+
async syncConnections({ connectToFirstConnector }) {
|
|
174
|
+
const caipNetworks = this.getCaipNetworks();
|
|
175
|
+
await Promise.all(this.connectors
|
|
176
|
+
.filter(c => {
|
|
177
|
+
const { hasDisconnected, hasConnected } = HelpersUtil.getConnectorStorageInfo(c.id, this.namespace);
|
|
178
|
+
return !hasDisconnected && hasConnected;
|
|
179
|
+
})
|
|
180
|
+
.map(async (connector) => {
|
|
181
|
+
if (connector.id === CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT) {
|
|
182
|
+
const accounts = WcHelpersUtil.getWalletConnectAccounts(this.universalProvider, this.namespace);
|
|
183
|
+
const caipNetwork = caipNetworks.find(n => n.chainNamespace === this.namespace &&
|
|
184
|
+
n.id.toString() === accounts[0]?.chainId?.toString());
|
|
185
|
+
if (accounts.length > 0) {
|
|
186
|
+
this.addConnection({
|
|
187
|
+
connectorId: connector.id,
|
|
188
|
+
accounts: accounts.map(account => ({ address: account.address })),
|
|
189
|
+
caipNetwork
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
const { accounts, chainId } = await ConnectorUtil.fetchProviderData(connector);
|
|
195
|
+
if (accounts.length > 0 && chainId) {
|
|
196
|
+
const caipNetwork = caipNetworks.find(n => n.chainNamespace === this.namespace && n.id.toString() === chainId.toString());
|
|
197
|
+
this.addConnection({
|
|
198
|
+
connectorId: connector.id,
|
|
199
|
+
accounts: accounts.map(address => ({ address })),
|
|
200
|
+
caipNetwork
|
|
201
|
+
});
|
|
202
|
+
if (connector.provider &&
|
|
203
|
+
connector.id !== CommonConstantsUtil.CONNECTOR_ID.AUTH &&
|
|
204
|
+
connector.id !== CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT) {
|
|
205
|
+
this.listenProviderEvents(connector.id, connector.provider);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}));
|
|
210
|
+
if (connectToFirstConnector) {
|
|
211
|
+
this.emitFirstAvailableConnection();
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
async setUniversalProvider(universalProvider) {
|
|
215
|
+
this.universalProvider = universalProvider;
|
|
216
|
+
const wcConnectorId = CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT;
|
|
217
|
+
WcHelpersUtil.listenWcProvider({
|
|
218
|
+
universalProvider,
|
|
219
|
+
namespace: CommonConstantsUtil.CHAIN.EVM,
|
|
220
|
+
onConnect: accounts => this.onConnect(accounts, wcConnectorId),
|
|
221
|
+
onDisconnect: () => this.onDisconnect(wcConnectorId),
|
|
222
|
+
onAccountsChanged: accounts => this.onAccountsChanged(accounts, wcConnectorId, false),
|
|
223
|
+
onChainChanged: chainId => this.onChainChanged(chainId, wcConnectorId)
|
|
224
|
+
});
|
|
225
|
+
this.addConnector(new WalletConnectConnector({
|
|
226
|
+
provider: universalProvider,
|
|
227
|
+
caipNetworks: this.getCaipNetworks(),
|
|
228
|
+
namespace: CommonConstantsUtil.CHAIN.EVM
|
|
229
|
+
}));
|
|
230
|
+
return Promise.resolve();
|
|
231
|
+
}
|
|
232
|
+
eip6963EventHandler(event) {
|
|
233
|
+
if (event.detail) {
|
|
234
|
+
const { info, provider } = event.detail;
|
|
235
|
+
const existingConnector = this.connectors?.find(c => c.name === info?.name);
|
|
236
|
+
if (!existingConnector) {
|
|
237
|
+
const type = PresetsUtil.ConnectorTypesMap[CommonConstantsUtil.CONNECTOR_ID.EIP6963];
|
|
238
|
+
const id = info?.rdns || info?.name || info?.uuid;
|
|
239
|
+
if (type && this.namespace && id) {
|
|
240
|
+
this.addConnector({
|
|
241
|
+
id,
|
|
242
|
+
type,
|
|
243
|
+
explorerId: PresetsUtil.ConnectorExplorerIds[info.rdns || ''] ??
|
|
244
|
+
PresetsUtil.ConnectorExplorerIds[info.name || ''],
|
|
245
|
+
imageUrl: info?.icon,
|
|
246
|
+
name: info?.name || 'Unknown',
|
|
247
|
+
provider,
|
|
248
|
+
info,
|
|
249
|
+
chain: this.namespace,
|
|
250
|
+
chains: []
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
listenInjectedConnector(enableEIP6963) {
|
|
257
|
+
if (typeof window !== 'undefined' && enableEIP6963) {
|
|
258
|
+
const handler = this.eip6963EventHandler.bind(this);
|
|
259
|
+
window.addEventListener(ConstantsUtil.EIP6963_ANNOUNCE_EVENT, handler);
|
|
260
|
+
window.dispatchEvent(new Event(ConstantsUtil.EIP6963_REQUEST_EVENT));
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
async connect({ id, address, type, chainId, socialUri }) {
|
|
264
|
+
try {
|
|
265
|
+
const connector = this.connectors.find(c => HelpersUtil.isLowerCaseMatch(c.id, id));
|
|
266
|
+
if (!connector) {
|
|
267
|
+
throw new Error('Connector not found');
|
|
268
|
+
}
|
|
269
|
+
const connection = this.getConnection({
|
|
270
|
+
address,
|
|
271
|
+
connectorId: id,
|
|
272
|
+
connections: this.connections,
|
|
273
|
+
connectors: this.connectors
|
|
274
|
+
});
|
|
275
|
+
if (connection) {
|
|
276
|
+
const caipNetwork = connection.caipNetwork;
|
|
277
|
+
if (!caipNetwork) {
|
|
278
|
+
throw new Error('EthersAdapter:connect - could not find the caipNetwork to connect');
|
|
279
|
+
}
|
|
280
|
+
if (connection.account) {
|
|
281
|
+
this.emit('accountChanged', {
|
|
282
|
+
address: this.toChecksummedAddress(connection.account.address),
|
|
283
|
+
chainId: caipNetwork.id,
|
|
284
|
+
connector
|
|
285
|
+
});
|
|
286
|
+
return {
|
|
287
|
+
address: this.toChecksummedAddress(connection.account.address),
|
|
288
|
+
chainId: caipNetwork.id,
|
|
289
|
+
provider: connector.provider,
|
|
290
|
+
type: connector.type,
|
|
291
|
+
id
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
let selectedProvider = connector?.provider;
|
|
296
|
+
const ethersProvider = this.ethersProviders[connector.id];
|
|
297
|
+
if (ethersProvider) {
|
|
298
|
+
await ethersProvider.initialize();
|
|
299
|
+
selectedProvider = (await ethersProvider.getProvider());
|
|
300
|
+
}
|
|
301
|
+
if (!selectedProvider) {
|
|
302
|
+
throw new Error('Provider not found');
|
|
303
|
+
}
|
|
304
|
+
connector.provider = selectedProvider;
|
|
305
|
+
let accounts = [];
|
|
306
|
+
let requestChainId = undefined;
|
|
307
|
+
if (type === ConstantsUtil.CONNECTOR_TYPE_AUTH) {
|
|
308
|
+
const { address: _address, accounts: authAccounts } = await SIWXUtil.authConnectorAuthenticate({
|
|
309
|
+
authConnector: selectedProvider,
|
|
310
|
+
chainNamespace: CommonConstantsUtil.CHAIN.EVM,
|
|
311
|
+
chainId,
|
|
312
|
+
socialUri,
|
|
313
|
+
preferredAccountType: getPreferredAccountType('eip155')
|
|
314
|
+
});
|
|
315
|
+
const caipNetwork = this.getCaipNetworks().find(n => n.id.toString() === chainId?.toString());
|
|
316
|
+
accounts = [_address];
|
|
317
|
+
this.addConnection({
|
|
318
|
+
connectorId: id,
|
|
319
|
+
accounts: authAccounts
|
|
320
|
+
? authAccounts.map(account => ({ address: account.address }))
|
|
321
|
+
: accounts.map(account => ({ address: account })),
|
|
322
|
+
caipNetwork,
|
|
323
|
+
auth: {
|
|
324
|
+
name: StorageUtil.getConnectedSocialProvider(),
|
|
325
|
+
username: StorageUtil.getConnectedSocialUsername()
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
this.emit('accountChanged', {
|
|
329
|
+
address: this.toChecksummedAddress(accounts[0]),
|
|
330
|
+
chainId: Number(chainId),
|
|
331
|
+
connector
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
accounts = await selectedProvider.request({
|
|
336
|
+
method: 'eth_requestAccounts'
|
|
337
|
+
});
|
|
338
|
+
requestChainId = await selectedProvider.request({
|
|
339
|
+
method: 'eth_chainId'
|
|
340
|
+
});
|
|
341
|
+
const caipNetwork = this.getCaipNetworks().find(n => n.id.toString() === chainId?.toString());
|
|
342
|
+
if (requestChainId !== chainId) {
|
|
343
|
+
if (!caipNetwork) {
|
|
344
|
+
throw new Error('EthersAdapter:connect - could not find the caipNetwork to switch');
|
|
345
|
+
}
|
|
346
|
+
try {
|
|
347
|
+
await selectedProvider?.request({
|
|
348
|
+
method: 'wallet_switchEthereumChain',
|
|
349
|
+
params: [{ chainId: EthersHelpersUtil.numberToHexString(caipNetwork.id) }]
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
throw new Error('EthersAdapter:connect - Switch network failed');
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
this.emit('accountChanged', {
|
|
357
|
+
address: this.toChecksummedAddress(accounts[0]),
|
|
358
|
+
chainId: Number(chainId),
|
|
359
|
+
connector
|
|
360
|
+
});
|
|
361
|
+
this.addConnection({
|
|
362
|
+
connectorId: id,
|
|
363
|
+
accounts: accounts.map(account => ({ address: account })),
|
|
364
|
+
caipNetwork
|
|
365
|
+
});
|
|
366
|
+
if (connector.id !== CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT) {
|
|
367
|
+
this.listenProviderEvents(id, selectedProvider);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return {
|
|
371
|
+
address: this.toChecksummedAddress(accounts[0]),
|
|
372
|
+
chainId: Number(chainId),
|
|
373
|
+
provider: selectedProvider,
|
|
374
|
+
type: type,
|
|
375
|
+
id
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
catch (err) {
|
|
379
|
+
if (ErrorUtil.isUserRejectedRequestError(err)) {
|
|
380
|
+
throw new UserRejectedRequestError(err);
|
|
381
|
+
}
|
|
382
|
+
throw err;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
async reconnect(params) {
|
|
386
|
+
const { id, chainId } = params;
|
|
387
|
+
const connector = this.connectors.find(c => c.id === id);
|
|
388
|
+
if (connector && connector.type === 'AUTH' && chainId) {
|
|
389
|
+
await SIWXUtil.authConnectorAuthenticate({
|
|
390
|
+
authConnector: connector.provider,
|
|
391
|
+
chainNamespace: CommonConstantsUtil.CHAIN.EVM,
|
|
392
|
+
chainId,
|
|
393
|
+
preferredAccountType: getPreferredAccountType('eip155')
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
async getAccounts(params) {
|
|
398
|
+
const connector = this.connectors.find(c => c.id === params.id);
|
|
399
|
+
const selectedProvider = connector?.provider;
|
|
400
|
+
if (!selectedProvider || !connector) {
|
|
401
|
+
throw new Error('Provider not found');
|
|
402
|
+
}
|
|
403
|
+
const connection = this.getConnection({
|
|
404
|
+
connectorId: params.id,
|
|
405
|
+
connections: this.connections,
|
|
406
|
+
connectors: this.connectors
|
|
407
|
+
});
|
|
408
|
+
if (connection) {
|
|
409
|
+
return {
|
|
410
|
+
accounts: connection.accounts.map(({ address }) => CoreHelperUtil.createAccount(CommonConstantsUtil.CHAIN.EVM, address, 'eoa'))
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
if (params.id === CommonConstantsUtil.CONNECTOR_ID.AUTH) {
|
|
414
|
+
const provider = connector['provider'];
|
|
415
|
+
if (!provider.user) {
|
|
416
|
+
return { accounts: [] };
|
|
417
|
+
}
|
|
418
|
+
const { accounts, address } = provider.user;
|
|
419
|
+
return Promise.resolve({
|
|
420
|
+
accounts: (accounts || [{ address, type: 'eoa' }]).map(account => CoreHelperUtil.createAccount(CommonConstantsUtil.CHAIN.EVM, account.address, account.type))
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
const accounts = await selectedProvider.request({
|
|
424
|
+
method: 'eth_requestAccounts'
|
|
425
|
+
});
|
|
426
|
+
return {
|
|
427
|
+
accounts: accounts.map(account => CoreHelperUtil.createAccount(CommonConstantsUtil.CHAIN.EVM, account, 'eoa'))
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
async disconnect(params) {
|
|
431
|
+
if (params.id) {
|
|
432
|
+
const connector = this.connectors.find(c => HelpersUtil.isLowerCaseMatch(c.id, params.id));
|
|
433
|
+
if (!connector) {
|
|
434
|
+
throw new Error('Connector not found');
|
|
435
|
+
}
|
|
436
|
+
const connection = this.getConnection({
|
|
437
|
+
connectorId: params.id,
|
|
438
|
+
connections: this.connections,
|
|
439
|
+
connectors: this.connectors
|
|
440
|
+
});
|
|
441
|
+
switch (connector.type) {
|
|
442
|
+
case ConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT:
|
|
443
|
+
if (connector.provider.session) {
|
|
444
|
+
;
|
|
445
|
+
connector.provider.disconnect();
|
|
446
|
+
}
|
|
447
|
+
break;
|
|
448
|
+
case ConstantsUtil.CONNECTOR_TYPE_AUTH:
|
|
449
|
+
await connector.provider?.disconnect();
|
|
450
|
+
break;
|
|
451
|
+
case ConstantsUtil.CONNECTOR_TYPE_ANNOUNCED:
|
|
452
|
+
case ConstantsUtil.CONNECTOR_TYPE_EXTERNAL:
|
|
453
|
+
await this.revokeProviderPermissions(connector.provider);
|
|
454
|
+
break;
|
|
455
|
+
default:
|
|
456
|
+
throw new Error('Unsupported provider type');
|
|
457
|
+
}
|
|
458
|
+
if (connector.id) {
|
|
459
|
+
this.removeProviderListeners(connector.id);
|
|
460
|
+
this.deleteConnection(connector.id);
|
|
461
|
+
}
|
|
462
|
+
if (this.connections.length === 0) {
|
|
463
|
+
this.emit('disconnect');
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
this.emitFirstAvailableConnection();
|
|
467
|
+
}
|
|
468
|
+
return { connections: connection ? [connection] : [] };
|
|
469
|
+
}
|
|
470
|
+
return this.disconnectAll();
|
|
471
|
+
}
|
|
472
|
+
async getBalance(params) {
|
|
473
|
+
const address = params.address;
|
|
474
|
+
const caipNetwork = this.getCaipNetworks().find(network => network.id.toString() === params.chainId?.toString());
|
|
475
|
+
if (!address) {
|
|
476
|
+
return Promise.resolve({ balance: '0.00', symbol: 'ETH' });
|
|
477
|
+
}
|
|
478
|
+
if (caipNetwork && caipNetwork.chainNamespace === CommonConstantsUtil.CHAIN.EVM) {
|
|
479
|
+
const caipAddress = `${caipNetwork.caipNetworkId}:${address}`;
|
|
480
|
+
const cachedPromise = this.balancePromises[caipAddress];
|
|
481
|
+
if (cachedPromise) {
|
|
482
|
+
return cachedPromise;
|
|
483
|
+
}
|
|
484
|
+
const cachedBalance = StorageUtil.getNativeBalanceCacheForCaipAddress(caipAddress);
|
|
485
|
+
if (cachedBalance) {
|
|
486
|
+
return { balance: cachedBalance.balance, symbol: cachedBalance.symbol };
|
|
487
|
+
}
|
|
488
|
+
const jsonRpcProvider = new JsonRpcProvider(caipNetwork.rpcUrls.default.http[0], {
|
|
489
|
+
chainId: caipNetwork.id,
|
|
490
|
+
name: caipNetwork.name
|
|
491
|
+
});
|
|
492
|
+
if (jsonRpcProvider) {
|
|
493
|
+
try {
|
|
494
|
+
this.balancePromises[caipAddress] = new Promise(async (resolve) => {
|
|
495
|
+
try {
|
|
496
|
+
const balance = await jsonRpcProvider.getBalance(address);
|
|
497
|
+
const formattedBalance = formatEther(balance);
|
|
498
|
+
StorageUtil.updateNativeBalanceCache({
|
|
499
|
+
caipAddress,
|
|
500
|
+
balance: formattedBalance,
|
|
501
|
+
symbol: caipNetwork.nativeCurrency.symbol,
|
|
502
|
+
timestamp: Date.now()
|
|
503
|
+
});
|
|
504
|
+
resolve({ balance: formattedBalance, symbol: caipNetwork.nativeCurrency.symbol });
|
|
505
|
+
}
|
|
506
|
+
catch (error) {
|
|
507
|
+
resolve({ balance: '0.00', symbol: 'ETH' });
|
|
508
|
+
}
|
|
509
|
+
}).finally(() => {
|
|
510
|
+
delete this.balancePromises[caipAddress];
|
|
511
|
+
});
|
|
512
|
+
return this.balancePromises[caipAddress] || { balance: '0.00', symbol: 'ETH' };
|
|
513
|
+
}
|
|
514
|
+
catch (error) {
|
|
515
|
+
return { balance: '0.00', symbol: 'ETH' };
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
return { balance: '0.00', symbol: 'ETH' };
|
|
520
|
+
}
|
|
521
|
+
async switchNetwork(params) {
|
|
522
|
+
const { caipNetwork } = params;
|
|
523
|
+
const providerType = ProviderController.getProviderId(caipNetwork.chainNamespace);
|
|
524
|
+
const provider = ProviderController.getProvider(caipNetwork.chainNamespace);
|
|
525
|
+
if (providerType === 'AUTH' || providerType === 'WALLET_CONNECT') {
|
|
526
|
+
await super.switchNetwork(params);
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
if (!provider) {
|
|
530
|
+
throw new Error('Provider not found');
|
|
531
|
+
}
|
|
532
|
+
try {
|
|
533
|
+
await provider?.request({
|
|
534
|
+
method: 'wallet_switchEthereumChain',
|
|
535
|
+
params: [{ chainId: EthersHelpersUtil.numberToHexString(caipNetwork.id) }]
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
catch (switchError) {
|
|
539
|
+
if (switchError.code === WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID ||
|
|
540
|
+
switchError.code === WcConstantsUtil.ERROR_INVALID_CHAIN_ID ||
|
|
541
|
+
switchError.code === WcConstantsUtil.ERROR_CODE_DEFAULT ||
|
|
542
|
+
switchError?.data?.originalError?.code === WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID) {
|
|
543
|
+
await EthersHelpersUtil.addEthereumChain(provider, caipNetwork);
|
|
544
|
+
}
|
|
545
|
+
else if (providerType === 'ANNOUNCED' ||
|
|
546
|
+
providerType === 'EXTERNAL' ||
|
|
547
|
+
providerType === 'INJECTED') {
|
|
548
|
+
throw new Error('Chain is not supported');
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
getWalletConnectProvider() {
|
|
553
|
+
return this.connectors.find(c => c.type === 'WALLET_CONNECT')?.provider;
|
|
554
|
+
}
|
|
555
|
+
async revokeProviderPermissions(provider) {
|
|
556
|
+
try {
|
|
557
|
+
const permissions = await provider.request({
|
|
558
|
+
method: 'wallet_getPermissions'
|
|
559
|
+
});
|
|
560
|
+
const ethAccountsPermission = permissions.find(permission => permission.parentCapability === 'eth_accounts');
|
|
561
|
+
if (ethAccountsPermission) {
|
|
562
|
+
await provider.request({
|
|
563
|
+
method: 'wallet_revokePermissions',
|
|
564
|
+
params: [{ eth_accounts: {} }]
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
catch (error) {
|
|
569
|
+
console.info('Could not revoke permissions from wallet. Disconnecting...', error);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
async getCapabilities(params) {
|
|
573
|
+
const provider = ProviderController.getProvider(CommonConstantsUtil.CHAIN.EVM);
|
|
574
|
+
if (!provider) {
|
|
575
|
+
throw new Error('Provider is undefined');
|
|
576
|
+
}
|
|
577
|
+
return await provider.request({ method: 'wallet_getCapabilities', params: [params] });
|
|
578
|
+
}
|
|
579
|
+
async grantPermissions(params) {
|
|
580
|
+
const provider = ProviderController.getProvider(CommonConstantsUtil.CHAIN.EVM);
|
|
581
|
+
if (!provider) {
|
|
582
|
+
throw new Error('Provider is undefined');
|
|
583
|
+
}
|
|
584
|
+
return await provider.request({ method: 'wallet_grantPermissions', params });
|
|
585
|
+
}
|
|
586
|
+
async revokePermissions(params) {
|
|
587
|
+
const provider = ProviderController.getProvider(CommonConstantsUtil.CHAIN.EVM);
|
|
588
|
+
if (!provider) {
|
|
589
|
+
throw new Error('Provider is undefined');
|
|
590
|
+
}
|
|
591
|
+
return await provider.request({ method: 'wallet_revokePermissions', params: [params] });
|
|
592
|
+
}
|
|
593
|
+
async walletGetAssets(params) {
|
|
594
|
+
const provider = ProviderController.getProvider(CommonConstantsUtil.CHAIN.EVM);
|
|
595
|
+
if (!provider) {
|
|
596
|
+
throw new Error('Provider is undefined');
|
|
597
|
+
}
|
|
598
|
+
return await provider.request({
|
|
599
|
+
method: 'wallet_getAssets',
|
|
600
|
+
params: [params]
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
toChecksummedAddress(address) {
|
|
604
|
+
try {
|
|
605
|
+
return getAddress(address.toLowerCase());
|
|
606
|
+
}
|
|
607
|
+
catch {
|
|
608
|
+
return address;
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAA;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,cAAc,4BAA4B,CAAA"}
|