@broxus/evm-connect 1.12.5 → 1.12.7
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/index.cjs.js +2 -2
- package/dist/index.esm.js +2 -2
- package/lib/cjs/context/EvmWalletProvidersContext.js +3 -3
- package/lib/cjs/context/EvmWalletServiceContext.js +2 -3
- package/lib/cjs/hooks/useRecentConnectionMeta.js +3 -1
- package/lib/esm/context/EvmWalletProvidersContext.js +4 -4
- package/lib/esm/context/EvmWalletServiceContext.js +3 -4
- package/lib/esm/hooks/useRecentConnectionMeta.js +3 -1
- package/package.json +2 -2
|
@@ -49,7 +49,6 @@ function useEvmWalletProviders() {
|
|
|
49
49
|
}
|
|
50
50
|
exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreementsNote, children, network, recentMetaStorageKey, onConnect, }) => {
|
|
51
51
|
const walletService = (0, EvmWalletServiceContext_1.useEvmWalletService)();
|
|
52
|
-
const [recentMeta, setRecentMeta] = (0, hooks_1.useRecentConnectionMeta)(recentMetaStorageKey);
|
|
53
52
|
const [error, setError] = React.useState(null);
|
|
54
53
|
const [connectingProvider, setConnectingProvider] = React.useState(null);
|
|
55
54
|
const connect = React.useCallback(async (providerConfig) => {
|
|
@@ -57,6 +56,7 @@ exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreemen
|
|
|
57
56
|
setError(null);
|
|
58
57
|
setConnectingProvider(providerConfig);
|
|
59
58
|
const prevConnector = walletService.connector;
|
|
59
|
+
const recentMeta = (0, hooks_1.getRecentConnectionMeta)(recentMetaStorageKey);
|
|
60
60
|
// eslint-disable-next-line no-nested-ternary
|
|
61
61
|
const chainParams = network ?? (recentMeta?.chainId
|
|
62
62
|
? walletService.networks.find(_network => _network.chainId === recentMeta.chainId) ?? 1
|
|
@@ -67,7 +67,7 @@ exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreemen
|
|
|
67
67
|
await prevConnector?.disconnect(true);
|
|
68
68
|
}
|
|
69
69
|
await onConnect?.(providerConfig.connector);
|
|
70
|
-
|
|
70
|
+
(0, hooks_1.storeRecentConnectionMeta)({
|
|
71
71
|
chainId: providerConfig.connector.chainId?.toString(),
|
|
72
72
|
disconnected: false,
|
|
73
73
|
providerId: providerConfig.id,
|
|
@@ -78,7 +78,7 @@ exports.EvmWalletProvidersProvider = (0, mobx_react_lite_1.observer)(({ agreemen
|
|
|
78
78
|
catch (e) {
|
|
79
79
|
setError(e);
|
|
80
80
|
}
|
|
81
|
-
}, [network, onConnect,
|
|
81
|
+
}, [network, onConnect, recentMetaStorageKey, walletService]);
|
|
82
82
|
const reset = React.useCallback(() => {
|
|
83
83
|
setError(null);
|
|
84
84
|
setConnectingProvider(null);
|
|
@@ -48,7 +48,6 @@ function useEvmWalletService() {
|
|
|
48
48
|
return (0, react_uikit_1.useContext)(exports.EvmWalletServiceContext);
|
|
49
49
|
}
|
|
50
50
|
function EvmWalletServiceProvider({ agreementsNote, children, params, recentMetaStorageKey, wallet, }) {
|
|
51
|
-
const [, setRecentMeta] = (0, hooks_1.useRecentConnectionMeta)(recentMetaStorageKey);
|
|
52
51
|
const context = React.useMemo(() => {
|
|
53
52
|
if (wallet instanceof services_1.EvmWalletService) {
|
|
54
53
|
return wallet;
|
|
@@ -58,9 +57,9 @@ function EvmWalletServiceProvider({ agreementsNote, children, params, recentMeta
|
|
|
58
57
|
React.useEffect(() => (0, mobx_1.reaction)(() => context.chainId, chainId => {
|
|
59
58
|
if (chainId) {
|
|
60
59
|
const recentMeta = (0, hooks_1.getRecentConnectionMeta)(recentMetaStorageKey);
|
|
61
|
-
|
|
60
|
+
(0, hooks_1.storeRecentConnectionMeta)({ ...recentMeta, chainId: chainId.toString() }, recentMetaStorageKey);
|
|
62
61
|
}
|
|
63
|
-
}, { delay: 10, fireImmediately: context.isReady }), [context, recentMetaStorageKey
|
|
62
|
+
}, { delay: 10, fireImmediately: context.isReady }), [context, recentMetaStorageKey]);
|
|
64
63
|
return (React.createElement(exports.EvmWalletServiceContext.Provider, { value: context },
|
|
65
64
|
React.createElement(EvmWalletProvidersContext_1.EvmWalletProvidersProvider, { agreementsNote: agreementsNote, recentMetaStorageKey: recentMetaStorageKey }, children)));
|
|
66
65
|
}
|
|
@@ -39,6 +39,7 @@ exports.useRecentConnectionMeta = useRecentConnectionMeta;
|
|
|
39
39
|
const js_utils_1 = require("@broxus/js-utils");
|
|
40
40
|
const React = __importStar(require("react"));
|
|
41
41
|
const constants_1 = require("../constants");
|
|
42
|
+
const context_1 = require("../context");
|
|
42
43
|
const types_1 = require("../types");
|
|
43
44
|
function isRecentConnectionMeta(value) {
|
|
44
45
|
const meta = { providerId: value.providerId, type: value.type };
|
|
@@ -70,7 +71,8 @@ function getRecentConnectionMeta(storageKey = constants_1.EVM_RECENT_CONNECTION)
|
|
|
70
71
|
return undefined;
|
|
71
72
|
}
|
|
72
73
|
function useRecentConnectionMeta(storageKey = constants_1.EVM_RECENT_CONNECTION) {
|
|
73
|
-
const
|
|
74
|
+
const walletProviders = (0, context_1.useEvmWalletProviders)();
|
|
75
|
+
const [meta, setMeta] = React.useState(getRecentConnectionMeta(walletProviders.recentMetaStorageKey || storageKey));
|
|
74
76
|
React.useEffect(() => {
|
|
75
77
|
const onStorage = (event) => {
|
|
76
78
|
if (event.key === storageKey && event.newValue) {
|
|
@@ -4,7 +4,7 @@ import { useContext } from '@broxus/react-uikit';
|
|
|
4
4
|
import { observer } from 'mobx-react-lite';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { useEvmWalletService } from '../context/EvmWalletServiceContext';
|
|
7
|
-
import {
|
|
7
|
+
import { getRecentConnectionMeta, storeRecentConnectionMeta } from '../hooks';
|
|
8
8
|
import { convertNetworkToChainParams } from '../utils';
|
|
9
9
|
export const EvmWalletProvidersContext = React.createContext(null);
|
|
10
10
|
export function useEvmWalletProviders() {
|
|
@@ -12,7 +12,6 @@ export function useEvmWalletProviders() {
|
|
|
12
12
|
}
|
|
13
13
|
export const EvmWalletProvidersProvider = observer(({ agreementsNote, children, network, recentMetaStorageKey, onConnect, }) => {
|
|
14
14
|
const walletService = useEvmWalletService();
|
|
15
|
-
const [recentMeta, setRecentMeta] = useRecentConnectionMeta(recentMetaStorageKey);
|
|
16
15
|
const [error, setError] = React.useState(null);
|
|
17
16
|
const [connectingProvider, setConnectingProvider] = React.useState(null);
|
|
18
17
|
const connect = React.useCallback(async (providerConfig) => {
|
|
@@ -20,6 +19,7 @@ export const EvmWalletProvidersProvider = observer(({ agreementsNote, children,
|
|
|
20
19
|
setError(null);
|
|
21
20
|
setConnectingProvider(providerConfig);
|
|
22
21
|
const prevConnector = walletService.connector;
|
|
22
|
+
const recentMeta = getRecentConnectionMeta(recentMetaStorageKey);
|
|
23
23
|
// eslint-disable-next-line no-nested-ternary
|
|
24
24
|
const chainParams = network ?? (recentMeta?.chainId
|
|
25
25
|
? walletService.networks.find(_network => _network.chainId === recentMeta.chainId) ?? 1
|
|
@@ -30,7 +30,7 @@ export const EvmWalletProvidersProvider = observer(({ agreementsNote, children,
|
|
|
30
30
|
await prevConnector?.disconnect(true);
|
|
31
31
|
}
|
|
32
32
|
await onConnect?.(providerConfig.connector);
|
|
33
|
-
|
|
33
|
+
storeRecentConnectionMeta({
|
|
34
34
|
chainId: providerConfig.connector.chainId?.toString(),
|
|
35
35
|
disconnected: false,
|
|
36
36
|
providerId: providerConfig.id,
|
|
@@ -41,7 +41,7 @@ export const EvmWalletProvidersProvider = observer(({ agreementsNote, children,
|
|
|
41
41
|
catch (e) {
|
|
42
42
|
setError(e);
|
|
43
43
|
}
|
|
44
|
-
}, [network, onConnect,
|
|
44
|
+
}, [network, onConnect, recentMetaStorageKey, walletService]);
|
|
45
45
|
const reset = React.useCallback(() => {
|
|
46
46
|
setError(null);
|
|
47
47
|
setConnectingProvider(null);
|
|
@@ -3,14 +3,13 @@ import { useContext } from '@broxus/react-uikit';
|
|
|
3
3
|
import { reaction } from 'mobx';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { EvmWalletProvidersProvider } from '../context/EvmWalletProvidersContext';
|
|
6
|
-
import { getRecentConnectionMeta,
|
|
6
|
+
import { getRecentConnectionMeta, storeRecentConnectionMeta } from '../hooks';
|
|
7
7
|
import { EvmWalletService } from '../services';
|
|
8
8
|
export const EvmWalletServiceContext = React.createContext(null);
|
|
9
9
|
export function useEvmWalletService() {
|
|
10
10
|
return useContext(EvmWalletServiceContext);
|
|
11
11
|
}
|
|
12
12
|
export function EvmWalletServiceProvider({ agreementsNote, children, params, recentMetaStorageKey, wallet, }) {
|
|
13
|
-
const [, setRecentMeta] = useRecentConnectionMeta(recentMetaStorageKey);
|
|
14
13
|
const context = React.useMemo(() => {
|
|
15
14
|
if (wallet instanceof EvmWalletService) {
|
|
16
15
|
return wallet;
|
|
@@ -20,9 +19,9 @@ export function EvmWalletServiceProvider({ agreementsNote, children, params, rec
|
|
|
20
19
|
React.useEffect(() => reaction(() => context.chainId, chainId => {
|
|
21
20
|
if (chainId) {
|
|
22
21
|
const recentMeta = getRecentConnectionMeta(recentMetaStorageKey);
|
|
23
|
-
|
|
22
|
+
storeRecentConnectionMeta({ ...recentMeta, chainId: chainId.toString() }, recentMetaStorageKey);
|
|
24
23
|
}
|
|
25
|
-
}, { delay: 10, fireImmediately: context.isReady }), [context, recentMetaStorageKey
|
|
24
|
+
}, { delay: 10, fireImmediately: context.isReady }), [context, recentMetaStorageKey]);
|
|
26
25
|
return (React.createElement(EvmWalletServiceContext.Provider, { value: context },
|
|
27
26
|
React.createElement(EvmWalletProvidersProvider, { agreementsNote: agreementsNote, recentMetaStorageKey: recentMetaStorageKey }, children)));
|
|
28
27
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { debug, isBrowser, storage } from '@broxus/js-utils';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { EVM_RECENT_CONNECTION } from '../constants';
|
|
4
|
+
import { useEvmWalletProviders } from '../context';
|
|
4
5
|
import { EthereumConnectionType } from '../types';
|
|
5
6
|
function isRecentConnectionMeta(value) {
|
|
6
7
|
const meta = { providerId: value.providerId, type: value.type };
|
|
@@ -32,7 +33,8 @@ export function getRecentConnectionMeta(storageKey = EVM_RECENT_CONNECTION) {
|
|
|
32
33
|
return undefined;
|
|
33
34
|
}
|
|
34
35
|
export function useRecentConnectionMeta(storageKey = EVM_RECENT_CONNECTION) {
|
|
35
|
-
const
|
|
36
|
+
const walletProviders = useEvmWalletProviders();
|
|
37
|
+
const [meta, setMeta] = React.useState(getRecentConnectionMeta(walletProviders.recentMetaStorageKey || storageKey));
|
|
36
38
|
React.useEffect(() => {
|
|
37
39
|
const onStorage = (event) => {
|
|
38
40
|
if (event.key === storageKey && event.newValue) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@broxus/evm-connect",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.7",
|
|
4
4
|
"description": "Ethereum wallets connector.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
"web3-types": "^1.x",
|
|
97
97
|
"web3-utils": "^4.x"
|
|
98
98
|
},
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "ce82ec3a52cf959110c873959c6615b8733070c9"
|
|
100
100
|
}
|