@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.
@@ -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 accessToken = useSymmAuthStore((state) => {
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
- const inMemory = getToken(resolvedAccountAddress, chainId);
760
- if (inMemory) {
761
- return inMemory;
762
- }
763
- const cached = getCachedToken(resolvedAccountAddress, chainId);
764
- if (cached) {
765
- setToken(resolvedAccountAddress, chainId, cached);
766
- return cached;
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 token = await fetchAccessToken(
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, token);
777
- return token;
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 || !walletClient) {
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
- const cached = getCachedToken(address, chainId);
806
- if (cached) {
807
- setToken(address, chainId, cached);
808
- } else {
809
- clearToken(address, chainId);
798
+ if (!walletClient) {
799
+ return;
810
800
  }
811
- }, [address, walletClient, chainId, setToken, clearToken]);
801
+ void refreshAuthRef.current(address);
802
+ }, [address, walletClient, chainId, clearToken]);
812
803
  return {
813
- accessToken,
814
- authToken: accessToken,
815
- isAuthenticated: !!accessToken,
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 useResolveTradeAuthToken() {
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 { address, chainId } = context;
25040
- const { refreshAuth } = useSymmAuth({ address, chainId });
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(options) {
25087
+ function useSymmClosePositionMutation(paramsOrOptions, maybeOptions) {
25079
25088
  const { symmCoreClient } = useSymmContext();
25080
25089
  const queryClient = useQueryClient();
25081
- const resolveAuthToken = useResolveTradeAuthToken();
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(options) {
25145
+ function useSymmUpdatePositionMutation(paramsOrOptions, maybeOptions) {
25136
25146
  const { symmCoreClient } = useSymmContext();
25137
25147
  const queryClient = useQueryClient();
25138
- const resolveAuthToken = useResolveTradeAuthToken();
25148
+ const { params, options } = splitTradeHookArgs(paramsOrOptions, maybeOptions);
25149
+ const resolveAuthToken = useResolveTradeAuthToken(params);
25139
25150
  return useMutation({
25140
25151
  ...withSymmMutationConfig(options?.mutation, {
25141
25152
  onSuccess: () => {