@reef-knot/web3-react 1.13.0 → 2.0.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.
Files changed (67) hide show
  1. package/README.md +4 -109
  2. package/dist/_virtual/_tslib.js +1 -13
  3. package/dist/helpers/index.d.ts +1 -3
  4. package/dist/helpers/index.d.ts.map +1 -1
  5. package/dist/helpers/index.js +2 -4
  6. package/dist/helpers/providerDetectors.d.ts +0 -28
  7. package/dist/helpers/providerDetectors.d.ts.map +1 -1
  8. package/dist/helpers/providerDetectors.js +6 -114
  9. package/dist/helpers/{ua.d.ts → userAgents.d.ts} +1 -6
  10. package/dist/helpers/userAgents.d.ts.map +1 -0
  11. package/dist/helpers/userAgents.js +11 -0
  12. package/dist/hooks/index.d.ts +0 -3
  13. package/dist/hooks/index.d.ts.map +1 -1
  14. package/dist/hooks/useConnectorError.js +1 -1
  15. package/dist/hooks/useConnectorInfo.d.ts +1 -6
  16. package/dist/hooks/useConnectorInfo.d.ts.map +1 -1
  17. package/dist/hooks/useConnectorInfo.js +10 -55
  18. package/dist/hooks/useDisconnect.d.ts +1 -1
  19. package/dist/hooks/useDisconnect.d.ts.map +1 -1
  20. package/dist/hooks/useDisconnect.js +5 -17
  21. package/dist/hooks/useSupportedChains.d.ts.map +1 -1
  22. package/dist/hooks/useSupportedChains.js +3 -27
  23. package/dist/hooks/useWeb3.d.ts +14 -2
  24. package/dist/hooks/useWeb3.d.ts.map +1 -1
  25. package/dist/hooks/useWeb3.js +25 -13
  26. package/dist/index.d.ts +0 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +0 -9
  29. package/package.json +6 -24
  30. package/dist/constants/connectors.d.ts +0 -22
  31. package/dist/constants/connectors.d.ts.map +0 -1
  32. package/dist/constants/connectors.js +0 -25
  33. package/dist/constants/index.d.ts +0 -4
  34. package/dist/constants/index.d.ts.map +0 -1
  35. package/dist/constants/storage.d.ts +0 -2
  36. package/dist/constants/storage.d.ts.map +0 -1
  37. package/dist/constants/storage.js +0 -3
  38. package/dist/constants/web3.d.ts +0 -2
  39. package/dist/constants/web3.d.ts.map +0 -1
  40. package/dist/constants/web3.js +0 -3
  41. package/dist/context/connectors.d.ts +0 -22
  42. package/dist/context/connectors.d.ts.map +0 -1
  43. package/dist/context/connectors.js +0 -41
  44. package/dist/context/index.d.ts +0 -5
  45. package/dist/context/index.d.ts.map +0 -1
  46. package/dist/context/web3.d.ts +0 -16
  47. package/dist/context/web3.d.ts.map +0 -1
  48. package/dist/context/web3.js +0 -127
  49. package/dist/helpers/isUrl.d.ts +0 -2
  50. package/dist/helpers/isUrl.d.ts.map +0 -1
  51. package/dist/helpers/isUrl.js +0 -6
  52. package/dist/helpers/openWindow.d.ts +0 -2
  53. package/dist/helpers/openWindow.d.ts.map +0 -1
  54. package/dist/helpers/openWindow.js +0 -6
  55. package/dist/helpers/ua.d.ts.map +0 -1
  56. package/dist/helpers/ua.js +0 -20
  57. package/dist/hooks/types.d.ts +0 -4
  58. package/dist/hooks/types.d.ts.map +0 -1
  59. package/dist/hooks/useAutoConnect.d.ts +0 -7
  60. package/dist/hooks/useAutoConnect.d.ts.map +0 -1
  61. package/dist/hooks/useAutoConnect.js +0 -132
  62. package/dist/hooks/useConnectorStorage.d.ts +0 -4
  63. package/dist/hooks/useConnectorStorage.d.ts.map +0 -1
  64. package/dist/hooks/useConnectorStorage.js +0 -7
  65. package/dist/hooks/useConnectors.d.ts +0 -3
  66. package/dist/hooks/useConnectors.d.ts.map +0 -1
  67. package/dist/hooks/useConnectors.js +0 -8
