@pear-protocol/symmio-client 0.3.1 → 0.3.2

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.
@@ -8559,6 +8559,7 @@ type SymmTradeAuthParams = {
8559
8559
  address?: Address;
8560
8560
  chainId?: number;
8561
8561
  };
8562
+
8562
8563
  type OpenBasketMutationRequest = WithOptionalAuthToken<OpenBasketPositionRequest>;
8563
8564
  type ClosePositionMutationRequest = WithOptionalAuthToken<ClosePositionRequest>;
8564
8565
  type CloseAllPositionsMutationRequest = WithOptionalAuthToken<Parameters<NonNullable<ReturnType<typeof useSymmContext>['symmCoreClient']>['positions']['closeAll']>[0]>;
@@ -8559,6 +8559,7 @@ type SymmTradeAuthParams = {
8559
8559
  address?: Address;
8560
8560
  chainId?: number;
8561
8561
  };
8562
+
8562
8563
  type OpenBasketMutationRequest = WithOptionalAuthToken<OpenBasketPositionRequest>;
8563
8564
  type ClosePositionMutationRequest = WithOptionalAuthToken<ClosePositionRequest>;
8564
8565
  type CloseAllPositionsMutationRequest = WithOptionalAuthToken<Parameters<NonNullable<ReturnType<typeof useSymmContext>['symmCoreClient']>['positions']['closeAll']>[0]>;
