@reef-knot/web3-react 1.13.1 → 2.1.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/README.md +4 -109
- package/dist/_virtual/_tslib.js +1 -13
- package/dist/helpers/index.d.ts +1 -3
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +2 -4
- package/dist/helpers/providerDetectors.d.ts +0 -28
- package/dist/helpers/providerDetectors.d.ts.map +1 -1
- package/dist/helpers/providerDetectors.js +6 -114
- package/dist/helpers/unsupportedChainError.d.ts +4 -2
- package/dist/helpers/unsupportedChainError.d.ts.map +1 -1
- package/dist/helpers/unsupportedChainError.js +7 -13
- package/dist/helpers/{ua.d.ts → userAgents.d.ts} +1 -6
- package/dist/helpers/userAgents.d.ts.map +1 -0
- package/dist/helpers/userAgents.js +11 -0
- package/dist/hooks/index.d.ts +0 -3
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useConnectorError.d.ts.map +1 -1
- package/dist/hooks/useConnectorError.js +5 -6
- package/dist/hooks/useConnectorInfo.d.ts +3 -6
- package/dist/hooks/useConnectorInfo.d.ts.map +1 -1
- package/dist/hooks/useConnectorInfo.js +12 -56
- package/dist/hooks/useDisconnect.d.ts +7 -1
- package/dist/hooks/useDisconnect.d.ts.map +1 -1
- package/dist/hooks/useDisconnect.js +11 -17
- package/dist/hooks/useSupportedChains.d.ts.map +1 -1
- package/dist/hooks/useSupportedChains.js +3 -27
- package/dist/hooks/useWeb3.d.ts +14 -2
- package/dist/hooks/useWeb3.d.ts.map +1 -1
- package/dist/hooks/useWeb3.js +25 -13
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -9
- package/package.json +6 -24
- package/dist/constants/connectors.d.ts +0 -22
- package/dist/constants/connectors.d.ts.map +0 -1
- package/dist/constants/connectors.js +0 -25
- package/dist/constants/index.d.ts +0 -4
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/storage.d.ts +0 -2
- package/dist/constants/storage.d.ts.map +0 -1
- package/dist/constants/storage.js +0 -3
- package/dist/constants/web3.d.ts +0 -2
- package/dist/constants/web3.d.ts.map +0 -1
- package/dist/constants/web3.js +0 -3
- package/dist/context/connectors.d.ts +0 -22
- package/dist/context/connectors.d.ts.map +0 -1
- package/dist/context/connectors.js +0 -41
- package/dist/context/index.d.ts +0 -5
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/web3.d.ts +0 -16
- package/dist/context/web3.d.ts.map +0 -1
- package/dist/context/web3.js +0 -127
- package/dist/helpers/isUrl.d.ts +0 -2
- package/dist/helpers/isUrl.d.ts.map +0 -1
- package/dist/helpers/isUrl.js +0 -6
- package/dist/helpers/openWindow.d.ts +0 -2
- package/dist/helpers/openWindow.d.ts.map +0 -1
- package/dist/helpers/openWindow.js +0 -6
- package/dist/helpers/ua.d.ts.map +0 -1
- package/dist/helpers/ua.js +0 -20
- package/dist/hooks/types.d.ts +0 -4
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/hooks/useAutoConnect.d.ts +0 -7
- package/dist/hooks/useAutoConnect.d.ts.map +0 -1
- package/dist/hooks/useAutoConnect.js +0 -132
- package/dist/hooks/useConnectorStorage.d.ts +0 -4
- package/dist/hooks/useConnectorStorage.d.ts.map +0 -1
- package/dist/hooks/useConnectorStorage.js +0 -7
- package/dist/hooks/useConnectors.d.ts +0 -3
- package/dist/hooks/useConnectors.d.ts.map +0 -1
- package/dist/hooks/useConnectors.js +0 -8
|
@@ -1,40 +1,16 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
2
|
import { getNetwork } from '@ethersproject/providers';
|
|
3
3
|
import { useNetwork } from 'wagmi';
|
|
4
|
-
import { useWeb3React, UnsupportedChainIdError } from '@web3-react/core';
|
|
5
4
|
|
|
6
|
-
var STABLE_ARRAY = [];
|
|
7
5
|
var useSupportedChains = () => {
|
|
8
|
-
var supportedIds = STABLE_ARRAY;
|
|
9
|
-
var isUnsupported;
|
|
10
|
-
// legacy web3-react data
|
|
11
|
-
var {
|
|
12
|
-
error,
|
|
13
|
-
connector
|
|
14
|
-
} = useWeb3React();
|
|
15
|
-
// wagmi data
|
|
16
6
|
var {
|
|
17
7
|
chain,
|
|
18
8
|
chains
|
|
19
9
|
} = useNetwork();
|
|
20
|
-
var
|
|
21
|
-
// add chain ids from legacy web3-react connector
|
|
22
|
-
if (connector === null || connector === void 0 ? void 0 : connector.supportedChainIds) {
|
|
23
|
-
supportedIds = connector.supportedChainIds;
|
|
24
|
-
}
|
|
25
|
-
// add wagmi chain ids too
|
|
26
|
-
if (wagmiSupportedChainIds.length > 0) {
|
|
27
|
-
supportedIds = [...supportedIds, ...wagmiSupportedChainIds];
|
|
28
|
-
supportedIds = [...new Set(supportedIds)]; // deduplicate ids
|
|
29
|
-
}
|
|
30
|
-
|
|
10
|
+
var isUnsupported = !!(chain === null || chain === void 0 ? void 0 : chain.unsupported);
|
|
31
11
|
var supportedChains = useMemo(() => {
|
|
32
|
-
return
|
|
33
|
-
}, [
|
|
34
|
-
// legacy web3-react check
|
|
35
|
-
isUnsupported = error instanceof UnsupportedChainIdError;
|
|
36
|
-
// wagmi check
|
|
37
|
-
isUnsupported = isUnsupported || !!(chain === null || chain === void 0 ? void 0 : chain.unsupported);
|
|
12
|
+
return chains.map(c => getNetwork(c.id));
|
|
13
|
+
}, [chains]);
|
|
38
14
|
return {
|
|
39
15
|
isUnsupported,
|
|
40
16
|
supportedChains
|
package/dist/hooks/useWeb3.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface Web3ReactManagerFunctions {
|
|
2
|
+
activate: (connector: undefined, // AbstractConnector changed to undefined here
|
|
3
|
+
onError?: (error: Error) => void, throwErrors?: boolean) => Promise<void>;
|
|
4
|
+
setError: (error: Error) => void;
|
|
5
|
+
deactivate: () => void;
|
|
6
|
+
}
|
|
7
|
+
export interface Web3ReactContextInterface<T = any> extends Web3ReactManagerFunctions {
|
|
8
|
+
connector?: undefined;
|
|
9
|
+
library?: T;
|
|
10
|
+
chainId?: number;
|
|
11
|
+
account?: null | string;
|
|
12
|
+
active: boolean;
|
|
13
|
+
error?: Error;
|
|
14
|
+
}
|
|
3
15
|
export declare function useWeb3<T = any>(_key?: string): Web3ReactContextInterface<T>;
|
|
4
16
|
//# sourceMappingURL=useWeb3.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useWeb3.d.ts","sourceRoot":"","sources":["../../src/hooks/useWeb3.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,CACR,SAAS,EAAE,SAAS,EAAE,8CAA8C;IACpE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,WAAW,CAAC,EAAE,OAAO,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,GAAG,CAChD,SAAQ,yBAAyB;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAID,wBAAgB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAkD5E"}
|
package/dist/hooks/useWeb3.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import { useWeb3React } from '@web3-react/core';
|
|
2
|
-
export { UnsupportedChainIdError } from '@web3-react/core';
|
|
3
1
|
import { useAccount, useNetwork, useConnect } from 'wagmi';
|
|
4
2
|
import { useSupportedChains } from './useSupportedChains.js';
|
|
5
3
|
|
|
6
|
-
//
|
|
4
|
+
// This is a legacy hook for getting data and methods from web3-react library.
|
|
5
|
+
// Because of migration to wagmi library, this method now returns values from wagmi and is left here for backwards compatibility.
|
|
7
6
|
function useWeb3(_key) {
|
|
8
7
|
var _a;
|
|
9
|
-
var web3ReactData = useWeb3React();
|
|
10
8
|
var wagmiAccount = useAccount();
|
|
11
9
|
var wagmiNetwork = useNetwork();
|
|
12
10
|
var {
|
|
13
11
|
error: wagmiError
|
|
14
12
|
} = useConnect();
|
|
15
|
-
var account =
|
|
13
|
+
var account = wagmiAccount === null || wagmiAccount === void 0 ? void 0 : wagmiAccount.address;
|
|
16
14
|
// web3-react and wagmi have different logic around unsupported chains.
|
|
17
15
|
// If a chain is not supported:
|
|
18
16
|
// web3-react sets:
|
|
@@ -30,17 +28,31 @@ function useWeb3(_key) {
|
|
|
30
28
|
var {
|
|
31
29
|
isUnsupported
|
|
32
30
|
} = useSupportedChains();
|
|
33
|
-
var chainId = isUnsupported ? undefined :
|
|
34
|
-
var active = isUnsupported ? false :
|
|
35
|
-
// wagmi
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return Object.assign(Object.assign({}, web3ReactData), {
|
|
31
|
+
var chainId = isUnsupported ? undefined : (_a = wagmiNetwork === null || wagmiNetwork === void 0 ? void 0 : wagmiNetwork.chain) === null || _a === void 0 ? void 0 : _a.id;
|
|
32
|
+
var active = isUnsupported ? false : wagmiAccount === null || wagmiAccount === void 0 ? void 0 : wagmiAccount.isConnected;
|
|
33
|
+
// wagmi error can be null, but historically we need `Error | undefined` here
|
|
34
|
+
var error = wagmiError || undefined;
|
|
35
|
+
return {
|
|
39
36
|
chainId,
|
|
40
37
|
account,
|
|
41
38
|
active,
|
|
42
|
-
error
|
|
43
|
-
|
|
39
|
+
error,
|
|
40
|
+
// Web3Provider from ethers.js, we pass it to Web3ReactProvider via getLibrary()
|
|
41
|
+
library: undefined,
|
|
42
|
+
// AbstractConnector from @web3-react, used by @reef-knot/web3-react only for
|
|
43
|
+
// useDisconnect, useConnectorInfo and useSupportedChains
|
|
44
|
+
connector: undefined,
|
|
45
|
+
activate: () => {
|
|
46
|
+
console.error('"activate" method is deprecated and does nothing.');
|
|
47
|
+
return Promise.resolve();
|
|
48
|
+
},
|
|
49
|
+
setError: () => {
|
|
50
|
+
console.error('"setError" method is deprecated and does nothing.');
|
|
51
|
+
},
|
|
52
|
+
deactivate: () => {
|
|
53
|
+
console.error('"deactivate" method is deprecated and does nothing.');
|
|
54
|
+
}
|
|
55
|
+
};
|
|
44
56
|
}
|
|
45
57
|
|
|
46
58
|
export { useWeb3 };
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
export { POLLING_INTERVAL } from './constants/web3.js';
|
|
2
|
-
export { STORAGE_CONNECTOR_KEY } from './constants/storage.js';
|
|
3
|
-
export { CONNECTOR_NAMES, PROVIDER_NAMES } from './constants/connectors.js';
|
|
4
|
-
export { default as ProviderWeb3 } from './context/web3.js';
|
|
5
|
-
export { ConnectorsContext, default as ProviderConnectors } from './context/connectors.js';
|
|
6
|
-
export { useAutoConnect, useDeleteConnectorFromLS, useEagerConnector, useSaveConnectorToLS, useWatchConnectorInLS } from './hooks/useAutoConnect.js';
|
|
7
1
|
export { useConnectorInfo } from './hooks/useConnectorInfo.js';
|
|
8
|
-
export { useConnectors } from './hooks/useConnectors.js';
|
|
9
|
-
export { useConnectorStorage } from './hooks/useConnectorStorage.js';
|
|
10
2
|
export { useDisconnect, useForceDisconnect } from './hooks/useDisconnect.js';
|
|
11
3
|
export { useSupportedChains } from './hooks/useSupportedChains.js';
|
|
12
4
|
export { useWeb3 } from './hooks/useWeb3.js';
|
|
13
5
|
export { useConnectorError } from './hooks/useConnectorError.js';
|
|
14
6
|
import * as index from './helpers/index.js';
|
|
15
7
|
export { index as helpers };
|
|
16
|
-
export { UnsupportedChainIdError } from '@web3-react/core';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reef-knot/web3-react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -46,43 +46,25 @@
|
|
|
46
46
|
"@babel/preset-react": "7.18.6",
|
|
47
47
|
"@babel/preset-typescript": "7.18.6",
|
|
48
48
|
"@ethersproject/providers": "^5.7.2",
|
|
49
|
-
"@
|
|
50
|
-
"@
|
|
51
|
-
"@lido-sdk/react": "^2.0.2",
|
|
52
|
-
"@reef-knot/core-react": "^1.8.1",
|
|
53
|
-
"@reef-knot/ledger-connector": "^2.0.0",
|
|
49
|
+
"@reef-knot/core-react": "^2.1.0",
|
|
50
|
+
"@reef-knot/ledger-connector": "^3.0.0",
|
|
54
51
|
"@testing-library/react": "^12.1.5",
|
|
55
52
|
"@testing-library/react-hooks": "^7.0.2",
|
|
56
|
-
"@types/jest": "^29.4.0",
|
|
57
53
|
"@types/react": "18.2.45",
|
|
58
54
|
"@types/ua-parser-js": "^0.7.36",
|
|
59
|
-
"babel-jest": "^29.3.1",
|
|
60
55
|
"babel-loader": "8.2.2",
|
|
61
56
|
"babel-plugin-styled-components": "1.13.2",
|
|
62
57
|
"eslint-config-custom": "*",
|
|
63
|
-
"jest": "^29.4.3",
|
|
64
|
-
"jest-environment-jsdom": "^29.4.3",
|
|
65
58
|
"react": "18.2.0",
|
|
66
59
|
"ua-parser-js": "1.0.33"
|
|
67
60
|
},
|
|
68
61
|
"dependencies": {
|
|
69
|
-
"
|
|
70
|
-
"@ledgerhq/iframe-provider": "0.4.2",
|
|
71
|
-
"@web3-react/abstract-connector": "6.0.7",
|
|
72
|
-
"@web3-react/core": "6.1.9",
|
|
73
|
-
"@web3-react/injected-connector": "6.0.7",
|
|
74
|
-
"@web3-react/walletlink-connector": "6.2.14",
|
|
75
|
-
"swr": "1.3.0",
|
|
76
|
-
"tiny-invariant": "^1.1.0",
|
|
77
|
-
"tiny-warning": "^1.0.3"
|
|
62
|
+
"tiny-invariant": "^1.1.0"
|
|
78
63
|
},
|
|
79
64
|
"peerDependencies": {
|
|
80
65
|
"@ethersproject/providers": "5",
|
|
81
|
-
"@
|
|
82
|
-
"@
|
|
83
|
-
"@lido-sdk/react": "^2.0.2",
|
|
84
|
-
"@reef-knot/core-react": "^1.4.3",
|
|
85
|
-
"@reef-knot/ledger-connector": "^2.0.0",
|
|
66
|
+
"@reef-knot/core-react": "^2.0.0",
|
|
67
|
+
"@reef-knot/ledger-connector": "^3.0.0",
|
|
86
68
|
"react": ">=18",
|
|
87
69
|
"ua-parser-js": "^1.0.33",
|
|
88
70
|
"wagmi": "^0.12.19"
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export declare enum PROVIDER_NAMES {
|
|
2
|
-
GNOSIS = "Gnosis",
|
|
3
|
-
METAMASK = "MetaMask",
|
|
4
|
-
IM_TOKEN = "imToken",
|
|
5
|
-
TRUST = "Trust",
|
|
6
|
-
WALLET_LINK = "WalletLink",
|
|
7
|
-
COINBASE = "Coinbase",
|
|
8
|
-
INJECTED = "Injected",
|
|
9
|
-
LEDGER_HQ_LIVE = "Ledger Live",
|
|
10
|
-
LEDGER = "Ledger",
|
|
11
|
-
XDEFI = "XDEFI",
|
|
12
|
-
ZERION = "Zerion"
|
|
13
|
-
}
|
|
14
|
-
export declare enum CONNECTOR_NAMES {
|
|
15
|
-
GNOSIS = "gnosis",
|
|
16
|
-
WALLET_LINK = "walletlink",
|
|
17
|
-
COINBASE = "coinbase",
|
|
18
|
-
INJECTED = "injected",
|
|
19
|
-
LEDGER_HQ_LIVE = "ledgerlive",
|
|
20
|
-
LEDGER = "ledger"
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=connectors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/constants/connectors.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,YAAY;IACpB,KAAK,UAAU;IACf,WAAW,eAAe;IAC1B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,gBAAgB;IAC9B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,eAAe;IAC1B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,eAAe;IAC7B,MAAM,WAAW;CAClB"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
var PROVIDER_NAMES;
|
|
2
|
-
(function (PROVIDER_NAMES) {
|
|
3
|
-
PROVIDER_NAMES["GNOSIS"] = "Gnosis";
|
|
4
|
-
PROVIDER_NAMES["METAMASK"] = "MetaMask";
|
|
5
|
-
PROVIDER_NAMES["IM_TOKEN"] = "imToken";
|
|
6
|
-
PROVIDER_NAMES["TRUST"] = "Trust";
|
|
7
|
-
PROVIDER_NAMES["WALLET_LINK"] = "WalletLink";
|
|
8
|
-
PROVIDER_NAMES["COINBASE"] = "Coinbase";
|
|
9
|
-
PROVIDER_NAMES["INJECTED"] = "Injected";
|
|
10
|
-
PROVIDER_NAMES["LEDGER_HQ_LIVE"] = "Ledger Live";
|
|
11
|
-
PROVIDER_NAMES["LEDGER"] = "Ledger";
|
|
12
|
-
PROVIDER_NAMES["XDEFI"] = "XDEFI";
|
|
13
|
-
PROVIDER_NAMES["ZERION"] = "Zerion";
|
|
14
|
-
})(PROVIDER_NAMES || (PROVIDER_NAMES = {}));
|
|
15
|
-
var CONNECTOR_NAMES;
|
|
16
|
-
(function (CONNECTOR_NAMES) {
|
|
17
|
-
CONNECTOR_NAMES["GNOSIS"] = "gnosis";
|
|
18
|
-
CONNECTOR_NAMES["WALLET_LINK"] = "walletlink";
|
|
19
|
-
CONNECTOR_NAMES["COINBASE"] = "coinbase";
|
|
20
|
-
CONNECTOR_NAMES["INJECTED"] = "injected";
|
|
21
|
-
CONNECTOR_NAMES["LEDGER_HQ_LIVE"] = "ledgerlive";
|
|
22
|
-
CONNECTOR_NAMES["LEDGER"] = "ledger";
|
|
23
|
-
})(CONNECTOR_NAMES || (CONNECTOR_NAMES = {}));
|
|
24
|
-
|
|
25
|
-
export { CONNECTOR_NAMES, PROVIDER_NAMES };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/constants/storage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,wBAAwB,CAAC"}
|
package/dist/constants/web3.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/constants/web3.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,QAAS,CAAC"}
|
package/dist/constants/web3.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { InjectedConnector } from '@web3-react/injected-connector';
|
|
3
|
-
import { SafeAppConnector } from '@gnosis.pm/safe-apps-web3-react';
|
|
4
|
-
import { CHAINS } from '@lido-sdk/constants';
|
|
5
|
-
import { LedgerHQFrameConnector } from '@reef-knot/ledger-connector';
|
|
6
|
-
export interface ConnectorsContextProps {
|
|
7
|
-
children?: React.ReactNode;
|
|
8
|
-
defaultChainId: CHAINS;
|
|
9
|
-
rpc: Record<number, string>;
|
|
10
|
-
appName?: string;
|
|
11
|
-
appLogoUrl?: string;
|
|
12
|
-
}
|
|
13
|
-
export type ConnectorsContextValue = {
|
|
14
|
-
injected: InjectedConnector;
|
|
15
|
-
ledgerlive: LedgerHQFrameConnector;
|
|
16
|
-
gnosis?: SafeAppConnector;
|
|
17
|
-
};
|
|
18
|
-
export type Connector = keyof ConnectorsContextValue;
|
|
19
|
-
export declare const ConnectorsContext: React.Context<ConnectorsContextValue>;
|
|
20
|
-
declare const _default: React.MemoExoticComponent<React.FC<ConnectorsContextProps>>;
|
|
21
|
-
export default _default;
|
|
22
|
-
//# sourceMappingURL=connectors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/context/connectors.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAIrE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,sBAAsB,CAAC;IACnC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,iBAAiB,uCAA8C,CAAC;;AAmC7E,wBAAoE"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import React, { memo, createContext, useMemo } from 'react';
|
|
2
|
-
import { InjectedConnector } from '@web3-react/injected-connector';
|
|
3
|
-
import { SafeAppConnector } from '@gnosis.pm/safe-apps-web3-react';
|
|
4
|
-
import { useSDK } from '@lido-sdk/react';
|
|
5
|
-
import { LedgerHQFrameConnector } from '@reef-knot/ledger-connector';
|
|
6
|
-
import { useAutoConnect } from '../hooks/useAutoConnect.js';
|
|
7
|
-
import { CONNECTOR_NAMES } from '../constants/connectors.js';
|
|
8
|
-
|
|
9
|
-
var ConnectorsContext = /*#__PURE__*/createContext({});
|
|
10
|
-
var ProviderConnectors = props => {
|
|
11
|
-
var {
|
|
12
|
-
children
|
|
13
|
-
} = props;
|
|
14
|
-
var {
|
|
15
|
-
supportedChainIds
|
|
16
|
-
} = useSDK();
|
|
17
|
-
var connectors = useMemo(() => ({
|
|
18
|
-
[CONNECTOR_NAMES.INJECTED]: new InjectedConnector({
|
|
19
|
-
supportedChainIds
|
|
20
|
-
}),
|
|
21
|
-
[CONNECTOR_NAMES.GNOSIS]: (() => {
|
|
22
|
-
try {
|
|
23
|
-
return new SafeAppConnector({
|
|
24
|
-
supportedChainIds
|
|
25
|
-
});
|
|
26
|
-
} catch (error) {
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
})(),
|
|
30
|
-
[CONNECTOR_NAMES.LEDGER_HQ_LIVE]: new LedgerHQFrameConnector({
|
|
31
|
-
supportedChainIds
|
|
32
|
-
})
|
|
33
|
-
}), [supportedChainIds]);
|
|
34
|
-
useAutoConnect(connectors);
|
|
35
|
-
return /*#__PURE__*/React.createElement(ConnectorsContext.Provider, {
|
|
36
|
-
value: connectors
|
|
37
|
-
}, children);
|
|
38
|
-
};
|
|
39
|
-
const ProviderConnectors$1 = /*#__PURE__*/memo(ProviderConnectors);
|
|
40
|
-
|
|
41
|
-
export { ConnectorsContext, ProviderConnectors$1 as default };
|
package/dist/context/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/context/web3.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { CHAINS } from '@lido-sdk/constants';
|
|
3
|
-
import { SWRConfiguration } from 'swr';
|
|
4
|
-
import { ConnectorsContextProps } from './connectors';
|
|
5
|
-
export interface ProviderWeb3Props extends ConnectorsContextProps {
|
|
6
|
-
children?: React.ReactNode;
|
|
7
|
-
defaultChainId: CHAINS;
|
|
8
|
-
supportedChainIds: CHAINS[];
|
|
9
|
-
swrConfig?: SWRConfiguration;
|
|
10
|
-
pollingInterval?: number;
|
|
11
|
-
walletconnectProjectId?: string;
|
|
12
|
-
onError?: (error: unknown) => void;
|
|
13
|
-
}
|
|
14
|
-
declare const _default: React.MemoExoticComponent<(props: ProviderWeb3Props) => React.JSX.Element>;
|
|
15
|
-
export default _default;
|
|
16
|
-
//# sourceMappingURL=web3.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/context/web3.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAOzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAGvC,OAA2B,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;IAC/D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;;AA6HD,wBAAkC"}
|
package/dist/context/web3.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { __rest, __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
-
import React, { memo, useState, useEffect } from 'react';
|
|
3
|
-
import invariant from 'tiny-invariant';
|
|
4
|
-
import { Web3Provider } from '@ethersproject/providers';
|
|
5
|
-
import { CHAINS } from '@lido-sdk/constants';
|
|
6
|
-
import { getStaticRpcBatchProvider } from '@lido-sdk/providers';
|
|
7
|
-
import { ProviderSDK as ProviderSDK$1 } from '@lido-sdk/react';
|
|
8
|
-
import { Web3ReactProvider, useWeb3React } from '@web3-react/core';
|
|
9
|
-
import { holesky, ReefKnot } from '@reef-knot/core-react';
|
|
10
|
-
import { useAccount } from 'wagmi';
|
|
11
|
-
import * as wagmiChains from 'wagmi/chains';
|
|
12
|
-
import { useWeb3 } from '../hooks/useWeb3.js';
|
|
13
|
-
import { POLLING_INTERVAL } from '../constants/web3.js';
|
|
14
|
-
import '../constants/connectors.js';
|
|
15
|
-
import '@gnosis.pm/safe-apps-web3-react';
|
|
16
|
-
import '@web3-react/injected-connector';
|
|
17
|
-
import '@web3-react/walletlink-connector';
|
|
18
|
-
import '@reef-knot/ledger-connector';
|
|
19
|
-
import '../helpers/ua.js';
|
|
20
|
-
import ProviderConnectors from './connectors.js';
|
|
21
|
-
|
|
22
|
-
function getLibrary(provider) {
|
|
23
|
-
var library = new Web3Provider(provider);
|
|
24
|
-
library.pollingInterval = POLLING_INTERVAL;
|
|
25
|
-
return library;
|
|
26
|
-
}
|
|
27
|
-
var ProviderSDK = props => {
|
|
28
|
-
var {
|
|
29
|
-
rpc,
|
|
30
|
-
defaultChainId,
|
|
31
|
-
supportedChainIds,
|
|
32
|
-
children,
|
|
33
|
-
pollingInterval = POLLING_INTERVAL
|
|
34
|
-
} = props,
|
|
35
|
-
rest = __rest(props, ["rpc", "defaultChainId", "supportedChainIds", "children", "pollingInterval"]);
|
|
36
|
-
var {
|
|
37
|
-
active: isConnectedViaWeb3React,
|
|
38
|
-
library
|
|
39
|
-
} = useWeb3React();
|
|
40
|
-
var {
|
|
41
|
-
chainId = defaultChainId,
|
|
42
|
-
account,
|
|
43
|
-
active
|
|
44
|
-
} = useWeb3();
|
|
45
|
-
var {
|
|
46
|
-
connector: connectorWagmi,
|
|
47
|
-
isConnected: isConnectedViaWagmi
|
|
48
|
-
} = useAccount();
|
|
49
|
-
var [providerWeb3, setProviderWeb3] = useState();
|
|
50
|
-
// Reset web3 provider if the provider was set previously,
|
|
51
|
-
// and currently no wallet is connected via wagmi or web3-react.
|
|
52
|
-
// Gets triggered on a wallet disconnection, for example.
|
|
53
|
-
if (!active && providerWeb3) {
|
|
54
|
-
setProviderWeb3(undefined);
|
|
55
|
-
}
|
|
56
|
-
// Switching providers between wagmi and web3-react.
|
|
57
|
-
// This code is neither clean nor efficient, but it will be deprecated after transition to wagmi is complete.
|
|
58
|
-
// useEffect is needed here because we are calling getProvider async method from wagmi,
|
|
59
|
-
// which can be taken as an external API
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
void (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
-
if (!providerWeb3 && connectorWagmi && isConnectedViaWagmi) {
|
|
63
|
-
// Set wagmi provider
|
|
64
|
-
var p = yield connectorWagmi.getProvider();
|
|
65
|
-
setProviderWeb3(getLibrary(p));
|
|
66
|
-
} else if (!providerWeb3 && library && isConnectedViaWeb3React) {
|
|
67
|
-
// Set web3-react provider
|
|
68
|
-
// Passing `library` as init value for useState does not work, but works like this:
|
|
69
|
-
setProviderWeb3(library);
|
|
70
|
-
}
|
|
71
|
-
}))();
|
|
72
|
-
}, [connectorWagmi, isConnectedViaWagmi, isConnectedViaWeb3React, library, providerWeb3]);
|
|
73
|
-
invariant(rpc[chainId], "RPC url for chain ".concat(chainId, " is not provided"));
|
|
74
|
-
invariant(rpc[CHAINS.Mainnet], 'RPC url for mainnet is not provided');
|
|
75
|
-
var providerRpc = getStaticRpcBatchProvider(chainId, rpc[chainId], 0, pollingInterval);
|
|
76
|
-
var providerMainnetRpc = getStaticRpcBatchProvider(CHAINS.Mainnet, rpc[CHAINS.Mainnet], 0, pollingInterval);
|
|
77
|
-
return (
|
|
78
|
-
/*#__PURE__*/
|
|
79
|
-
// @ts-expect-error Property children does not exist on type IntrinsicAttributes & SDKContextProps
|
|
80
|
-
React.createElement(ProviderSDK$1, Object.assign({
|
|
81
|
-
chainId: chainId,
|
|
82
|
-
supportedChainIds: supportedChainIds,
|
|
83
|
-
providerWeb3: providerWeb3,
|
|
84
|
-
providerRpc: providerRpc,
|
|
85
|
-
providerMainnetRpc: providerMainnetRpc,
|
|
86
|
-
account: account !== null && account !== void 0 ? account : undefined
|
|
87
|
-
}, rest), children)
|
|
88
|
-
);
|
|
89
|
-
};
|
|
90
|
-
var ProviderWeb3 = props => {
|
|
91
|
-
var {
|
|
92
|
-
children,
|
|
93
|
-
rpc,
|
|
94
|
-
walletconnectProjectId,
|
|
95
|
-
appName,
|
|
96
|
-
appLogoUrl
|
|
97
|
-
} = props,
|
|
98
|
-
sdkProps = __rest(props, ["children", "rpc", "walletconnectProjectId", "appName", "appLogoUrl"]);
|
|
99
|
-
var {
|
|
100
|
-
defaultChainId,
|
|
101
|
-
supportedChainIds
|
|
102
|
-
} = props;
|
|
103
|
-
var connectorsProps = {
|
|
104
|
-
rpc,
|
|
105
|
-
appName,
|
|
106
|
-
appLogoUrl,
|
|
107
|
-
defaultChainId
|
|
108
|
-
};
|
|
109
|
-
var wagmiChainsArray = Object.values(Object.assign(Object.assign({}, wagmiChains), {
|
|
110
|
-
holesky
|
|
111
|
-
}));
|
|
112
|
-
var supportedWagmiChains = wagmiChainsArray.filter(chain => supportedChainIds.includes(chain.id));
|
|
113
|
-
var defaultWagmiChain = wagmiChainsArray.find(chain => chain.id === defaultChainId) || wagmiChainsArray[0];
|
|
114
|
-
return /*#__PURE__*/React.createElement(Web3ReactProvider, {
|
|
115
|
-
getLibrary: getLibrary
|
|
116
|
-
}, /*#__PURE__*/React.createElement(ProviderSDK, Object.assign({
|
|
117
|
-
rpc: rpc
|
|
118
|
-
}, sdkProps), /*#__PURE__*/React.createElement(ReefKnot, {
|
|
119
|
-
rpc: rpc,
|
|
120
|
-
walletconnectProjectId: walletconnectProjectId,
|
|
121
|
-
chains: supportedWagmiChains,
|
|
122
|
-
defaultChain: defaultWagmiChain
|
|
123
|
-
}, /*#__PURE__*/React.createElement(ProviderConnectors, Object.assign({}, connectorsProps), children))));
|
|
124
|
-
};
|
|
125
|
-
const web3 = /*#__PURE__*/memo(ProviderWeb3);
|
|
126
|
-
|
|
127
|
-
export { web3 as default };
|
package/dist/helpers/isUrl.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isUrl.d.ts","sourceRoot":"","sources":["../../src/helpers/isUrl.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,OAAO,WAAW,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7C"}
|
package/dist/helpers/isUrl.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
var pattern = new RegExp('^' + '(?:(?:(?:https?|ftp):)?\\/\\/)' + '(?:\\S+(?::\\S*)?@)?' + '(?:' + '(?!(?:10|127)(?:\\.\\d{1,3}){3})' + '(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})' + '(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})' + '(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])' + '(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}' + '(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))' + '|' + '(?:' + '(?:' + '[a-z0-9\\u00a1-\\uffff]' + '[a-z0-9\\u00a1-\\uffff_-]{0,62}' + ')?' + '[a-z0-9\\u00a1-\\uffff]\\.' + ')+' + '(?:[a-z\\u00a1-\\uffff]{2,}\\.?)' + ')' + '(?::\\d{2,5})?' + '(?:[/?#]\\S*)?' + '$', 'i');
|
|
2
|
-
function isUrl (url) {
|
|
3
|
-
return pattern.test(url);
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export { isUrl as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openWindow.d.ts","sourceRoot":"","sources":["../../src/helpers/openWindow.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,IAIxC,CAAC"}
|
package/dist/helpers/ua.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ua.d.ts","sourceRoot":"","sources":["../../src/helpers/ua.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,MAAM,gCAAqB,CAAC;AACzC,eAAO,MAAM,OAAO,iCAAsB,CAAC;AAC3C,eAAO,MAAM,EAAE,4BAAiB,CAAC;AAEjC,eAAO,MAAM,KAAK,SAAoB,CAAC;AACvC,eAAO,MAAM,SAAS,SAAwB,CAAC;AAE/C,eAAO,MAAM,QAAQ,SAA2B,CAAC;AACjD,eAAO,MAAM,QAAQ,SAA2B,CAAC;AACjD,eAAO,MAAM,gBAAgB,SAAuB,CAAC;AAErD,eAAO,MAAM,SAAS,SAA6B,CAAC;AACpD,eAAO,MAAM,MAAM,SAA0B,CAAC;AAE9C,eAAO,MAAM,mBAAmB,QAAa,QAAQ,OAAO,CAEO,CAAC"}
|
package/dist/helpers/ua.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
-
import { UAParser } from 'ua-parser-js';
|
|
3
|
-
|
|
4
|
-
var parser = new UAParser();
|
|
5
|
-
var device = parser.getDevice();
|
|
6
|
-
var browser = parser.getBrowser();
|
|
7
|
-
var os = parser.getOS();
|
|
8
|
-
var isIOS = os.name === 'iOS';
|
|
9
|
-
var isAndroid = os.name === 'Android';
|
|
10
|
-
var isMobile = device.type === 'mobile';
|
|
11
|
-
var isTablet = device.type === 'tablet';
|
|
12
|
-
var isMobileOrTablet = isMobile || isTablet;
|
|
13
|
-
var isFirefox = browser.name === 'Firefox';
|
|
14
|
-
var isEdge = browser.name === 'Edge';
|
|
15
|
-
var checkIfBraveBrowser = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
-
// @ts-expect-error TS2339: Property 'brave' does not exist on type 'Navigator'.
|
|
17
|
-
return (navigator === null || navigator === void 0 ? void 0 : navigator.brave) && (yield navigator === null || navigator === void 0 ? void 0 : navigator.brave.isBrave()) || false;
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
export { browser, checkIfBraveBrowser, device, isAndroid, isEdge, isFirefox, isIOS, isMobile, isMobileOrTablet, isTablet, os };
|
package/dist/hooks/types.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB;IACE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GACD,SAAS,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ConnectorsContextValue } from '../context';
|
|
2
|
-
export declare const useAutoConnect: (connectors: ConnectorsContextValue) => void;
|
|
3
|
-
export declare const useEagerConnector: (connectors: ConnectorsContextValue) => void;
|
|
4
|
-
export declare const useSaveConnectorToLS: () => void;
|
|
5
|
-
export declare const useDeleteConnectorFromLS: () => void;
|
|
6
|
-
export declare const useWatchConnectorInLS: () => void;
|
|
7
|
-
//# sourceMappingURL=useAutoConnect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoConnect.d.ts","sourceRoot":"","sources":["../../src/hooks/useAutoConnect.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAUpD,eAAO,MAAM,cAAc,eAAgB,sBAAsB,SAKhE,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAgB,sBAAsB,SAuEnE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,IAQvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,IAgB3C,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,IAexC,CAAC"}
|