@@ -1,132 +0,0 @@
1
- import { __awaiter } from '../_virtual/_tslib.js';
2
- import { useRef, useContext, useEffect } from 'react';
3
- import { AcceptTermsModalContext, LS_KEY_TERMS_ACCEPTANCE } from '@reef-knot/core-react';
4
- import { useWeb3 } from './useWeb3.js';
5
- import { useConnectorStorage } from './useConnectorStorage.js';
6
- import { useConnectorInfo } from './useConnectorInfo.js';
7
- import { useDisconnect } from './useDisconnect.js';
8
- import { isDappBrowserProvider } from '../helpers/providerDetectors.js';
9
- import '../helpers/ua.js';
10
-
11
- var isTermsAccepted = () => {
12
- var _a;
13
- if (typeof window !== 'undefined') {
14
- return ((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(LS_KEY_TERMS_ACCEPTANCE)) === 'true';
15
- }
16
- return false;
17
- };
18
- var useAutoConnect = connectors => {
19
- useEagerConnector(connectors);
20
- useSaveConnectorToLS();
21
- useDeleteConnectorFromLS();
22
- useWatchConnectorInLS();
23
- };
24
- var useEagerConnector = connectors => {
25
- var {
26
- active,
27
- activate
28
- } = useWeb3();
29
- var [savedConnector] = useConnectorStorage();
30
- var tried = useRef(false);
31
- var {
32
- isConnectedViaWagmi
33
- } = useConnectorInfo();
34
- var {
35
- gnosis,
36
- ledgerlive,
37
- injected
38
- } = connectors;
39
- var {
40
- acceptTermsModal
41
- } = useContext(AcceptTermsModalContext);
42
- useEffect(() => {
43
- if (isConnectedViaWagmi || tried.current || active) return;
44
- void (() => __awaiter(void 0, void 0, void 0, function* () {
45
- var _a, _b;
46
- tried.current = true;
47
- var isLedgerApp = ledgerlive === null || ledgerlive === void 0 ? void 0 : ledgerlive.isLedgerApp(); // Ledger Live iframe
48
- var isSafeApp = yield gnosis === null || gnosis === void 0 ? void 0 : gnosis.isSafeApp(); // Gnosis iframe
49
- var isDappBrowser = isDappBrowserProvider();
50
- var shouldAutoConnectApp = isLedgerApp || isSafeApp || isDappBrowser;
51
- var connector = (() => {
52
- if (shouldAutoConnectApp) {
53
- if (isLedgerApp) return ledgerlive;
54
- if (isSafeApp && gnosis) return gnosis;
55
- if (isDappBrowser) return injected;
56
- }
57
- // Saved in LS
58
- var saved = savedConnector && connectors[savedConnector];
59
- if (saved) return saved;
60
- return null;
61
- })();
62
- if (!connector) return;
63
- var connectWallet = () => __awaiter(void 0, void 0, void 0, function* () {
64
- var _c, _d, _e, _f;
65
- var error = undefined;
66
- try {
67
- yield activate(connector, undefined, true);
68
- } catch (e) {
69
- error = e;
70
- }
71
- if (shouldAutoConnectApp) {
72
- if (!isTermsAccepted() || error) {
73
- (_c = acceptTermsModal.setError) === null || _c === void 0 ? void 0 : _c.call(acceptTermsModal, error);
74
- (_d = acceptTermsModal.setVisible) === null || _d === void 0 ? void 0 : _d.call(acceptTermsModal, true);
75
- } else {
76
- (_e = acceptTermsModal.setVisible) === null || _e === void 0 ? void 0 : _e.call(acceptTermsModal, false);
77
- (_f = acceptTermsModal.setError) === null || _f === void 0 ? void 0 : _f.call(acceptTermsModal, undefined);
78
- }
79
- }
80
- });
81
- if (shouldAutoConnectApp && !isTermsAccepted()) {
82
- (_a = acceptTermsModal.setOnContinue) === null || _a === void 0 ? void 0 : _a.call(acceptTermsModal, () => connectWallet);
83
- (_b = acceptTermsModal.setVisible) === null || _b === void 0 ? void 0 : _b.call(acceptTermsModal, true);
84
- return;
85
- }
86
- yield connectWallet();
87
- }))();
88
- }, [activate, active, isConnectedViaWagmi, ledgerlive, gnosis, savedConnector, connectors, injected, acceptTermsModal]);
89
- };
90
- var useSaveConnectorToLS = () => {
91
- var [, saveConnector] = useConnectorStorage();
92
- var {
93
- isInjected,
94
- isDappBrowser,
95
- isConnectedViaWagmi
96
- } = useConnectorInfo();
97
- useEffect(() => {
98
- if (!isConnectedViaWagmi && isInjected && !isDappBrowser) return saveConnector('injected');
99
- }, [isInjected, isDappBrowser, saveConnector, isConnectedViaWagmi]);
100
- };
101
- var useDeleteConnectorFromLS = () => {
102
- var [, saveConnector] = useConnectorStorage();
103
- var {
104
- active
105
- } = useWeb3();
106
- var lastState = useRef(active);
107
- useEffect(() => {
108
- var isStateChanged = lastState.current !== active;
109
- var isDisconnected = !active;
110
- lastState.current = active;
111
- if (isStateChanged && isDisconnected) {
112
- saveConnector(null);
113
- }
114
- }, [active, saveConnector]);
115
- };
116
- var useWatchConnectorInLS = () => {
117
- var [savedConnector] = useConnectorStorage();
118
- var {
119
- disconnect
120
- } = useDisconnect();
121
- var lastConnector = useRef(savedConnector);
122
- useEffect(() => {
123
- var isConnectorChanged = lastConnector.current !== savedConnector;
124
- var isDisconnected = !savedConnector;
125
- lastConnector.current = savedConnector;
126
- if (isConnectorChanged && isDisconnected) {
127
- disconnect === null || disconnect === void 0 ? void 0 : disconnect();
128
- }
129
- }, [savedConnector, disconnect]);
130
- };
131
-
132
- export { useAutoConnect, useDeleteConnectorFromLS, useEagerConnector, useSaveConnectorToLS, useWatchConnectorInLS };
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import { ConnectorsContextValue } from '../context';
3
- export declare const useConnectorStorage: () => [storedValue: keyof ConnectorsContextValue | null, setValue: import("react").Dispatch<import("react").SetStateAction<keyof ConnectorsContextValue | null>>];
4
- //# sourceMappingURL=useConnectorStorage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useConnectorStorage.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnectorStorage.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,mBAAmB,mKAI7B,CAAC"}
@@ -1,7 +0,0 @@
1
- import { useLocalStorage } from '@lido-sdk/react';
2
- import { STORAGE_CONNECTOR_KEY } from '../constants/storage.js';
3
- import '../constants/connectors.js';
4
-
5
- var useConnectorStorage = () => useLocalStorage(STORAGE_CONNECTOR_KEY, null);
6
-
7
- export { useConnectorStorage };
@@ -1,3 +0,0 @@
1
- import { ConnectorsContextValue } from '../context/connectors';
2
- export declare const useConnectors: () => ConnectorsContextValue;
3
- //# sourceMappingURL=useConnectors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useConnectors.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnectors.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,aAAa,QAAO,sBAEhC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { useContext } from 'react';
2
- import { ConnectorsContext } from '../context/connectors.js';
3
-
4
- var useConnectors = () => {
5
- return useContext(ConnectorsContext);
6
- };
7
-
8
- export { useConnectors };