@pear-protocol/symmio-client 0.1.11 → 0.2.1

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.
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { createContext, useContext, useState, useRef, useMemo, useEffect, useCallback } from 'react';
2
3
  import { useAccount, usePublicClient, useWalletClient } from 'wagmi';
3
4
  import { createSymmSDK, isAuthExpiredError, isNetworkError, isInsufficientMarginError, isRateLimitedError, isTimeoutError } from '@pear-protocol/symm-core';
@@ -5,8 +6,6 @@ import { encodeFunctionData, isAddress } from 'viem';
5
6
  import { jsx } from 'react/jsx-runtime';
6
7
  import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
7
8
 
8
- // src/react/provider.tsx
9
-
10
9
  // src/constants/addresses.ts
11
10
  var MULTI_ACCOUNT_ADDRESS = {
12
11
  [42161 /* ARBITRUM */]: "0x6273242a7E88b3De90822b31648C212215caaFE4",
@@ -24523,6 +24522,9 @@ var ALL_TRADING_SELECTORS = [
24523
24522
  var symmKeys = {
24524
24523
  all: ["symm"],
24525
24524
  accounts: (address, chainId) => ["symm", "accounts", address, chainId],
24525
+ accountsApi: (address, chainId) => ["symm", "accountsApi", address, chainId],
24526
+ accountsLength: (address, chainId) => ["symm", "accountsLength", address, chainId],
24527
+ accountsWithPositions: (address, chainId) => ["symm", "accountsWithPositions", address, chainId],
24526
24528
  accountSummary: (address, chainId) => ["symm", "accountSummary", address, chainId],
24527
24529
  accountData: (address, chainId) => ["symm", "accountData", address, chainId],
24528
24530
  signature: (address, chainId) => ["symm", "signature", address, chainId],
@@ -24532,14 +24534,25 @@ var symmKeys = {
24532
24534
  openOrders: (address, chainId) => ["symm", "openOrders", address, chainId],
24533
24535
  tradeHistory: (address, chainId) => ["symm", "tradeHistory", address, chainId],
24534
24536
  tpslOrders: (address, chainId) => ["symm", "tpslOrders", address, chainId],
24537
+ tpslOrdersList: (params) => ["symm", "tpslOrders", params],
24535
24538
  twapOrders: (address, chainId) => ["symm", "twapOrders", address, chainId],
24539
+ triggerOrders: (params) => ["symm", "triggerOrders", params],
24540
+ triggerConfig: (orderId) => ["symm", "triggerConfig", orderId],
24536
24541
  markets: (chainId, search) => ["symm", "markets", chainId, search],
24542
+ hedgerMarketById: (id, chainId) => ["symm", "hedgerMarketById", id, chainId],
24543
+ hedgerMarketBySymbol: (symbol, chainId) => ["symm", "hedgerMarketBySymbol", symbol, chainId],
24544
+ lockedParams: (marketName, leverage, chainId) => ["symm", "lockedParams", marketName, leverage, chainId],
24537
24545
  hedgerMarkets: (request) => ["symm", "hedgerMarkets", request],
24538
24546
  fundingRates: (chainId) => ["symm", "fundingRates", chainId],
24547
+ fundingPayments: (params) => ["symm", "fundingPayments", params],
24548
+ fundingHistory: (params) => ["symm", "fundingHistory", params],
24539
24549
  portfolio: (address, chainId) => ["symm", "portfolio", address, chainId],
24540
24550
  notifications: (address, chainId) => ["symm", "notifications", address, chainId],
24541
24551
  unreadCount: (address, chainId) => ["symm", "unreadCount", address, chainId],
24542
24552
  availableMargin: (address, chainId) => ["symm", "availableMargin", address, chainId],
24553
+ pendingIds: (address, chainId) => ["symm", "pendingIds", address, chainId],
24554
+ pendingInstantOpens: (accountAddress, chainId) => ["symm", "pendingInstantOpens", accountAddress, chainId],
24555
+ twapOrder: (orderId) => ["symm", "twapOrder", orderId],
24543
24556
  delegation: (account, target, selectors, chainId) => ["symm", "delegation", account, target, selectors, chainId],
24544
24557
  chartMetadata: (symbolsKey, positionKey) => ["symm", "chartMetadata", symbolsKey, positionKey]
24545
24558
  };
@@ -24601,6 +24614,7 @@ function invalidateOrders(qc) {
24601
24614
  qc.invalidateQueries({ queryKey: ["symm", "openOrders"] });
24602
24615
  qc.invalidateQueries({ queryKey: ["symm", "tpslOrders"] });
24603
24616
  qc.invalidateQueries({ queryKey: ["symm", "twapOrders"] });
24617
+ qc.invalidateQueries({ queryKey: ["symm", "triggerOrders"] });
24604
24618
  }
24605
24619
 
24606
24620
  // src/react/hooks/use-symm-instant-trade.ts
@@ -24733,6 +24747,72 @@ function useSymmAccounts(userAddress, options) {
24733
24747
  editName
24734
24748
  };
24735
24749
  }
24750
+ function useSymmAccountsApi(params) {
24751
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
24752
+ const { userAddress } = params;
24753
+ const chainId = params.chainId ?? ctxChainId;
24754
+ const internalEnabled = !!symmCoreClient && !!userAddress;
24755
+ const query = useQuery({
24756
+ ...params.query,
24757
+ queryKey: symmKeys.accountsApi(userAddress, chainId),
24758
+ queryFn: () => symmCoreClient.accounts.list({
24759
+ userAddress,
24760
+ chainId
24761
+ }),
24762
+ enabled: internalEnabled && (params.query?.enabled ?? true),
24763
+ staleTime: params.query?.staleTime ?? 1e4
24764
+ });
24765
+ return {
24766
+ accounts: query.data?.data?.accounts ?? [],
24767
+ total: query.data?.data?.total ?? 0,
24768
+ isLoading: query.isLoading,
24769
+ refetch: query.refetch
24770
+ };
24771
+ }
24772
+ function useSymmAccountsLength(params) {
24773
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
24774
+ const { userAddress } = params;
24775
+ const chainId = params.chainId ?? ctxChainId;
24776
+ const internalEnabled = !!symmCoreClient && !!userAddress;
24777
+ const query = useQuery({
24778
+ ...params.query,
24779
+ queryKey: symmKeys.accountsLength(userAddress, chainId),
24780
+ queryFn: () => symmCoreClient.accounts.getLength({
24781
+ userAddress,
24782
+ chainId
24783
+ }),
24784
+ enabled: internalEnabled && (params.query?.enabled ?? true),
24785
+ staleTime: params.query?.staleTime ?? 1e4
24786
+ });
24787
+ return {
24788
+ chains: query.data?.data?.chains ?? [],
24789
+ total: query.data?.data?.total ?? 0,
24790
+ isLoading: query.isLoading,
24791
+ refetch: query.refetch
24792
+ };
24793
+ }
24794
+ function useSymmAccountsWithPositions(params) {
24795
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
24796
+ const { userAddress } = params;
24797
+ const chainId = params.chainId ?? ctxChainId;
24798
+ const internalEnabled = !!symmCoreClient && !!userAddress;
24799
+ const query = useQuery({
24800
+ ...params.query,
24801
+ queryKey: symmKeys.accountsWithPositions(userAddress, chainId),
24802
+ queryFn: () => symmCoreClient.accounts.getWithPositions({
24803
+ userAddress,
24804
+ chainId
24805
+ }),
24806
+ enabled: internalEnabled && (params.query?.enabled ?? true),
24807
+ staleTime: params.query?.staleTime ?? 1e4
24808
+ });
24809
+ return {
24810
+ accounts: query.data?.data?.accounts ?? [],
24811
+ total: query.data?.data?.total ?? 0,
24812
+ isLoading: query.isLoading,
24813
+ refetch: query.refetch
24814
+ };
24815
+ }
24736
24816
  function useSymmApproval(params) {
24737
24817
  const { symmioClient, chainId } = useSymmContext();
24738
24818
  const queryClient = useQueryClient();
@@ -24779,6 +24859,57 @@ function useSymmApproval(params) {
24779
24859
  approve: approve2
24780
24860
  };
24781
24861
  }
24862
+ function useSymmCancelClose() {
24863
+ const { symmCoreClient, authToken: ctxAuthToken, refreshAuth, chainId } = useSymmContext();
24864
+ const queryClient = useQueryClient();
24865
+ const cancelClose = useMutation({
24866
+ mutationFn: async ({
24867
+ quoteId,
24868
+ authToken,
24869
+ accountAddress,
24870
+ overrideChainId
24871
+ }) => {
24872
+ if (!symmCoreClient) {
24873
+ throw new Error("symm-core client not available");
24874
+ }
24875
+ const resolvedAuthToken = authToken ?? ctxAuthToken ?? (accountAddress ? await refreshAuth(accountAddress) : null);
24876
+ if (!resolvedAuthToken) {
24877
+ throw new Error("auth token is required to cancel a pending close");
24878
+ }
24879
+ return symmCoreClient.orders.cancelClose({
24880
+ quoteId,
24881
+ authToken: resolvedAuthToken,
24882
+ chainId: overrideChainId ?? chainId
24883
+ });
24884
+ },
24885
+ onSuccess: () => {
24886
+ invalidateOrders(queryClient);
24887
+ invalidatePositions(queryClient);
24888
+ }
24889
+ });
24890
+ return { cancelClose };
24891
+ }
24892
+ function useSymmCloseOrder() {
24893
+ const { symmCoreClient, authToken: ctxAuthToken } = useSymmContext();
24894
+ const queryClient = useQueryClient();
24895
+ const closeOrder = useMutation({
24896
+ mutationFn: async (request) => {
24897
+ if (!symmCoreClient) {
24898
+ throw new Error("symm-core client not available");
24899
+ }
24900
+ return symmCoreClient.orders.close(request.id, {
24901
+ kind: request.kind,
24902
+ type: request.type,
24903
+ authToken: request.authToken ?? ctxAuthToken ?? void 0
24904
+ });
24905
+ },
24906
+ onSuccess: () => {
24907
+ invalidateOrders(queryClient);
24908
+ invalidatePositions(queryClient);
24909
+ }
24910
+ });
24911
+ return { closeOrder };
24912
+ }
24782
24913
  function useSymmDeposit() {
24783
24914
  const { symmioClient } = useSymmContext();
24784
24915
  const queryClient = useQueryClient();
@@ -25138,6 +25269,40 @@ function useSymmTpsl() {
25138
25269
  });
25139
25270
  return { setTpsl, cancelTpsl };
25140
25271
  }
25272
+ function useSymmTpslOrders(params) {
25273
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25274
+ const { accountAddress, mainAddress, positionId, type, status } = params;
25275
+ const chainId = params.chainId ?? ctxChainId;
25276
+ const internalEnabled = !!symmCoreClient && !!(accountAddress || mainAddress || positionId);
25277
+ const request = {
25278
+ address: accountAddress,
25279
+ mainAddress,
25280
+ positionId,
25281
+ type,
25282
+ status,
25283
+ chainId
25284
+ };
25285
+ const query = useQuery({
25286
+ ...params.query,
25287
+ queryKey: symmKeys.tpslOrdersList({
25288
+ accountAddress,
25289
+ mainAddress,
25290
+ positionId,
25291
+ type,
25292
+ status,
25293
+ chainId
25294
+ }),
25295
+ queryFn: () => symmCoreClient.orders.getTpslOrders(request),
25296
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25297
+ staleTime: params.query?.staleTime ?? 5e3
25298
+ });
25299
+ return {
25300
+ tpslOrders: query.data?.data?.tpslOrders ?? [],
25301
+ total: query.data?.data?.total ?? 0,
25302
+ isLoading: query.isLoading,
25303
+ refetch: query.refetch
25304
+ };
25305
+ }
25141
25306
  function useSymmTwap(params) {
25142
25307
  const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25143
25308
  const queryClient = useQueryClient();
@@ -25170,6 +25335,90 @@ function useSymmTwap(params) {
25170
25335
  cancelTwap
25171
25336
  };
25172
25337
  }
25338
+ function useSymmTriggerConfig(params) {
25339
+ const { symmCoreClient } = useSymmContext();
25340
+ const queryClient = useQueryClient();
25341
+ const { orderId } = params;
25342
+ const internalEnabled = !!symmCoreClient && !!orderId;
25343
+ const query = useQuery({
25344
+ ...params.query,
25345
+ queryKey: symmKeys.triggerConfig(orderId),
25346
+ queryFn: () => symmCoreClient.orders.getTriggerConfig(orderId),
25347
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25348
+ staleTime: params.query?.staleTime ?? 5e3
25349
+ });
25350
+ const setTriggerConfig = useMutation({
25351
+ mutationFn: async (request) => {
25352
+ if (!symmCoreClient || !orderId) {
25353
+ throw new Error("symm-core client or orderId not available");
25354
+ }
25355
+ return symmCoreClient.orders.setTriggerConfig(orderId, request);
25356
+ },
25357
+ onSuccess: () => {
25358
+ queryClient.invalidateQueries({
25359
+ queryKey: symmKeys.triggerConfig(orderId)
25360
+ });
25361
+ invalidateOrders(queryClient);
25362
+ }
25363
+ });
25364
+ const clearTriggerConfig = useMutation({
25365
+ mutationFn: async () => {
25366
+ if (!symmCoreClient || !orderId) {
25367
+ throw new Error("symm-core client or orderId not available");
25368
+ }
25369
+ return symmCoreClient.orders.clearTriggerConfig(orderId);
25370
+ },
25371
+ onSuccess: () => {
25372
+ queryClient.invalidateQueries({
25373
+ queryKey: symmKeys.triggerConfig(orderId)
25374
+ });
25375
+ invalidateOrders(queryClient);
25376
+ }
25377
+ });
25378
+ return {
25379
+ triggerConfig: query.data?.data?.triggerConfig ?? null,
25380
+ isLoading: query.isLoading,
25381
+ refetch: query.refetch,
25382
+ setTriggerConfig,
25383
+ clearTriggerConfig
25384
+ };
25385
+ }
25386
+ function useSymmTriggerOrders(params) {
25387
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25388
+ const { accountAddress, mainAddress, status, limit, offset } = params;
25389
+ const chainId = params.chainId ?? ctxChainId;
25390
+ const internalEnabled = !!symmCoreClient && !!(accountAddress || mainAddress);
25391
+ const request = {
25392
+ address: accountAddress,
25393
+ mainAddress,
25394
+ chainId,
25395
+ status,
25396
+ limit,
25397
+ offset
25398
+ };
25399
+ const query = useQuery({
25400
+ ...params.query,
25401
+ queryKey: symmKeys.triggerOrders({
25402
+ accountAddress,
25403
+ mainAddress,
25404
+ chainId,
25405
+ status,
25406
+ limit,
25407
+ offset
25408
+ }),
25409
+ queryFn: () => symmCoreClient.orders.listTriggerOrders(request),
25410
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25411
+ staleTime: params.query?.staleTime ?? 5e3
25412
+ });
25413
+ return {
25414
+ orders: query.data?.data?.orders ?? [],
25415
+ total: query.data?.data?.total ?? 0,
25416
+ limit: query.data?.data?.limit ?? limit ?? 0,
25417
+ offset: query.data?.data?.offset ?? offset ?? 0,
25418
+ isLoading: query.isLoading,
25419
+ refetch: query.refetch
25420
+ };
25421
+ }
25173
25422
  function useSymmMarkets(params) {
25174
25423
  const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25175
25424
  const chainId = params?.chainId ?? ctxChainId;
@@ -25193,6 +25442,66 @@ function useSymmMarkets(params) {
25193
25442
  refetch: query.refetch
25194
25443
  };
25195
25444
  }
25445
+ function useSymmHedgerMarketById(params) {
25446
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25447
+ const { id } = params;
25448
+ const chainId = params.chainId ?? ctxChainId;
25449
+ const internalEnabled = !!symmCoreClient && id != null;
25450
+ const query = useQuery({
25451
+ ...params.query,
25452
+ queryKey: symmKeys.hedgerMarketById(id, chainId),
25453
+ queryFn: () => symmCoreClient.markets.getById(id, chainId),
25454
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25455
+ staleTime: params.query?.staleTime ?? 3e4
25456
+ });
25457
+ return {
25458
+ market: query.data?.data?.markets?.[0] ?? null,
25459
+ markets: query.data?.data?.markets ?? [],
25460
+ isLoading: query.isLoading,
25461
+ refetch: query.refetch
25462
+ };
25463
+ }
25464
+ function useSymmHedgerMarketBySymbol(params) {
25465
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25466
+ const { symbol } = params;
25467
+ const chainId = params.chainId ?? ctxChainId;
25468
+ const internalEnabled = !!symmCoreClient && !!symbol;
25469
+ const query = useQuery({
25470
+ ...params.query,
25471
+ queryKey: symmKeys.hedgerMarketBySymbol(symbol, chainId),
25472
+ queryFn: () => symmCoreClient.markets.getBySymbol(symbol, chainId),
25473
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25474
+ staleTime: params.query?.staleTime ?? 3e4
25475
+ });
25476
+ return {
25477
+ market: query.data?.data?.markets?.[0] ?? null,
25478
+ markets: query.data?.data?.markets ?? [],
25479
+ isLoading: query.isLoading,
25480
+ refetch: query.refetch
25481
+ };
25482
+ }
25483
+ function useSymmLockedParams(params) {
25484
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25485
+ const { marketName, leverage } = params;
25486
+ const chainId = params.chainId ?? ctxChainId;
25487
+ const internalEnabled = !!symmCoreClient && !!marketName && leverage != null;
25488
+ const query = useQuery({
25489
+ ...params.query,
25490
+ queryKey: symmKeys.lockedParams(marketName, leverage, chainId),
25491
+ queryFn: () => symmCoreClient.markets.getLockedParams({
25492
+ marketName,
25493
+ leverage,
25494
+ chainId
25495
+ }),
25496
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25497
+ staleTime: params.query?.staleTime ?? 3e4
25498
+ });
25499
+ return {
25500
+ lockedParams: query.data?.data ?? null,
25501
+ isLoading: query.isLoading,
25502
+ refetch: query.refetch
25503
+ };
25504
+ }
25196
25505
  var EMPTY_MARKETS = [];
25197
25506
  var EMPTY_SYMBOLS = [];
25198
25507
  var EMPTY_MAP_BY_ID = /* @__PURE__ */ new Map();
@@ -25249,6 +25558,72 @@ function useSymmFunding(params) {
25249
25558
  isLoading: query.isLoading
25250
25559
  };
25251
25560
  }
