@pear-protocol/hyperliquid-sdk 0.0.60-beta.1 → 0.0.60-beta.11
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/hooks/useAuth.d.ts +2 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +36 -47
- package/dist/provider.d.ts +0 -2
- package/dist/store/userDataStore.d.ts +2 -0
- package/package.json +1 -1
package/dist/hooks/useAuth.d.ts
CHANGED
|
@@ -9,4 +9,6 @@ export declare function useAuth(): {
|
|
|
9
9
|
readonly loginWithPrivyToken: (address: string, appId: string, privyAccessToken: string) => Promise<void>;
|
|
10
10
|
readonly refreshTokens: () => Promise<import("../types").RefreshTokenResponse>;
|
|
11
11
|
readonly logout: () => Promise<void>;
|
|
12
|
+
readonly setAddress: (address: string | null) => void;
|
|
13
|
+
readonly address: string | null;
|
|
12
14
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -9,8 +9,6 @@ interface PearHyperliquidContextType {
|
|
|
9
9
|
lastError: string | null;
|
|
10
10
|
nativeIsConnected: boolean;
|
|
11
11
|
nativeLastError: string | null;
|
|
12
|
-
setAddress: (address: string) => void;
|
|
13
|
-
address: string | null;
|
|
14
12
|
}
|
|
15
13
|
interface PearHyperliquidProviderProps {
|
|
16
14
|
children: ReactNode;
|
|
@@ -1128,6 +1126,8 @@ declare function useAuth(): {
|
|
|
1128
1126
|
readonly loginWithPrivyToken: (address: string, appId: string, privyAccessToken: string) => Promise<void>;
|
|
1129
1127
|
readonly refreshTokens: () => Promise<RefreshTokenResponse>;
|
|
1130
1128
|
readonly logout: () => Promise<void>;
|
|
1129
|
+
readonly setAddress: (address: string | null) => void;
|
|
1130
|
+
readonly address: string | null;
|
|
1131
1131
|
};
|
|
1132
1132
|
|
|
1133
1133
|
interface UseHyperliquidWebSocketProps {
|
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,17 +67,17 @@ 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 }),
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
}
|
|
70
|
+
setIsReady: (value) => set({ isReady: value }),
|
|
71
|
+
setAddress: (address) => {
|
|
72
|
+
// if (typeof window !== "undefined") {
|
|
73
|
+
// if (address) {
|
|
74
|
+
// window.localStorage.setItem("address", address);
|
|
75
|
+
// } else {
|
|
76
|
+
// window.localStorage.removeItem("address");
|
|
77
|
+
// }
|
|
78
|
+
// }
|
|
79
|
+
set({ address });
|
|
80
|
+
},
|
|
80
81
|
setTradeHistories: (value) => set({ tradeHistories: value }),
|
|
81
82
|
setRawOpenPositions: (value) => set({ rawOpenPositions: value }),
|
|
82
83
|
setOpenOrders: (value) => set({ openOrders: value }),
|
|
@@ -84,10 +85,11 @@ const useUserData = create((set) => ({
|
|
|
84
85
|
setTwapDetails: (value) => set({ twapDetails: value }),
|
|
85
86
|
setNotifications: (value) => set({ notifications: value }),
|
|
86
87
|
clean: () => set({
|
|
87
|
-
accessToken: null,
|
|
88
|
-
refreshToken: null,
|
|
89
|
-
isAuthenticated: false,
|
|
90
|
-
|
|
88
|
+
// accessToken: null,
|
|
89
|
+
// refreshToken: null,
|
|
90
|
+
// isAuthenticated: false,
|
|
91
|
+
// isReady: false,
|
|
92
|
+
// address: null,
|
|
91
93
|
tradeHistories: null,
|
|
92
94
|
rawOpenPositions: null,
|
|
93
95
|
openOrders: null,
|
|
@@ -7029,56 +7031,47 @@ async function logout(baseUrl, refreshTokenVal) {
|
|
|
7029
7031
|
function useAuth() {
|
|
7030
7032
|
const context = useContext(PearHyperliquidContext);
|
|
7031
7033
|
if (!context) {
|
|
7032
|
-
throw new Error("
|
|
7034
|
+
throw new Error("useAuth must be used within a PearHyperliquidProvider");
|
|
7033
7035
|
}
|
|
7034
7036
|
const { apiBaseUrl, clientId } = context;
|
|
7035
|
-
const [isReady, setIsReady] = useState(false);
|
|
7036
7037
|
const accessToken = useUserData((s) => s.accessToken);
|
|
7037
7038
|
const refreshToken$1 = useUserData((s) => s.refreshToken);
|
|
7039
|
+
const isReady = useUserData((s) => s.isReady);
|
|
7040
|
+
const isAuthenticated = useUserData((s) => s.isAuthenticated);
|
|
7041
|
+
const address = useUserData((s) => s.address);
|
|
7038
7042
|
const setAccessToken = useUserData((s) => s.setAccessToken);
|
|
7039
7043
|
const setRefreshToken = useUserData((s) => s.setRefreshToken);
|
|
7040
|
-
const
|
|
7044
|
+
const setIsReady = useUserData((s) => s.setIsReady);
|
|
7041
7045
|
const setIsAuthenticated = useUserData((s) => s.setIsAuthenticated);
|
|
7042
|
-
const address = useUserData((s) => s.address);
|
|
7043
7046
|
const setAddress = useUserData((s) => s.setAddress);
|
|
7047
|
+
console.log("sdk", { sdkAddress: address });
|
|
7044
7048
|
useEffect(() => {
|
|
7045
7049
|
if (typeof window == "undefined") {
|
|
7046
7050
|
return;
|
|
7047
7051
|
}
|
|
7048
|
-
|
|
7049
|
-
const currentAddress = address;
|
|
7050
|
-
if (currentAddress) {
|
|
7052
|
+
if (address) {
|
|
7051
7053
|
// If we already have an address in state, use it to load the session
|
|
7052
|
-
const accessTokenKey = `${
|
|
7053
|
-
const refreshTokenKey = `${
|
|
7054
|
+
const accessTokenKey = `${address}_accessToken`;
|
|
7055
|
+
const refreshTokenKey = `${address}_refreshToken`;
|
|
7054
7056
|
const storedAccessToken = localStorage.getItem(accessTokenKey);
|
|
7055
7057
|
const storedRefreshToken = localStorage.getItem(refreshTokenKey);
|
|
7058
|
+
console.log({ storedAccessToken, storedRefreshToken });
|
|
7056
7059
|
if (storedAccessToken && storedRefreshToken) {
|
|
7057
7060
|
setAccessToken(storedAccessToken);
|
|
7058
7061
|
setRefreshToken(storedRefreshToken);
|
|
7059
7062
|
setIsAuthenticated(true);
|
|
7060
|
-
setIsReady(true);
|
|
7061
|
-
return;
|
|
7062
7063
|
}
|
|
7063
7064
|
}
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
setRefreshToken,
|
|
7067
|
-
setIsAuthenticated,
|
|
7068
|
-
setAddress,
|
|
7069
|
-
address,
|
|
7070
|
-
]);
|
|
7065
|
+
setIsReady(true);
|
|
7066
|
+
}, [address]);
|
|
7071
7067
|
useEffect(() => {
|
|
7072
7068
|
const cleanup = addAuthInterceptors({
|
|
7073
7069
|
apiBaseUrl,
|
|
7074
7070
|
getAccessToken: () => {
|
|
7075
7071
|
if (typeof window === "undefined")
|
|
7076
7072
|
return null;
|
|
7077
|
-
|
|
7078
|
-
|
|
7079
|
-
return null;
|
|
7080
|
-
const accessTokenKey = `${currentAddress}_accessToken`;
|
|
7081
|
-
return localStorage.getItem(accessTokenKey);
|
|
7073
|
+
// Read from Zustand state as single source of truth
|
|
7074
|
+
return useUserData.getState().accessToken;
|
|
7082
7075
|
},
|
|
7083
7076
|
refreshTokens: async () => {
|
|
7084
7077
|
const data = await refreshTokens();
|
|
@@ -7110,7 +7103,7 @@ function useAuth() {
|
|
|
7110
7103
|
window.localStorage.setItem(refreshTokenKey, data.refreshToken);
|
|
7111
7104
|
setAccessToken(data.accessToken);
|
|
7112
7105
|
setRefreshToken(data.refreshToken);
|
|
7113
|
-
setAddress(address);
|
|
7106
|
+
// setAddress(address);
|
|
7114
7107
|
setIsAuthenticated(true);
|
|
7115
7108
|
}
|
|
7116
7109
|
catch (e) {
|
|
@@ -7131,7 +7124,7 @@ function useAuth() {
|
|
|
7131
7124
|
window.localStorage.setItem(refreshTokenKey, data.refreshToken);
|
|
7132
7125
|
setAccessToken(data.accessToken);
|
|
7133
7126
|
setRefreshToken(data.refreshToken);
|
|
7134
|
-
setAddress(address);
|
|
7127
|
+
// setAddress(address);
|
|
7135
7128
|
setIsAuthenticated(true);
|
|
7136
7129
|
}
|
|
7137
7130
|
catch (e) {
|
|
@@ -7173,7 +7166,7 @@ function useAuth() {
|
|
|
7173
7166
|
}
|
|
7174
7167
|
setAccessToken(null);
|
|
7175
7168
|
setRefreshToken(null);
|
|
7176
|
-
setAddress(null);
|
|
7169
|
+
// setAddress(null);
|
|
7177
7170
|
setIsAuthenticated(false);
|
|
7178
7171
|
}
|
|
7179
7172
|
return {
|
|
@@ -7186,6 +7179,8 @@ function useAuth() {
|
|
|
7186
7179
|
loginWithPrivyToken,
|
|
7187
7180
|
refreshTokens,
|
|
7188
7181
|
logout: logout$1,
|
|
7182
|
+
setAddress,
|
|
7183
|
+
address,
|
|
7189
7184
|
};
|
|
7190
7185
|
}
|
|
7191
7186
|
|
|
@@ -7195,7 +7190,6 @@ const PearHyperliquidContext = createContext(undefined);
|
|
|
7195
7190
|
*/
|
|
7196
7191
|
const PearHyperliquidProvider = ({ children, apiBaseUrl = "https://hl-v2.pearprotocol.io", clientId = "PEARPROTOCOLUI", wsUrl = "wss://hl-v2.pearprotocol.io/ws", }) => {
|
|
7197
7192
|
const address = useUserData((s) => s.address);
|
|
7198
|
-
const setAddress = useUserData((s) => s.setAddress);
|
|
7199
7193
|
const perpsMetaAssets = useHyperliquidData((state) => state.perpMetaAssets);
|
|
7200
7194
|
const setPerpMetaAssets = useHyperliquidData((state) => state.setPerpMetaAssets);
|
|
7201
7195
|
const setHip3DisplayToFull = useHyperliquidData((state) => state.setHip3DisplayToFull);
|
|
@@ -7254,14 +7248,9 @@ const PearHyperliquidProvider = ({ children, apiBaseUrl = "https://hl-v2.pearpro
|
|
|
7254
7248
|
// HyperLiquid native WebSocket state
|
|
7255
7249
|
nativeIsConnected,
|
|
7256
7250
|
nativeLastError,
|
|
7257
|
-
// Address utilities
|
|
7258
|
-
address,
|
|
7259
|
-
setAddress,
|
|
7260
7251
|
}), [
|
|
7261
7252
|
apiBaseUrl,
|
|
7262
7253
|
wsUrl,
|
|
7263
|
-
address,
|
|
7264
|
-
setAddress,
|
|
7265
7254
|
isConnected,
|
|
7266
7255
|
lastError,
|
|
7267
7256
|
nativeIsConnected,
|
package/dist/provider.d.ts
CHANGED
|
@@ -7,8 +7,6 @@ export interface PearHyperliquidContextType {
|
|
|
7
7
|
lastError: string | null;
|
|
8
8
|
nativeIsConnected: boolean;
|
|
9
9
|
nativeLastError: string | null;
|
|
10
|
-
setAddress: (address: string) => void;
|
|
11
|
-
address: string | null;
|
|
12
10
|
}
|
|
13
11
|
export declare const PearHyperliquidContext: React.Context<PearHyperliquidContextType | undefined>;
|
|
14
12
|
interface PearHyperliquidProviderProps {
|
|
@@ -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;
|