@pear-protocol/hyperliquid-sdk 0.0.60-beta.5 → 0.0.60-beta.6

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 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,24 @@ 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 isAuthenticated = useUserData((s) => s.isAuthenticated);
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);
7044
7048
  useEffect(() => {
7045
7049
  if (typeof window == "undefined") {
7046
7050
  return;
7047
7051
  }
7048
- // Get the current address from state if it exists
7049
- const currentAddress = address;
7050
- console.log({ currentAddress });
7051
- if (currentAddress) {
7052
+ if (address) {
7052
7053
  // If we already have an address in state, use it to load the session
7053
- const accessTokenKey = `${currentAddress}_accessToken`;
7054
- const refreshTokenKey = `${currentAddress}_refreshToken`;
7054
+ const accessTokenKey = `${address}_accessToken`;
7055
+ const refreshTokenKey = `${address}_refreshToken`;
7055
7056
  const storedAccessToken = localStorage.getItem(accessTokenKey);
7056
7057
  const storedRefreshToken = localStorage.getItem(refreshTokenKey);
7057
7058
  console.log({ storedAccessToken, storedRefreshToken });
@@ -7060,8 +7061,8 @@ function useAuth() {
7060
7061
  setRefreshToken(storedRefreshToken);
7061
7062
  setIsAuthenticated(true);
7062
7063
  }
7063
- setIsReady(true);
7064
7064
  }
7065
+ setIsReady(true);
7065
7066
  }, [address]);
7066
7067
  useEffect(() => {
7067
7068
  const cleanup = addAuthInterceptors({
@@ -7069,11 +7070,8 @@ function useAuth() {
7069
7070
  getAccessToken: () => {
7070
7071
  if (typeof window === "undefined")
7071
7072
  return null;
7072
- const currentAddress = address;
7073
- if (!currentAddress)
7074
- return null;
7075
- const accessTokenKey = `${currentAddress}_accessToken`;
7076
- return localStorage.getItem(accessTokenKey);
7073
+ // Read from Zustand state as single source of truth
7074
+ return useUserData.getState().accessToken;
7077
7075
  },
7078
7076
  refreshTokens: async () => {
7079
7077
  const data = await refreshTokens();
@@ -7086,7 +7084,7 @@ function useAuth() {
7086
7084
  return () => {
7087
7085
  cleanup();
7088
7086
  };
7089
- }, [apiBaseUrl]);
7087
+ }, [apiBaseUrl, refreshTokens, logout$1]);
7090
7088
  async function getEip712(address) {
7091
7089
  const { data } = await getEIP712Message(apiBaseUrl, address, clientId);
7092
7090
  return data;
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pear-protocol/hyperliquid-sdk",
3
- "version": "0.0.60-beta.5",
3
+ "version": "0.0.60-beta.6",
4
4
  "description": "React SDK for Pear Protocol Hyperliquid API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",