25561
+ function useSymmFundingHistory(params) {
25562
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25563
+ const chainId = params.chainId ?? ctxChainId;
25564
+ const {
25565
+ period,
25566
+ longSymbols,
25567
+ shortSymbols,
25568
+ interval,
25569
+ weightMode,
25570
+ includeContributions
25571
+ } = params;
25572
+ const internalEnabled = !!symmCoreClient;
25573
+ const request = {
25574
+ chainId,
25575
+ period,
25576
+ longSymbols,
25577
+ shortSymbols,
25578
+ interval,
25579
+ weightMode,
25580
+ includeContributions
25581
+ };
25582
+ const query = useQuery({
25583
+ ...params.query,
25584
+ queryKey: symmKeys.fundingHistory(request),
25585
+ queryFn: () => symmCoreClient.funding.getHistory(request),
25586
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25587
+ staleTime: params.query?.staleTime ?? 3e4
25588
+ });
25589
+ return {
25590
+ history: query.data?.data ?? null,
25591
+ isLoading: query.isLoading,
25592
+ refetch: query.refetch
25593
+ };
25594
+ }
25595
+ function useSymmFundingPayments(params) {
25596
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25597
+ const { address, positionId, limit, offset } = params;
25598
+ const chainId = params.chainId ?? ctxChainId;
25599
+ const internalEnabled = !!symmCoreClient && !!(address || positionId);
25600
+ const request = {
25601
+ address,
25602
+ positionId,
25603
+ chainId,
25604
+ limit,
25605
+ offset
25606
+ };
25607
+ const query = useQuery({
25608
+ ...params.query,
25609
+ queryKey: symmKeys.fundingPayments({
25610
+ address,
25611
+ positionId,
25612
+ chainId,
25613
+ limit,
25614
+ offset
25615
+ }),
25616
+ queryFn: () => symmCoreClient.funding.getPayments(request),
25617
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25618
+ staleTime: params.query?.staleTime ?? 3e4
25619
+ });
25620
+ return {
25621
+ payments: query.data?.data?.payments ?? [],
25622
+ total: query.data?.data?.total ?? 0,
25623
+ isLoading: query.isLoading,
25624
+ refetch: query.refetch
25625
+ };
25626
+ }
25252
25627
  function useSymmPortfolio(params) {
25253
25628
  const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25254
25629
  const { accountAddress, mainAddress } = params;
@@ -25298,11 +25673,12 @@ function useSymmNotifications(params) {
25298
25673
  staleTime: params.query?.staleTime ?? 1e4
25299
25674
  });
