@broxus/evm-connect 1.7.8 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/EvmProvidersDispatcher/ProviderButton/index.js +11 -2
- package/dist/cjs/services/EvmWalletService.d.ts +3 -1
- package/dist/cjs/services/EvmWalletService.js +17 -5
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +1 -0
- package/dist/esm/components/EvmProvidersDispatcher/ProviderButton/index.js +12 -3
- package/dist/esm/services/EvmWalletService.d.ts +3 -1
- package/dist/esm/services/EvmWalletService.js +17 -5
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +1 -0
- package/package.json +4 -4
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { camelToSnake } from '@broxus/js-utils';
|
|
1
|
+
import { camelToSnake, getUserAgent, isMobile } from '@broxus/js-utils';
|
|
2
2
|
import { TokenIcon } from '@broxus/react-components';
|
|
3
3
|
import { Button, Text } from '@broxus/react-uikit';
|
|
4
4
|
import { reaction } from 'mobx';
|
|
@@ -35,6 +35,15 @@ export const ProviderButton = observer((props) => {
|
|
|
35
35
|
if (hasProvider === undefined) {
|
|
36
36
|
return (React.createElement(Button, { className: "evm-connect-provider-button", disabled: true }, intl.formatMessage(messages.EVM_CONNECT_INITIALIZING_HINT)));
|
|
37
37
|
}
|
|
38
|
+
const ua = getUserAgent();
|
|
39
|
+
const universalLink = providerConfig.info.links?.universalLink;
|
|
40
|
+
if (isMobile(ua) && !hasProvider && universalLink) {
|
|
41
|
+
return (React.createElement(Button, { className: "tvm-connect-provider-button", href: universalLink, rel: "noopener noreferrer" },
|
|
42
|
+
React.createElement("span", { className: "tvm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : providerConfig.info.icon),
|
|
43
|
+
React.createElement("span", { className: "tvm-connect-provider-title" },
|
|
44
|
+
providerConfig.info.name,
|
|
45
|
+
providerConfig.info.description && (React.createElement(Text, { className: "tvm-connect-provider-subtitle", color: "muted", component: "div", size: "xsmall", wrap: "truncate" }, providerConfig.info.description)))));
|
|
46
|
+
}
|
|
38
47
|
if (!hasProvider) {
|
|
39
48
|
const [platform = 'UNKNOWN', uri] = getEvmProviderPlatformLink({ ...providerConfig.info.links }) ?? [];
|
|
40
49
|
let text;
|
|
@@ -45,7 +54,7 @@ export const ProviderButton = observer((props) => {
|
|
|
45
54
|
}
|
|
46
55
|
catch { }
|
|
47
56
|
return (React.createElement(Button, { className: "evm-connect-provider-button", href: uri, rel: "noopener noreferrer", target: "_blank" },
|
|
48
|
-
React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) :
|
|
57
|
+
React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : providerConfig.info.icon),
|
|
49
58
|
React.createElement("span", { className: "evm-connect-provider-title" },
|
|
50
59
|
intl.formatMessage(messages.EVM_CONNECT_INSTALL_PROVIDER, {
|
|
51
60
|
providerName: providerConfig.info.name ?? '',
|
|
@@ -55,7 +64,7 @@ export const ProviderButton = observer((props) => {
|
|
|
55
64
|
const isConnected = walletService.isConnected && walletService.providerId === providerConfig.id;
|
|
56
65
|
const isConnecting = walletService.isConnecting && walletProviders.connectingProvider?.id === providerConfig.id;
|
|
57
66
|
return (React.createElement(Button, { className: "evm-connect-provider-button", disabled: isConnected || isConnecting, onClick: onSelect },
|
|
58
|
-
React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) :
|
|
67
|
+
React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : providerConfig.info.icon),
|
|
59
68
|
React.createElement("span", { className: "evm-connect-provider-title" },
|
|
60
69
|
providerConfig.info.name,
|
|
61
70
|
providerConfig.info.description && (React.createElement(Text, { className: "evm-connect-provider-subtitle", color: "muted", component: "div", size: "xsmall", wrap: "truncate" }, providerConfig.info.description))),
|
|
@@ -4,6 +4,7 @@ import Web3 from 'web3';
|
|
|
4
4
|
import { type EthereumConnector } from '../core';
|
|
5
5
|
import { type AddEthereumChainParams, type EvmNetworkConfig, type EvmWalletProviderConfig, type WatchAssetParameters } from '../types';
|
|
6
6
|
export interface EvmWalletServiceCtorParams {
|
|
7
|
+
autoInit?: boolean;
|
|
7
8
|
defaultNetworkId?: number;
|
|
8
9
|
/**
|
|
9
10
|
* List of supported networks
|
|
@@ -31,6 +32,7 @@ export declare class EvmWalletService extends AbstractStore<EvmWalletServiceData
|
|
|
31
32
|
* @returns {EthereumConnector|undefined}
|
|
32
33
|
*/
|
|
33
34
|
get connector(): EthereumConnector | undefined;
|
|
35
|
+
init(): Promise<void>;
|
|
34
36
|
/**
|
|
35
37
|
* Manually connect to the wallet
|
|
36
38
|
* @returns {Promise<void>}
|
|
@@ -170,7 +172,7 @@ export declare class EvmWalletService extends AbstractStore<EvmWalletServiceData
|
|
|
170
172
|
* Trying to resolve EVM Wallet connection
|
|
171
173
|
* @protected
|
|
172
174
|
*/
|
|
173
|
-
protected
|
|
175
|
+
protected _init(): Promise<void>;
|
|
174
176
|
protected accountDisposer: IReactionDisposer | undefined;
|
|
175
177
|
protected networkDisposer: IReactionDisposer | undefined;
|
|
176
178
|
}
|
|
@@ -25,9 +25,12 @@ export class EvmWalletService extends AbstractStore {
|
|
|
25
25
|
providerId: params?.providerId,
|
|
26
26
|
}));
|
|
27
27
|
makeObservable(this);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
const autoInit = params?.autoInit ?? true;
|
|
29
|
+
if (autoInit) {
|
|
30
|
+
this._init().catch(reason => {
|
|
31
|
+
error('Wallet init failed with an error', reason);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Define current provider connector
|
|
@@ -36,6 +39,9 @@ export class EvmWalletService extends AbstractStore {
|
|
|
36
39
|
get connector() {
|
|
37
40
|
return this.providers?.find(config => config.id === this.providerId)?.connector;
|
|
38
41
|
}
|
|
42
|
+
async init() {
|
|
43
|
+
await this._init();
|
|
44
|
+
}
|
|
39
45
|
/**
|
|
40
46
|
* Manually connect to the wallet
|
|
41
47
|
* @returns {Promise<void>}
|
|
@@ -283,7 +289,7 @@ export class EvmWalletService extends AbstractStore {
|
|
|
283
289
|
* Trying to resolve EVM Wallet connection
|
|
284
290
|
* @protected
|
|
285
291
|
*/
|
|
286
|
-
async
|
|
292
|
+
async _init() {
|
|
287
293
|
this.accountDisposer = reaction(() => this.address, async (address, prevAddress) => {
|
|
288
294
|
if (address?.toLowerCase() !== prevAddress?.toLowerCase()) {
|
|
289
295
|
this.setState('isSyncing', undefined);
|
|
@@ -310,6 +316,12 @@ __decorate([
|
|
|
310
316
|
__metadata("design:type", Object),
|
|
311
317
|
__metadata("design:paramtypes", [])
|
|
312
318
|
], EvmWalletService.prototype, "connector", null);
|
|
319
|
+
__decorate([
|
|
320
|
+
action.bound,
|
|
321
|
+
__metadata("design:type", Function),
|
|
322
|
+
__metadata("design:paramtypes", []),
|
|
323
|
+
__metadata("design:returntype", Promise)
|
|
324
|
+
], EvmWalletService.prototype, "init", null);
|
|
313
325
|
__decorate([
|
|
314
326
|
action.bound,
|
|
315
327
|
__metadata("design:type", Function),
|
|
@@ -451,4 +463,4 @@ __decorate([
|
|
|
451
463
|
__metadata("design:type", Function),
|
|
452
464
|
__metadata("design:paramtypes", []),
|
|
453
465
|
__metadata("design:returntype", Promise)
|
|
454
|
-
], EvmWalletService.prototype, "
|
|
466
|
+
], EvmWalletService.prototype, "_init", null);
|