@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.
@@ -64,6 +64,15 @@ exports.ProviderButton = (0, mobx_react_lite_1.observer)((props) => {
64
64
  if (hasProvider === undefined) {
65
65
  return (React.createElement(react_uikit_1.Button, { className: "evm-connect-provider-button", disabled: true }, intl.formatMessage(intl_1.default.EVM_CONNECT_INITIALIZING_HINT)));
66
66
  }
67
+ const ua = (0, js_utils_1.getUserAgent)();
68
+ const universalLink = providerConfig.info.links?.universalLink;
69
+ if ((0, js_utils_1.isMobile)(ua) && !hasProvider && universalLink) {
70
+ return (React.createElement(react_uikit_1.Button, { className: "tvm-connect-provider-button", href: universalLink, rel: "noopener noreferrer" },
71
+ React.createElement("span", { className: "tvm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(react_components_1.TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : providerConfig.info.icon),
72
+ React.createElement("span", { className: "tvm-connect-provider-title" },
73
+ providerConfig.info.name,
74
+ providerConfig.info.description && (React.createElement(react_uikit_1.Text, { className: "tvm-connect-provider-subtitle", color: "muted", component: "div", size: "xsmall", wrap: "truncate" }, providerConfig.info.description)))));
75
+ }
67
76
  if (!hasProvider) {
68
77
  const [platform = 'UNKNOWN', uri] = (0, utils_1.getEvmProviderPlatformLink)({ ...providerConfig.info.links }) ?? [];
69
78
  let text;
@@ -74,7 +83,7 @@ exports.ProviderButton = (0, mobx_react_lite_1.observer)((props) => {
74
83
  }
75
84
  catch { }
76
85
  return (React.createElement(react_uikit_1.Button, { className: "evm-connect-provider-button", href: uri, rel: "noopener noreferrer", target: "_blank" },
77
- React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(react_components_1.TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : (providerConfig.info.icon)),
86
+ React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(react_components_1.TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : providerConfig.info.icon),
78
87
  React.createElement("span", { className: "evm-connect-provider-title" },
79
88
  intl.formatMessage(intl_1.default.EVM_CONNECT_INSTALL_PROVIDER, {
80
89
  providerName: providerConfig.info.name ?? '',
@@ -84,7 +93,7 @@ exports.ProviderButton = (0, mobx_react_lite_1.observer)((props) => {
84
93
  const isConnected = walletService.isConnected && walletService.providerId === providerConfig.id;
85
94
  const isConnecting = walletService.isConnecting && walletProviders.connectingProvider?.id === providerConfig.id;
86
95
  return (React.createElement(react_uikit_1.Button, { className: "evm-connect-provider-button", disabled: isConnected || isConnecting, onClick: onSelect },
87
- React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(react_components_1.TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : (providerConfig.info.icon)),
96
+ React.createElement("span", { className: "evm-connect-provider-icon" }, typeof providerConfig.info.icon === 'string' ? (React.createElement(react_components_1.TokenIcon, { iconUrl: providerConfig.info.icon, size: 28 })) : providerConfig.info.icon),
88
97
  React.createElement("span", { className: "evm-connect-provider-title" },
89
98
  providerConfig.info.name,
90
99
  providerConfig.info.description && (React.createElement(react_uikit_1.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 init(): Promise<void>;
175
+ protected _init(): Promise<void>;
174
176
  protected accountDisposer: IReactionDisposer | undefined;
175
177
  protected networkDisposer: IReactionDisposer | undefined;
176
178
  }
@@ -31,9 +31,12 @@ class EvmWalletService extends js_core_1.AbstractStore {
31
31
  providerId: params?.providerId,
32
32
  }));
33
33
  (0, mobx_1.makeObservable)(this);
34
- this.init().catch(reason => {
35
- (0, js_utils_1.error)('Wallet init failed with an error', reason);
36
- });
34
+ const autoInit = params?.autoInit ?? true;
35
+ if (autoInit) {
36
+ this._init().catch(reason => {
37
+ (0, js_utils_1.error)('Wallet init failed with an error', reason);
38
+ });
39
+ }
37
40
  }
38
41
  /**
39
42
  * Define current provider connector
@@ -42,6 +45,9 @@ class EvmWalletService extends js_core_1.AbstractStore {
42
45
  get connector() {
43
46
  return this.providers?.find(config => config.id === this.providerId)?.connector;
44
47
  }
48
+ async init() {
49
+ await this._init();
50
+ }
45
51
  /**
46
52
  * Manually connect to the wallet
47
53
  * @returns {Promise<void>}
@@ -289,7 +295,7 @@ class EvmWalletService extends js_core_1.AbstractStore {
289
295
  * Trying to resolve EVM Wallet connection
290
296
  * @protected
291
297
  */
292
- async init() {
298
+ async _init() {
293
299
  this.accountDisposer = (0, mobx_1.reaction)(() => this.address, async (address, prevAddress) => {
294
300
  if (address?.toLowerCase() !== prevAddress?.toLowerCase()) {
295
301
  this.setState('isSyncing', undefined);
@@ -317,6 +323,12 @@ __decorate([
317
323
  __metadata("design:type", Object),
318
324
  __metadata("design:paramtypes", [])
319
325
  ], EvmWalletService.prototype, "connector", null);
326
+ __decorate([
327
+ mobx_1.action.bound,
328
+ __metadata("design:type", Function),
329
+ __metadata("design:paramtypes", []),
330
+ __metadata("design:returntype", Promise)
331
+ ], EvmWalletService.prototype, "init", null);
320
332
  __decorate([
321
333
  mobx_1.action.bound,
322
334
  __metadata("design:type", Function),
@@ -458,4 +470,4 @@ __decorate([
458
470
  __metadata("design:type", Function),
459
471
  __metadata("design:paramtypes", []),
460
472
  __metadata("design:returntype", Promise)
461
- ], EvmWalletService.prototype, "init", null);
473
+ ], EvmWalletService.prototype, "_init", null);