@@ -550,12 +550,6 @@ var useSymmWsStore = zustand.create((set) => ({
550
550
  function asUnsubscribeFn(value) {
551
551
  return typeof value === "function" ? value : null;
552
552
  }
553
- function logSymmWs(event, details) {
554
- if (typeof window === "undefined") {
555
- return;
556
- }
557
- console.debug("[symm-ws]", event, details ?? {});
558
- }
559
553
  function useSymmWs(params = {}) {
560
554
  const ctx = react.useContext(SymmContext);
561
555
  const queryClient = reactQuery.useQueryClient();
@@ -566,11 +560,6 @@ function useSymmWs(params = {}) {
566
560
  const chainId = params.chainId ?? ctx?.chainId ?? 42161;
567
561
  react.useEffect(() => {
568
562
  if (!symmCoreClient || !accountAddress) {
569
- logSymmWs("setup:skip", {
570
- hasClient: !!symmCoreClient,
571
- accountAddress,
572
- chainId
573
- });
574
563
  setConnected(false);
575
564
  return;
576
565
  }
@@ -578,52 +567,21 @@ function useSymmWs(params = {}) {
578
567
  const addr = accountAddress;
579
568
  const unsubscribers = [];
580
569
  let cancelled = false;
581
- logSymmWs("setup:start", {
582
- accountAddress: addr,
583
- chainId,
584
- alreadyConnected: typeof ws.isConnected === "function" ? ws.isConnected() : void 0
585
- });
586
570
  const removeOnConnect = ws.onConnect(() => {
587
- logSymmWs("connection:connected", {
588
- accountAddress: addr,
589
- chainId
590
- });
591
571
  setConnected(true);
592
572
  });
593
573
  const removeOnDisconnect = ws.onDisconnect(() => {
594
- logSymmWs("connection:disconnected", {
595
- accountAddress: addr,
596
- chainId
597
- });
598
574
  setConnected(false);
599
575
  });
600
- const removeOnError = asUnsubscribeFn(
601
- ws.onError?.((error) => {
602
- logSymmWs("connection:error", {
603
- accountAddress: addr,
604
- chainId,
605
- error: error instanceof Error ? error.message : String(error)
606
- });
607
- })
608
- );
609
- const removeOnWelcome = asUnsubscribeFn(
610
- ws.onWelcome?.((message) => {
611
- logSymmWs("connection:welcome", {
612
- accountAddress: addr,
613
- chainId,
614
- message
615
- });
616
- })
617
- );
576
+ const removeOnError = asUnsubscribeFn(ws.onError?.(() => {
577
+ }));
578
+ const removeOnWelcome = asUnsubscribeFn(ws.onWelcome?.(() => {
579
+ }));
618
580
  unsubscribers.push(removeOnConnect, removeOnDisconnect);
619
581
  if (removeOnError) unsubscribers.push(removeOnError);
620
582
  if (removeOnWelcome) unsubscribers.push(removeOnWelcome);
621
583
  const positionsUnsub = asUnsubscribeFn(
622
584
  ws.subscribeToPositions(addr, chainId, () => {
623
- logSymmWs("message:positions", {
624
- accountAddress: addr,
625
- chainId
626
- });
627
585
  queryClient.invalidateQueries({
628
586
  queryKey: symmKeys.positionsRoot
629
587
  });
@@ -632,10 +590,6 @@ function useSymmWs(params = {}) {
632
590
  if (positionsUnsub) unsubscribers.push(positionsUnsub);
633
591
  const openOrdersUnsub = asUnsubscribeFn(
634
592
  ws.subscribeToOpenOrders(addr, chainId, () => {
635
- logSymmWs("message:open-orders", {
636
- accountAddress: addr,
637
- chainId
638
- });
639
593
  queryClient.invalidateQueries({
640
594
  queryKey: symmKeys.openOrdersRoot
641
595
  });
@@ -644,10 +598,6 @@ function useSymmWs(params = {}) {
644
598
  if (openOrdersUnsub) unsubscribers.push(openOrdersUnsub);
645
599
  const tradesUnsub = asUnsubscribeFn(
646
600
  ws.subscribeToTrades(addr, chainId, () => {
647
- logSymmWs("message:trades", {
648
- accountAddress: addr,
649
- chainId
650
- });
651
601
  queryClient.invalidateQueries({
652
602
  queryKey: symmKeys.tradeHistoryRoot
653
603
  });
@@ -656,10 +606,6 @@ function useSymmWs(params = {}) {
656
606
  if (tradesUnsub) unsubscribers.push(tradesUnsub);
657
607
  const accountSummaryUnsub = asUnsubscribeFn(
658
608
  ws.subscribeToAccountSummary(addr, chainId, () => {
659
- logSymmWs("message:account-summary", {
660
- accountAddress: addr,
661
- chainId
662
- });
663
609
  queryClient.invalidateQueries({
664
610
  queryKey: symmKeys.balances(accountAddress, chainId)
665
611
  });
@@ -671,10 +617,6 @@ function useSymmWs(params = {}) {
671
617
  if (accountSummaryUnsub) unsubscribers.push(accountSummaryUnsub);
672
618
  const notificationsUnsub = asUnsubscribeFn(
673
619
  ws.subscribeToNotifications(addr, chainId, () => {
674
- logSymmWs("message:notifications", {
675
- accountAddress: addr,
676
- chainId
677
- });
678
620
  queryClient.invalidateQueries({
679
621
  queryKey: symmKeys.notifications({ accountAddress, chainId })
680
622
  });
@@ -686,10 +628,6 @@ function useSymmWs(params = {}) {
686
628
  if (notificationsUnsub) unsubscribers.push(notificationsUnsub);
687
629
  const tpslUnsub = asUnsubscribeFn(
688
630
  ws.subscribeToTpsl(addr, chainId, () => {
689
- logSymmWs("message:tpsl", {
690
- accountAddress: addr,
691
- chainId
692
- });
693
631
  queryClient.invalidateQueries({ queryKey: symmKeys.tpslOrdersRoot });
694
632
  queryClient.invalidateQueries({ queryKey: symmKeys.openOrdersRoot });
695
633
  })
@@ -697,10 +635,6 @@ function useSymmWs(params = {}) {
697
635
  if (tpslUnsub) unsubscribers.push(tpslUnsub);
698
636
  const twapUnsub = asUnsubscribeFn(
699
637
  ws.subscribeToTwapOrders(addr, chainId, () => {
700
- logSymmWs("message:twap-orders", {
701
- accountAddress: addr,
702
- chainId
703
- });
704
638
  queryClient.invalidateQueries({ queryKey: symmKeys.twapOrdersRoot });
705
639
  queryClient.invalidateQueries({ queryKey: symmKeys.openOrdersRoot });
706
640
  })
@@ -708,10 +642,6 @@ function useSymmWs(params = {}) {
708
642
  if (twapUnsub) unsubscribers.push(twapUnsub);
709
643
  const triggerOrdersUnsub = asUnsubscribeFn(
710
644
  ws.subscribeToTriggerOrders(addr, chainId, () => {
711
- logSymmWs("message:trigger-orders", {
712
- accountAddress: addr,
713
- chainId
714
- });
715
645
  queryClient.invalidateQueries({ queryKey: symmKeys.triggerOrdersRoot });
716
646
  queryClient.invalidateQueries({ queryKey: symmKeys.openOrdersRoot });
717
647
  })
@@ -719,10 +649,6 @@ function useSymmWs(params = {}) {
719
649
  if (triggerOrdersUnsub) unsubscribers.push(triggerOrdersUnsub);
720
650
  const executionsUnsub = asUnsubscribeFn(
721
651
  ws.subscribeToExecutions(addr, chainId, () => {
722
- logSymmWs("message:executions", {
723
- accountAddress: addr,
724
- chainId
725
- });
726
652
  queryClient.invalidateQueries({
727
653
  queryKey: symmKeys.positionsRoot
728
654
  });
@@ -736,27 +662,14 @@ function useSymmWs(params = {}) {
736
662
  if (cancelled) {
737
663
  return;
738
664
  }
739
- logSymmWs("connection:connect-called", {
740
- accountAddress: addr,
741
- chainId
742
- });
743
- }).catch((error) => {
665
+ }).catch(() => {
744
666
  if (cancelled) {
745
667
  return;
746
668
  }
747
- logSymmWs("connection:connect-failed", {
748
- accountAddress: addr,
749
- chainId,
750
- error: error instanceof Error ? error.message : String(error)
751
- });
752
669
  setConnected(false);
753
670
  });
754
671
  return () => {
755
672
  cancelled = true;
756
- logSymmWs("cleanup:start", {
757
- accountAddress: addr,
758
- chainId
759
- });
760
673
  unsubscribers.forEach((unsubscribe) => unsubscribe());
761
674
  ws.disconnect();
762
675
  setConnected(false);
@@ -1052,12 +965,6 @@ function clearAuthState(queryClient, accountAddress, chainId, signerAddress) {
1052
965
  }
1053
966
 
1054
967
  // src/react/hooks/use-symm-auth.ts
1055
- function logSymmAuth(event, details) {
1056
- if (typeof window === "undefined") {
1057
- return;
1058
- }
1059
- console.log("[symm-auth]", event, details ?? {});
1060
- }
1061
968
  function useSymmAuth(params) {
1062
969
  const context = useSymmContext();
1063
970
  const queryClient = reactQuery.useQueryClient();
@@ -1071,20 +978,10 @@ function useSymmAuth(params) {
1071
978
  async (accountAddress, options) => {
1072
979
  const resolvedAccountAddress = accountAddress ?? activeAccountAddress;
1073
980
  if (!resolvedAccountAddress) {
1074
- logSymmAuth("refresh:skip-no-active-account", {
1075
- signerAddress: address,
1076
- chainId
1077
- });
1078
981
  return null;
1079
982
  }
1080
983
  if (!walletClient || !address) return null;
1081
984
  try {
1082
- logSymmAuth("refresh:fetch-start", {
1083
- signerAddress: address,
1084
- accountAddress: resolvedAccountAddress,
1085
- chainId,
1086
- force: options?.force ?? false
1087
- });
1088
985
  const tokenEntry = await resolveAuthTokenEntry({
1089
986
  queryClient,
1090
987
  walletClient,
@@ -1095,20 +992,9 @@ function useSymmAuth(params) {
1095
992
  force: options?.force
1096
993
  });
1097
994
  const token2 = tokenEntry?.token ?? null;
1098
- logSymmAuth("refresh:fetch-success", {
1099
- signerAddress: address,
1100
- accountAddress: resolvedAccountAddress,
1101
- chainId
1102
- });
1103
995
  return token2;
1104
996
  } catch (error) {
1105
997
  clearPersistedAuthState(resolvedAccountAddress, chainId);
1106
- logSymmAuth("refresh:fetch-failed", {
1107
- signerAddress: address,
1108
- accountAddress: resolvedAccountAddress,
1109
- chainId,
1110
- error: error instanceof Error ? error.message : String(error)
1111
- });
1112
998
  return null;
1113
999
  }
1114
1000
  },
@@ -2356,9 +2242,53 @@ function useSymmApproveMutation(params, options) {
2356
2242
  }
2357
2243
  });
2358
2244
  }
2245
+ function splitTradeHookArgs(paramsOrOptions, options) {
2246
+ if (paramsOrOptions && "mutation" in paramsOrOptions) {
2247
+ return {
2248
+ params: {},
2249
+ options: paramsOrOptions
2250
+ };
2251
+ }
2252
+ return {
2253
+ params: paramsOrOptions ?? {},
2254
+ options
2255
+ };
2256
+ }
2257
+ function useResolveTradeAuthToken(params = {}) {
2258
+ const context = useSymmContext();
2259
+ const queryClient = reactQuery.useQueryClient();
2260
+ const address = params.address ?? context.address;
2261
+ const chainId = params.chainId ?? context.chainId;
2262
+ return react.useCallback(
2263
+ async (providedAuthToken, accountAddress, overrideChainId) => {
2264
+ const resolvedChainId = overrideChainId ?? chainId;
2265
+ if (providedAuthToken) {
2266
+ return providedAuthToken;
2267
+ }
2268
+ const resolvedAccountAddress = accountAddress ?? address;
2269
+ if (!resolvedAccountAddress) {
2270
+ return null;
2271
+ }
2272
+ const inMemoryToken = getAuthTokenFromRuntimeCache(
2273
+ queryClient,
2274
+ resolvedAccountAddress,
2275
+ resolvedChainId,
2276
+ address
2277
+ );
2278
+ if (inMemoryToken) {
2279
+ return inMemoryToken;
2280
+ }
2281
+ return null;
2282
+ },
2283
+ [address, chainId, queryClient]
2284
+ );
2285
+ }
2286
+
2287
+ // src/react/hooks/use-symm-cancel-close.ts
2359
2288
  function useSymmCancelClose(options) {
2360
2289
  const { symmCoreClient, chainId, address } = useSymmContext();
2361
2290
  const queryClient = reactQuery.useQueryClient();
2291
+ const resolveAuthToken = useResolveTradeAuthToken({ address, chainId });
2362
2292
  return reactQuery.useMutation({
2363
2293
  ...withSymmMutationConfig(options?.mutation, {
2364
2294
  onSuccess: () => {
@@ -2375,14 +2305,12 @@ function useSymmCancelClose(options) {
2375
2305
  if (!symmCoreClient) {
2376
2306
  throw new Error("symm-core client not available");
2377
2307
  }
2378
- const resolvedAccountAddress = accountAddress ?? address;
2379
2308
  const resolvedChainId = overrideChainId ?? chainId;
2380
- const resolvedAuthToken = authToken ?? (resolvedAccountAddress ? getAuthTokenFromRuntimeCache(
2381
- queryClient,
2382
- resolvedAccountAddress,
2383
- resolvedChainId,
2384
- address
2385
- ) : null);
2309
+ const resolvedAuthToken = await resolveAuthToken(
2310
+ authToken,
2311
+ accountAddress,
2312
+ resolvedChainId
2313
+ );
2386
2314
  if (!resolvedAuthToken) {
2387
2315
  throw new Error("auth token is required to cancel a pending close");
2388
2316
  }
@@ -2397,6 +2325,7 @@ function useSymmCancelClose(options) {
2397
2325
  function useSymmCloseOrder(options) {
2398
2326
  const { symmCoreClient, address, chainId } = useSymmContext();
2399
2327
  const queryClient = reactQuery.useQueryClient();
2328
+ const resolveAuthToken = useResolveTradeAuthToken({ address, chainId });
2400
2329
  return reactQuery.useMutation({
2401
2330
  ...withSymmMutationConfig(options?.mutation, {
2402
2331
  onSuccess: () => {
@@ -2409,16 +2338,17 @@ function useSymmCloseOrder(options) {
2409
2338
  throw new Error("symm-core client not available");
2410
2339
  }
2411
2340
  const typedRequest = request;
2412
- const resolvedAccountAddress = typedRequest.accountAddress ?? address;
2341
+ const authToken = await resolveAuthToken(
2342
+ typedRequest.authToken,
2343
+ typedRequest.accountAddress
2344
+ );
2345
+ if (!authToken) {
2346
+ throw new Error("auth token is required to close an order");
2347
+ }
2413
2348
  return symmCoreClient.orders.close(request.id, {
2414
2349
  kind: request.kind,
2415
2350
  type: request.type,
2416
- authToken: request.authToken ?? (resolvedAccountAddress ? getAuthTokenFromRuntimeCache(
2417
- queryClient,
2418
- resolvedAccountAddress,
2419
- chainId,
2420
- address
2421
- ) ?? void 0 : void 0)
2351
+ authToken
2422
2352
  });
2423
2353
  }
2424
2354
  });
@@ -25528,64 +25458,6 @@ function useSymmBalances(params) {
25528
25458
  enabled: internalEnabled && (params.query?.enabled ?? true)
25529
25459
  });
25530
25460
  }
25531
- function logTradeAuth(event, details) {
25532
- if (typeof window === "undefined") {
25533
- return;
25534
- }
25535
- console.debug("[symm-trade]", event, details ?? {});
25536
- }
25537
- function splitTradeHookArgs(paramsOrOptions, options) {
25538
- if (paramsOrOptions && "mutation" in paramsOrOptions) {
25539
- return {
25540
- params: {},
25541
- options: paramsOrOptions
25542
- };
25543
- }
25544
- return {
25545
- params: paramsOrOptions ?? {},
25546
- options
25547
- };
25548
- }
25549
- function useResolveTradeAuthToken(params = {}) {
25550
- const context = useSymmContext();
25551
- const queryClient = reactQuery.useQueryClient();
25552
- const address = params.address ?? context.address;
25553
- const chainId = params.chainId ?? context.chainId;
25554
- return react.useCallback(
25555
- async (providedAuthToken, accountAddress) => {
25556
- if (providedAuthToken) {
25557
- logTradeAuth("resolve-auth:provided", {
25558
- accountAddress,
25559
- chainId
25560
- });
25561
- return providedAuthToken;
25562
- }
25563
- const resolvedAccountAddress = accountAddress ?? address;
25564
- if (!resolvedAccountAddress) {
25565
- return null;
25566
- }
25567
- const inMemoryToken = getAuthTokenFromRuntimeCache(
25568
- queryClient,
25569
- resolvedAccountAddress,
25570
- chainId,
25571
- address
25572
- );
25573
- if (inMemoryToken) {
25574
- logTradeAuth("resolve-auth:store-hit", {
25575
- accountAddress: resolvedAccountAddress,
25576
- chainId
25577
- });
25578
- return inMemoryToken;
25579
- }
25580
- logTradeAuth("resolve-auth:miss", {
25581
- accountAddress: resolvedAccountAddress,
25582
- chainId
25583
- });
25584
- return null;
25585
- },
25586
- [address, chainId, queryClient]
25587
- );
25588
- }
25589
25461
  function useSymmOpenBasketMutation(options) {
25590
25462
  const { symmCoreClient } = useSymmContext();
25591
25463
  const queryClient = reactQuery.useQueryClient();