@pear-protocol/hyperliquid-sdk 0.0.60-beta.5 → 0.0.60-beta.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.js +16 -22
- package/dist/store/userDataStore.d.ts +2 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -55,6 +55,7 @@ const useUserData = create((set) => ({
|
|
|
55
55
|
accessToken: null,
|
|
56
56
|
refreshToken: null,
|
|
57
57
|
isAuthenticated: false,
|
|
58
|
+
isReady: false,
|
|
58
59
|
address: null,
|
|
59
60
|
tradeHistories: null,
|
|
60
61
|
rawOpenPositions: null,
|
|
@@ -66,6 +67,7 @@ const useUserData = create((set) => ({
|
|
|
66
67
|
setAccessToken: (token) => set({ accessToken: token }),
|
|
67
68
|
setRefreshToken: (token) => set({ refreshToken: token }),
|
|
68
69
|
setIsAuthenticated: (value) => set({ isAuthenticated: value }),
|
|
70
|
+
setIsReady: (value) => set({ isReady: value }),
|
|
69
71
|
setAddress: (address) => {
|
|
70
72
|
if (typeof window !== "undefined") {
|
|
71
73
|
if (address) {
|
|
@@ -87,6 +89,7 @@ const useUserData = create((set) => ({
|
|
|
87
89
|
accessToken: null,
|
|
88
90
|
refreshToken: null,
|
|
89
91
|
isAuthenticated: false,
|
|
92
|
+
isReady: false,
|
|
90
93
|
address: null,
|
|
91
94
|
tradeHistories: null,
|
|
92
95
|
rawOpenPositions: null,
|
|
@@ -7032,26 +7035,25 @@ function useAuth() {
|
|
|
7032
7035
|
throw new Error("useAuth must be used within a PearHyperliquidProvider");
|
|
7033
7036
|
}
|
|
7034
7037
|
const { apiBaseUrl, clientId } = context;
|
|
7035
|
-
const [isReady, setIsReady] = useState(false);
|
|
7036
7038
|
const accessToken = useUserData((s) => s.accessToken);
|
|
7037
7039
|
const refreshToken$1 = useUserData((s) => s.refreshToken);
|
|
7040
|
+
const isReady = useUserData((s) => s.isReady);
|
|
7041
|
+
const isAuthenticated = useUserData((s) => s.isAuthenticated);
|
|
7042
|
+
const address = useUserData((s) => s.address);
|
|
7038
7043
|
const setAccessToken = useUserData((s) => s.setAccessToken);
|
|
7039
7044
|
const setRefreshToken = useUserData((s) => s.setRefreshToken);
|
|
7040
|
-
const
|
|
7045
|
+
const setIsReady = useUserData((s) => s.setIsReady);
|
|
7041
7046
|
const setIsAuthenticated = useUserData((s) => s.setIsAuthenticated);
|
|
7042
|
-
const address = useUserData((s) => s.address);
|
|
7043
7047
|
const setAddress = useUserData((s) => s.setAddress);
|
|
7048
|
+
console.log({ sdkAddress: address });
|
|
7044
7049
|
useEffect(() => {
|
|
7045
7050
|
if (typeof window == "undefined") {
|
|
7046
7051
|
return;
|
|
7047
7052
|
}
|
|
7048
|
-
|
|
7049
|
-
const currentAddress = address;
|
|
7050
|
-
console.log({ currentAddress });
|
|
7051
|
-
if (currentAddress) {
|
|
7053
|
+
if (address) {
|
|
7052
7054
|
// If we already have an address in state, use it to load the session
|
|
7053
|
-
const accessTokenKey = `${
|
|
7054
|
-
const refreshTokenKey = `${
|
|
7055
|
+
const accessTokenKey = `${address}_accessToken`;
|
|
7056
|
+
const refreshTokenKey = `${address}_refreshToken`;
|
|
7055
7057
|
const storedAccessToken = localStorage.getItem(accessTokenKey);
|
|
7056
7058
|
const storedRefreshToken = localStorage.getItem(refreshTokenKey);
|
|
7057
7059
|
console.log({ storedAccessToken, storedRefreshToken });
|
|
@@ -7060,8 +7062,8 @@ function useAuth() {
|
|
|
7060
7062
|
setRefreshToken(storedRefreshToken);
|
|
7061
7063
|
setIsAuthenticated(true);
|
|
7062
7064
|
}
|
|
7063
|
-
setIsReady(true);
|
|
7064
7065
|
}
|
|
7066
|
+
setIsReady(true);
|
|
7065
7067
|
}, [address]);
|
|
7066
7068
|
useEffect(() => {
|
|
7067
7069
|
const cleanup = addAuthInterceptors({
|
|
@@ -7069,11 +7071,8 @@ function useAuth() {
|
|
|
7069
7071
|
getAccessToken: () => {
|
|
7070
7072
|
if (typeof window === "undefined")
|
|
7071
7073
|
return null;
|
|
7072
|
-
|
|
7073
|
-
|
|
7074
|
-
return null;
|
|
7075
|
-
const accessTokenKey = `${currentAddress}_accessToken`;
|
|
7076
|
-
return localStorage.getItem(accessTokenKey);
|
|
7074
|
+
// Read from Zustand state as single source of truth
|
|
7075
|
+
return useUserData.getState().accessToken;
|
|
7077
7076
|
},
|
|
7078
7077
|
refreshTokens: async () => {
|
|
7079
7078
|
const data = await refreshTokens();
|
|
@@ -7086,7 +7085,7 @@ function useAuth() {
|
|
|
7086
7085
|
return () => {
|
|
7087
7086
|
cleanup();
|
|
7088
7087
|
};
|
|
7089
|
-
}, [apiBaseUrl]);
|
|
7088
|
+
}, [apiBaseUrl, refreshTokens, logout$1]);
|
|
7090
7089
|
async function getEip712(address) {
|
|
7091
7090
|
const { data } = await getEIP712Message(apiBaseUrl, address, clientId);
|
|
7092
7091
|
return data;
|
|
@@ -7192,7 +7191,7 @@ const PearHyperliquidContext = createContext(undefined);
|
|
|
7192
7191
|
*/
|
|
7193
7192
|
const PearHyperliquidProvider = ({ children, apiBaseUrl = "https://hl-v2.pearprotocol.io", clientId = "PEARPROTOCOLUI", wsUrl = "wss://hl-v2.pearprotocol.io/ws", }) => {
|
|
7194
7193
|
const address = useUserData((s) => s.address);
|
|
7195
|
-
|
|
7194
|
+
useUserData((s) => s.setAddress);
|
|
7196
7195
|
const perpsMetaAssets = useHyperliquidData((state) => state.perpMetaAssets);
|
|
7197
7196
|
const setPerpMetaAssets = useHyperliquidData((state) => state.setPerpMetaAssets);
|
|
7198
7197
|
const setHip3DisplayToFull = useHyperliquidData((state) => state.setHip3DisplayToFull);
|
|
@@ -7251,14 +7250,9 @@ const PearHyperliquidProvider = ({ children, apiBaseUrl = "https://hl-v2.pearpro
|
|
|
7251
7250
|
// HyperLiquid native WebSocket state
|
|
7252
7251
|
nativeIsConnected,
|
|
7253
7252
|
nativeLastError,
|
|
7254
|
-
// Address utilities
|
|
7255
|
-
address,
|
|
7256
|
-
setAddress,
|
|
7257
7253
|
}), [
|
|
7258
7254
|
apiBaseUrl,
|
|
7259
7255
|
wsUrl,
|
|
7260
|
-
address,
|
|
7261
|
-
setAddress,
|
|
7262
7256
|
isConnected,
|
|
7263
7257
|
lastError,
|
|
7264
7258
|
nativeIsConnected,
|
|
@@ -3,6 +3,7 @@ interface UserDataState {
|
|
|
3
3
|
accessToken: string | null;
|
|
4
4
|
refreshToken: string | null;
|
|
5
5
|
isAuthenticated: boolean;
|
|
6
|
+
isReady: boolean;
|
|
6
7
|
address: string | null;
|
|
7
8
|
tradeHistories: TradeHistoryDataDto[] | null;
|
|
8
9
|
rawOpenPositions: RawPositionDto[] | null;
|
|
@@ -14,6 +15,7 @@ interface UserDataState {
|
|
|
14
15
|
setAccessToken: (token: string | null) => void;
|
|
15
16
|
setRefreshToken: (token: string | null) => void;
|
|
16
17
|
setIsAuthenticated: (value: boolean) => void;
|
|
18
|
+
setIsReady: (value: boolean) => void;
|
|
17
19
|
setAddress: (address: string | null) => void;
|
|
18
20
|
setTradeHistories: (value: TradeHistoryDataDto[] | null) => void;
|
|
19
21
|
setRawOpenPositions: (value: RawPositionDto[] | null) => void;
|