@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 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 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);
7048
+ console.log({ sdkAddress: address });
7044
7049
  useEffect(() => {
7045
7050
  if (typeof window == "undefined") {
7046
7051
  return;
7047
7052
  }
7048
- // Get the current address from state if it exists
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 = `${currentAddress}_accessToken`;
7054
- const refreshTokenKey = `${currentAddress}_refreshToken`;
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
- const currentAddress = address;
7073
- if (!currentAddress)
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
- const setAddress = useUserData((s) => s.setAddress);
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;
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.7",
4
4
  "description": "React SDK for Pear Protocol Hyperliquid API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",