25300
25675
  const markRead = useMutation({
25301
- mutationFn: async ({ id }) => {
25676
+ mutationFn: async ({ id, timestamp }) => {
25302
25677
  if (!symmCoreClient || !userAddress)
25303
25678
  throw new Error("symm-core client not available");
25304
25679
  return symmCoreClient.notifications.markRead({
25305
25680
  id,
25681
+ timestamp,
25306
25682
  userAddress,
25307
25683
  chainId
25308
25684
  });
@@ -25324,6 +25700,78 @@ function useSymmNotifications(params) {
25324
25700
  refetch: notificationsQuery.refetch
25325
25701
  };
25326
25702
  }
25703
+ function useSymmPendingIds(params) {
25704
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25705
+ const { accountAddress } = params;
25706
+ const chainId = params.chainId ?? ctxChainId;
25707
+ const internalEnabled = !!symmCoreClient && !!accountAddress;
25708
+ const query = useQuery({
25709
+ ...params.query,
25710
+ queryKey: symmKeys.pendingIds(accountAddress, chainId),
25711
+ queryFn: () => symmCoreClient.positions.getPendingIds({
25712
+ address: accountAddress,
25713
+ chainId
25714
+ }),
25715
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25716
+ staleTime: params.query?.staleTime ?? 5e3
25717
+ });
25718
+ return {
25719
+ pendingIds: query.data?.data?.pendingIds ?? [],
25720
+ isLoading: query.isLoading,
25721
+ refetch: query.refetch
25722
+ };
25723
+ }
25724
+ function useSymmPendingInstantOpens(params) {
25725
+ const {
25726
+ symmCoreClient,
25727
+ chainId: ctxChainId,
25728
+ authToken: ctxAuthToken,
25729
+ refreshAuth
25730
+ } = useSymmContext();
25731
+ const { accountAddress, authToken: providedAuthToken } = params;
25732
+ const chainId = params.chainId ?? ctxChainId;
25733
+ const internalEnabled = !!symmCoreClient && !!accountAddress;
25734
+ const query = useQuery({
25735
+ ...params.query,
25736
+ queryKey: symmKeys.pendingInstantOpens(accountAddress, chainId),
25737
+ queryFn: async () => {
25738
+ const authToken = providedAuthToken ?? ctxAuthToken ?? await refreshAuth(accountAddress);
25739
+ if (!authToken) {
25740
+ throw new Error("failed to acquire auth token for pending instant opens");
25741
+ }
25742
+ return symmCoreClient.positions.getPendingInstantOpens({
25743
+ accountAddress,
25744
+ chainId,
25745
+ authToken
25746
+ });
25747
+ },
25748
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25749
+ staleTime: params.query?.staleTime ?? 5e3
25750
+ });
25751
+ return {
25752
+ pendingOpens: query.data?.data?.pendingOpens ?? [],
25753
+ total: query.data?.data?.total ?? 0,
25754
+ isLoading: query.isLoading,
25755
+ refetch: query.refetch
25756
+ };
25757
+ }
25758
+ function useSymmTwapOrder(params) {
25759
+ const { symmCoreClient } = useSymmContext();
25760
+ const { orderId } = params;
25761
+ const internalEnabled = !!symmCoreClient && !!orderId;
25762
+ const query = useQuery({
25763
+ ...params.query,
25764
+ queryKey: symmKeys.twapOrder(orderId),
25765
+ queryFn: () => symmCoreClient.orders.getTwapOrder(orderId),
25766
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25767
+ staleTime: params.query?.staleTime ?? 5e3
25768
+ });
25769
+ return {
25770
+ order: query.data?.data ?? null,
25771
+ isLoading: query.isLoading,
25772
+ refetch: query.refetch
25773
+ };
25774
+ }
25327
25775
  function asUnsubscribeFn(value) {
25328
25776
  return typeof value === "function" ? value : null;
25329
25777
  }
@@ -25381,17 +25829,20 @@ function useSymmWs(params) {
25381
25829
  }));
25382
25830
  if (notificationsUnsub) unsubscribers.push(notificationsUnsub);
25383
25831
  const tpslUnsub = asUnsubscribeFn(ws.subscribeToTpsl(addr, chainId, () => {
25384
- queryClient.invalidateQueries({
25385
- queryKey: symmKeys.tpslOrders(accountAddress, chainId)
25386
- });
25832
+ queryClient.invalidateQueries({ queryKey: ["symm", "tpslOrders"] });
25833
+ queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
25387
25834
  }));
25388
25835
  if (tpslUnsub) unsubscribers.push(tpslUnsub);
25389
25836
  const twapUnsub = asUnsubscribeFn(ws.subscribeToTwapOrders(addr, chainId, () => {
25390
- queryClient.invalidateQueries({
25391
- queryKey: symmKeys.twapOrders(accountAddress, chainId)
25392
- });
25837
+ queryClient.invalidateQueries({ queryKey: ["symm", "twapOrders"] });
25838
+ queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
25393
25839
  }));
25394
25840
  if (twapUnsub) unsubscribers.push(twapUnsub);
25841
+ const triggerOrdersUnsub = asUnsubscribeFn(ws.subscribeToTriggerOrders(addr, chainId, () => {
25842
+ queryClient.invalidateQueries({ queryKey: ["symm", "triggerOrders"] });
25843
+ queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
25844
+ }));
25845
+ if (triggerOrdersUnsub) unsubscribers.push(triggerOrdersUnsub);
25395
25846
  const executionsUnsub = asUnsubscribeFn(ws.subscribeToExecutions(addr, chainId, () => {
25396
25847
  queryClient.invalidateQueries({
25397
25848
  queryKey: symmKeys.positions(accountAddress, chainId)
@@ -26431,6 +26882,6 @@ function getSymmErrorMessage(error) {
26431
26882
  return "An unexpected error occurred.";
26432
26883
  }
26433
26884
 
26434
- export { SymmProvider, getSymmErrorMessage, symmKeys, useSymmAccountData, useSymmAccountSummary, useSymmAccounts, useSymmApproval, useSymmAuth, useSymmAvailableMargin, useSymmBalances, useSymmChartCandles, useSymmChartSelection, useSymmCollateral, useSymmContext, useSymmCoreClient, useSymmDelegation, useSymmDeposit, useSymmFunding, useSymmHedgerMarkets, useSymmInstantTrade, useSymmMarkets, useSymmNotifications, useSymmOpenOrders, useSymmPerformanceOverlays, useSymmPortfolio, useSymmPositions, useSymmSignature, useSymmTokenSelectionMetadata, useSymmTpsl, useSymmTrade, useSymmTradeHistory, useSymmTwap, useSymmWithdraw, useSymmWs, useSymmioClient };
26885
+ export { SymmProvider, getSymmErrorMessage, symmKeys, useSymmAccountData, useSymmAccountSummary, useSymmAccounts, useSymmAccountsApi, useSymmAccountsLength, useSymmAccountsWithPositions, useSymmApproval, useSymmAuth, useSymmAvailableMargin, useSymmBalances, useSymmCancelClose, useSymmChartCandles, useSymmChartSelection, useSymmCloseOrder, useSymmCollateral, useSymmContext, useSymmCoreClient, useSymmDelegation, useSymmDeposit, useSymmFunding, useSymmFundingHistory, useSymmFundingPayments, useSymmHedgerMarketById, useSymmHedgerMarketBySymbol, useSymmHedgerMarkets, useSymmInstantTrade, useSymmLockedParams, useSymmMarkets, useSymmNotifications, useSymmOpenOrders, useSymmPendingIds, useSymmPendingInstantOpens, useSymmPerformanceOverlays, useSymmPortfolio, useSymmPositions, useSymmSignature, useSymmTokenSelectionMetadata, useSymmTpsl, useSymmTpslOrders, useSymmTrade, useSymmTradeHistory, useSymmTriggerConfig, useSymmTriggerOrders, useSymmTwap, useSymmTwapOrder, useSymmWithdraw, useSymmWs, useSymmioClient };
26435
26886
  //# sourceMappingURL=index.mjs.map
26436
26887
  //# sourceMappingURL=index.mjs.map