@pear-protocol/symmio-client 0.2.32 → 0.2.33
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/react/index.d.mts +21 -4
- package/dist/react/index.d.ts +21 -4
- package/dist/react/index.js +52 -41
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +52 -41
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.mjs
CHANGED
|
@@ -614,7 +614,6 @@ async function login(chainId, params) {
|
|
|
614
614
|
// src/react/auth.ts
|
|
615
615
|
var TOKEN_STORAGE_PREFIX = "symm_access_token";
|
|
616
616
|
var TOKEN_STORAGE_VERSION = 1;
|
|
617
|
-
var tokenCache = /* @__PURE__ */ new Map();
|
|
618
617
|
function cacheKey(address, chainId) {
|
|
619
618
|
return `${address}:${chainId}`;
|
|
620
619
|
}
|
|
@@ -652,20 +651,11 @@ function writeStoredToken(address, chainId, cached) {
|
|
|
652
651
|
}
|
|
653
652
|
}
|
|
654
653
|
function getCachedToken(address, chainId) {
|
|
655
|
-
const cached = tokenCache.get(cacheKey(address, chainId));
|
|
656
|
-
if (cached && Date.now() < cached.expiresAt) {
|
|
657
|
-
return cached.token;
|
|
658
|
-
}
|
|
659
|
-
if (cached) {
|
|
660
|
-
tokenCache.delete(cacheKey(address, chainId));
|
|
661
|
-
}
|
|
662
654
|
const stored = readStoredToken(address, chainId);
|
|
663
655
|
if (!stored) return null;
|
|
664
|
-
tokenCache.set(cacheKey(address, chainId), stored);
|
|
665
656
|
return stored.token;
|
|
666
657
|
}
|
|
667
658
|
function clearCachedToken(address, chainId) {
|
|
668
|
-
tokenCache.delete(cacheKey(address, chainId));
|
|
669
659
|
if (typeof window !== "undefined") {
|
|
670
660
|
window.localStorage.removeItem(storageKey(address, chainId));
|
|
671
661
|
}
|
|
@@ -698,7 +688,6 @@ async function fetchAccessToken(walletClient, signerAddress, accountAddress, cha
|
|
|
698
688
|
token: accessToken,
|
|
699
689
|
expiresAt: expiresAt - 6e4
|
|
700
690
|
};
|
|
701
|
-
tokenCache.set(cacheKey(accountAddress, chainId), cachedToken);
|
|
702
691
|
writeStoredToken(accountAddress, chainId, cachedToken);
|
|
703
692
|
return accessToken;
|
|
704
693
|
}
|
|
@@ -741,7 +730,7 @@ function useSymmAuth(params) {
|
|
|
741
730
|
const chainId = params?.chainId ?? ctx.chainId ?? 42161;
|
|
742
731
|
const walletClient = params?.walletClient ?? ctx.walletClient;
|
|
743
732
|
const siweDomain = params?.siweDomain;
|
|
744
|
-
const
|
|
733
|
+
const token = useSymmAuthStore((state) => {
|
|
745
734
|
if (address) {
|
|
746
735
|
return state.tokensByKey[symmAuthTokenKey(address, chainId)] ?? null;
|
|
747
736
|
}
|
|
@@ -752,29 +741,32 @@ function useSymmAuth(params) {
|
|
|
752
741
|
const clearToken = useSymmAuthStore((state) => state.clearToken);
|
|
753
742
|
const previousAddressRef = useRef(address);
|
|
754
743
|
const previousChainIdRef = useRef(chainId);
|
|
744
|
+
const refreshAuthRef = useRef(async () => null);
|
|
755
745
|
const refreshAuth = useCallback(
|
|
756
|
-
async (accountAddress) => {
|
|
746
|
+
async (accountAddress, options) => {
|
|
757
747
|
if (!walletClient || !address) return null;
|
|
758
748
|
const resolvedAccountAddress = accountAddress ?? address;
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
749
|
+
if (!options?.force) {
|
|
750
|
+
const inStore = getToken(resolvedAccountAddress, chainId);
|
|
751
|
+
if (inStore) {
|
|
752
|
+
return inStore;
|
|
753
|
+
}
|
|
754
|
+
const cached = getCachedToken(resolvedAccountAddress, chainId);
|
|
755
|
+
if (cached) {
|
|
756
|
+
setToken(resolvedAccountAddress, chainId, cached);
|
|
757
|
+
return cached;
|
|
758
|
+
}
|
|
767
759
|
}
|
|
768
760
|
try {
|
|
769
|
-
const
|
|
761
|
+
const token2 = await fetchAccessToken(
|
|
770
762
|
walletClient,
|
|
771
763
|
address,
|
|
772
764
|
resolvedAccountAddress,
|
|
773
765
|
chainId,
|
|
774
766
|
siweDomain
|
|
775
767
|
);
|
|
776
|
-
setToken(resolvedAccountAddress, chainId,
|
|
777
|
-
return
|
|
768
|
+
setToken(resolvedAccountAddress, chainId, token2);
|
|
769
|
+
return token2;
|
|
778
770
|
} catch {
|
|
779
771
|
clearToken(resolvedAccountAddress, chainId);
|
|
780
772
|
return null;
|
|
@@ -782,6 +774,7 @@ function useSymmAuth(params) {
|
|
|
782
774
|
},
|
|
783
775
|
[walletClient, address, chainId, siweDomain, getToken, setToken, clearToken]
|
|
784
776
|
);
|
|
777
|
+
refreshAuthRef.current = refreshAuth;
|
|
785
778
|
const clearAuth = useCallback(() => {
|
|
786
779
|
if (address) {
|
|
787
780
|
clearCachedToken(address, chainId);
|
|
@@ -795,24 +788,22 @@ function useSymmAuth(params) {
|
|
|
795
788
|
const chainChanged = previousChainId !== chainId;
|
|
796
789
|
previousAddressRef.current = address;
|
|
797
790
|
previousChainIdRef.current = chainId;
|
|
798
|
-
if (!address
|
|
791
|
+
if (!address) {
|
|
799
792
|
return;
|
|
800
793
|
}
|
|
801
794
|
if (previousAddress && (addressChanged || chainChanged)) {
|
|
802
795
|
clearCachedToken(previousAddress, previousChainId);
|
|
803
796
|
clearToken(previousAddress, previousChainId);
|
|
804
797
|
}
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
setToken(address, chainId, cached);
|
|
808
|
-
} else {
|
|
809
|
-
clearToken(address, chainId);
|
|
798
|
+
if (!walletClient) {
|
|
799
|
+
return;
|
|
810
800
|
}
|
|
811
|
-
|
|
801
|
+
void refreshAuthRef.current(address);
|
|
802
|
+
}, [address, walletClient, chainId, clearToken]);
|
|
812
803
|
return {
|
|
813
|
-
accessToken,
|
|
814
|
-
authToken:
|
|
815
|
-
isAuthenticated: !!
|
|
804
|
+
accessToken: token,
|
|
805
|
+
authToken: token,
|
|
806
|
+
isAuthenticated: !!token,
|
|
816
807
|
refresh: refreshAuth,
|
|
817
808
|
refreshAuth,
|
|
818
809
|
clear: clearAuth
|
|
@@ -25034,10 +25025,28 @@ function useSymmBalances(params) {
|
|
|
25034
25025
|
enabled: internalEnabled && (params.query?.enabled ?? true)
|
|
25035
25026
|
});
|
|
25036
25027
|
}
|
|
25037
|
-
function
|
|
25028
|
+
function splitTradeHookArgs(paramsOrOptions, options) {
|
|
25029
|
+
if (paramsOrOptions && "mutation" in paramsOrOptions) {
|
|
25030
|
+
return {
|
|
25031
|
+
params: {},
|
|
25032
|
+
options: paramsOrOptions
|
|
25033
|
+
};
|
|
25034
|
+
}
|
|
25035
|
+
return {
|
|
25036
|
+
params: paramsOrOptions ?? {},
|
|
25037
|
+
options
|
|
25038
|
+
};
|
|
25039
|
+
}
|
|
25040
|
+
function useResolveTradeAuthToken(params = {}) {
|
|
25038
25041
|
const context = useSymmContext();
|
|
25039
|
-
const
|
|
25040
|
-
const
|
|
25042
|
+
const address = params.address ?? context.address;
|
|
25043
|
+
const chainId = params.chainId ?? context.chainId;
|
|
25044
|
+
const { refreshAuth } = useSymmAuth({
|
|
25045
|
+
address,
|
|
25046
|
+
chainId,
|
|
25047
|
+
walletClient: params.walletClient,
|
|
25048
|
+
siweDomain: params.siweDomain
|
|
25049
|
+
});
|
|
25041
25050
|
const refreshAuthFromContext = context.refreshAuth;
|
|
25042
25051
|
return useCallback(
|
|
25043
25052
|
async (providedAuthToken, accountAddress) => {
|
|
@@ -25075,10 +25084,11 @@ function useSymmOpenBasketMutation(options) {
|
|
|
25075
25084
|
}
|
|
25076
25085
|
});
|
|
25077
25086
|
}
|
|
25078
|
-
function useSymmClosePositionMutation(
|
|
25087
|
+
function useSymmClosePositionMutation(paramsOrOptions, maybeOptions) {
|
|
25079
25088
|
const { symmCoreClient } = useSymmContext();
|
|
25080
25089
|
const queryClient = useQueryClient();
|
|
25081
|
-
const
|
|
25090
|
+
const { params, options } = splitTradeHookArgs(paramsOrOptions, maybeOptions);
|
|
25091
|
+
const resolveAuthToken = useResolveTradeAuthToken(params);
|
|
25082
25092
|
return useMutation({
|
|
25083
25093
|
...withSymmMutationConfig(options?.mutation, {
|
|
25084
25094
|
onSuccess: () => {
|
|
@@ -25132,10 +25142,11 @@ function useSymmCancelOpenMutation(options) {
|
|
|
25132
25142
|
}
|
|
25133
25143
|
});
|
|
25134
25144
|
}
|
|
25135
|
-
function useSymmUpdatePositionMutation(
|
|
25145
|
+
function useSymmUpdatePositionMutation(paramsOrOptions, maybeOptions) {
|
|
25136
25146
|
const { symmCoreClient } = useSymmContext();
|
|
25137
25147
|
const queryClient = useQueryClient();
|
|
25138
|
-
const
|
|
25148
|
+
const { params, options } = splitTradeHookArgs(paramsOrOptions, maybeOptions);
|
|
25149
|
+
const resolveAuthToken = useResolveTradeAuthToken(params);
|
|
25139
25150
|
return useMutation({
|
|
25140
25151
|
...withSymmMutationConfig(options?.mutation, {
|
|
25141
25152
|
onSuccess: () => {
|