@0xmonaco/react 0.0.0-develop-20260202150339 → 0.0.0-develop-20260202185041
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonacoProvider.d.ts","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAwB,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MonacoProvider.d.ts","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAwB,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAalG,eAAO,MAAM,cAAc,GAAI,uGAAuG,mBAAmB,4CA+IxJ,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,kBAQnC,CAAC"}
|
|
@@ -2,20 +2,46 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { MonacoSDK } from "@0xmonaco/core";
|
|
3
3
|
import { createContext, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { useTokenLifecycle } from "../hooks";
|
|
5
|
-
import { loadAuthState } from "../utils";
|
|
5
|
+
import { clearAuthState, loadAuthState } from "../utils";
|
|
6
6
|
import { TradeFeedProvider } from "./TradeFeedProvider";
|
|
7
7
|
import { AuthenticationStatus } from "./types";
|
|
8
8
|
const MonacoContext = createContext(null);
|
|
9
|
+
const normalizeUrl = (url) => {
|
|
10
|
+
try {
|
|
11
|
+
const parsed = new URL(url);
|
|
12
|
+
return parsed.href.replace(/\/$/, '');
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return url;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
9
18
|
export const MonacoProvider = ({ children, clientId, network, seiRpcUrl, wsUrl, walletClient, tokenLifecycle: tokenLifecycleConfig }) => {
|
|
10
19
|
const [sdk, setSdk] = useState(null);
|
|
11
20
|
const [error, setError] = useState(null);
|
|
12
|
-
|
|
21
|
+
// Track previous network config to detect actual changes vs initial mount
|
|
22
|
+
const prevNetworkRef = useRef(null);
|
|
13
23
|
// Global authentication state (shared across all components)
|
|
14
24
|
const [authenticationStatus, setAuthenticationStatus] = useState(AuthenticationStatus.UNAUTHENTICATED);
|
|
15
25
|
// Token lifecycle management
|
|
16
26
|
const tokenLifecycle = useTokenLifecycle(sdk, tokenLifecycleConfig);
|
|
27
|
+
// Ref to access tokenLifecycle.clearTokens without adding it to effect dependencies
|
|
28
|
+
// (tokenLifecycle depends on sdk, which would cause a circular dependency)
|
|
29
|
+
const tokenLifecycleRef = useRef(tokenLifecycle);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
tokenLifecycleRef.current = tokenLifecycle;
|
|
32
|
+
}, [tokenLifecycle]);
|
|
17
33
|
// Initialize SDK without wallet (for public APIs)
|
|
18
34
|
useEffect(() => {
|
|
35
|
+
const prevNetwork = prevNetworkRef.current;
|
|
36
|
+
const networkChanged = prevNetwork !== null && (prevNetwork.network !== network ||
|
|
37
|
+
normalizeUrl(prevNetwork.seiRpcUrl) !== normalizeUrl(seiRpcUrl) ||
|
|
38
|
+
normalizeUrl(prevNetwork.wsUrl) !== normalizeUrl(wsUrl));
|
|
39
|
+
// Only reset auth state when network actually changes, not on initial mount
|
|
40
|
+
if (networkChanged) {
|
|
41
|
+
setAuthenticationStatus(AuthenticationStatus.UNAUTHENTICATED);
|
|
42
|
+
tokenLifecycleRef.current.clearTokens(); // stop auto-refresh and drop in-memory secrets
|
|
43
|
+
clearAuthState();
|
|
44
|
+
}
|
|
19
45
|
try {
|
|
20
46
|
setError(null);
|
|
21
47
|
const sdkConfig = {
|
|
@@ -24,30 +50,35 @@ export const MonacoProvider = ({ children, clientId, network, seiRpcUrl, wsUrl,
|
|
|
24
50
|
wsUrl,
|
|
25
51
|
};
|
|
26
52
|
const newSdk = new MonacoSDK(sdkConfig);
|
|
27
|
-
sdkRef.current = newSdk;
|
|
28
53
|
setSdk(newSdk);
|
|
54
|
+
// Update ref only after successful SDK creation
|
|
55
|
+
prevNetworkRef.current = { network, seiRpcUrl, wsUrl };
|
|
29
56
|
}
|
|
30
57
|
catch (err) {
|
|
31
58
|
const normalizedError = err instanceof Error ? err : new Error(String(err));
|
|
59
|
+
setSdk(null);
|
|
32
60
|
setError(normalizedError);
|
|
33
61
|
}
|
|
62
|
+
}, [network, seiRpcUrl, wsUrl]);
|
|
63
|
+
// Cleanup: disconnect WebSocket when SDK changes or unmounts
|
|
64
|
+
useEffect(() => {
|
|
34
65
|
return () => {
|
|
35
|
-
|
|
66
|
+
sdk?.ws.disconnect();
|
|
36
67
|
};
|
|
37
|
-
}, [
|
|
38
|
-
// Update wallet client when it changes
|
|
68
|
+
}, [sdk]);
|
|
69
|
+
// Update wallet client when it changes or when SDK is recreated (e.g., network change)
|
|
39
70
|
useEffect(() => {
|
|
40
|
-
if (!
|
|
71
|
+
if (!sdk || !walletClient)
|
|
41
72
|
return;
|
|
42
73
|
try {
|
|
43
|
-
|
|
74
|
+
sdk.setWalletClient(walletClient);
|
|
44
75
|
}
|
|
45
76
|
catch (err) {
|
|
46
77
|
const normalizedError = err instanceof Error ? err : new Error(String(err));
|
|
47
78
|
setError(normalizedError);
|
|
48
79
|
}
|
|
49
|
-
}, [walletClient]);
|
|
50
|
-
// Restore cached tokens when
|
|
80
|
+
}, [sdk, walletClient]);
|
|
81
|
+
// Restore cached tokens when SDK changes (including on mount)
|
|
51
82
|
useEffect(() => {
|
|
52
83
|
if (!sdk)
|
|
53
84
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonacoProvider.js","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"MonacoProvider.js","sourceRoot":"","sources":["../../src/provider/MonacoProvider.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xmonaco/react",
|
|
3
|
-
"version": "0.0.0-develop-
|
|
3
|
+
"version": "0.0.0-develop-20260202185041",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"lint": "eslint src --ext .ts,.tsx"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@0xmonaco/core": "0.0.0-develop-
|
|
19
|
-
"@0xmonaco/types": "0.0.0-develop-
|
|
18
|
+
"@0xmonaco/core": "0.0.0-develop-20260202185041",
|
|
19
|
+
"@0xmonaco/types": "0.0.0-develop-20260202185041"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/react": "^19.1.12",
|