@pear-protocol/symmio-client 0.1.10 → 0.2.0

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.
@@ -24357,8 +24357,8 @@ function SymmProvider({
24357
24357
  }) {
24358
24358
  const { address, chainId: walletChainId } = wagmi.useAccount();
24359
24359
  const publicClient = wagmi.usePublicClient();
24360
- const { data: walletClient } = wagmi.useWalletClient();
24361
24360
  const chainId = configChainId ?? walletChainId ?? 42161;
24361
+ const { data: walletClient } = wagmi.useWalletClient({ chainId });
24362
24362
  const [accessToken, setAccessToken] = react.useState(null);
24363
24363
  const prevAddressRef = react.useRef(address);
24364
24364
  const prevChainRef = react.useRef(chainId);
@@ -24455,6 +24455,13 @@ function SymmProvider({
24455
24455
  clearCachedToken(previousAddress, previousChainId);
24456
24456
  }
24457
24457
  }, [address, walletClient, chainId]);
24458
+ react.useEffect(() => {
24459
+ console.log("[SymmProvider] symmCoreConfig", {
24460
+ apiUrl: symmCoreConfig.apiUrl,
24461
+ wsUrl: symmCoreConfig.wsUrl,
24462
+ resolvedChainId: chainId
24463
+ });
24464
+ }, [symmCoreConfig.apiUrl, symmCoreConfig.wsUrl, chainId]);
24458
24465
  const symmCoreClient = react.useMemo(() => {
24459
24466
  return symmCore.createSymmSDK({
24460
24467
  apiUrl: symmCoreConfig.apiUrl,
@@ -24517,24 +24524,38 @@ var ALL_TRADING_SELECTORS = [
24517
24524
  // src/react/query-keys.ts
24518
24525
  var symmKeys = {
24519
24526
  all: ["symm"],
24520
- accounts: (address) => ["symm", "accounts", address],
24527
+ accounts: (address, chainId) => ["symm", "accounts", address, chainId],
24528
+ accountsApi: (address, chainId) => ["symm", "accountsApi", address, chainId],
24529
+ accountsLength: (address, chainId) => ["symm", "accountsLength", address, chainId],
24530
+ accountsWithPositions: (address, chainId) => ["symm", "accountsWithPositions", address, chainId],
24521
24531
  accountSummary: (address, chainId) => ["symm", "accountSummary", address, chainId],
24522
24532
  accountData: (address, chainId) => ["symm", "accountData", address, chainId],
24523
- signature: (address) => ["symm", "signature", address],
24524
- approval: (owner, spender) => ["symm", "approval", owner, spender],
24533
+ signature: (address, chainId) => ["symm", "signature", address, chainId],
24534
+ approval: (owner, spender, chainId) => ["symm", "approval", owner, spender, chainId],
24525
24535
  balances: (address, chainId) => ["symm", "balances", address, chainId],
24526
24536
  positions: (address, chainId) => ["symm", "positions", address, chainId],
24527
24537
  openOrders: (address, chainId) => ["symm", "openOrders", address, chainId],
24528
24538
  tradeHistory: (address, chainId) => ["symm", "tradeHistory", address, chainId],
24529
24539
  tpslOrders: (address, chainId) => ["symm", "tpslOrders", address, chainId],
24540
+ tpslOrdersList: (params) => ["symm", "tpslOrders", params],
24530
24541
  twapOrders: (address, chainId) => ["symm", "twapOrders", address, chainId],
24542
+ triggerOrders: (params) => ["symm", "triggerOrders", params],
24543
+ triggerConfig: (orderId) => ["symm", "triggerConfig", orderId],
24531
24544
  markets: (chainId, search) => ["symm", "markets", chainId, search],
24545
+ hedgerMarketById: (id, chainId) => ["symm", "hedgerMarketById", id, chainId],
24546
+ hedgerMarketBySymbol: (symbol, chainId) => ["symm", "hedgerMarketBySymbol", symbol, chainId],
24547
+ lockedParams: (marketName, leverage, chainId) => ["symm", "lockedParams", marketName, leverage, chainId],
24532
24548
  hedgerMarkets: (request) => ["symm", "hedgerMarkets", request],
24533
24549
  fundingRates: (chainId) => ["symm", "fundingRates", chainId],
24550
+ fundingPayments: (params) => ["symm", "fundingPayments", params],
24551
+ fundingHistory: (params) => ["symm", "fundingHistory", params],
24534
24552
  portfolio: (address, chainId) => ["symm", "portfolio", address, chainId],
24535
24553
  notifications: (address, chainId) => ["symm", "notifications", address, chainId],
24536
24554
  unreadCount: (address, chainId) => ["symm", "unreadCount", address, chainId],
24537
24555
  availableMargin: (address, chainId) => ["symm", "availableMargin", address, chainId],
24556
+ pendingIds: (address, chainId) => ["symm", "pendingIds", address, chainId],
24557
+ pendingInstantOpens: (accountAddress, chainId) => ["symm", "pendingInstantOpens", accountAddress, chainId],
24558
+ twapOrder: (orderId) => ["symm", "twapOrder", orderId],
24538
24559
  delegation: (account, target, selectors, chainId) => ["symm", "delegation", account, target, selectors, chainId],
24539
24560
  chartMetadata: (symbolsKey, positionKey) => ["symm", "chartMetadata", symbolsKey, positionKey]
24540
24561
  };
@@ -24596,6 +24617,7 @@ function invalidateOrders(qc) {
24596
24617
  qc.invalidateQueries({ queryKey: ["symm", "openOrders"] });
24597
24618
  qc.invalidateQueries({ queryKey: ["symm", "tpslOrders"] });
24598
24619
  qc.invalidateQueries({ queryKey: ["symm", "twapOrders"] });
24620
+ qc.invalidateQueries({ queryKey: ["symm", "triggerOrders"] });
24599
24621
  }
24600
24622
 
24601
24623
  // src/react/hooks/use-symm-instant-trade.ts
@@ -24688,12 +24710,12 @@ function useSymmInstantTrade(params) {
24688
24710
  }
24689
24711
  var EMPTY_ACCOUNTS = [];
24690
24712
  function useSymmAccounts(userAddress, options) {
24691
- const { symmioClient } = useSymmContext();
24713
+ const { symmioClient, chainId } = useSymmContext();
24692
24714
  const queryClient = reactQuery.useQueryClient();
24693
24715
  const internalEnabled = !!symmioClient && !!userAddress;
24694
24716
  const accountsQuery = reactQuery.useQuery({
24695
24717
  ...options?.query,
24696
- queryKey: symmKeys.accounts(userAddress),
24718
+ queryKey: symmKeys.accounts(userAddress, chainId),
24697
24719
  queryFn: () => symmioClient.account.getAll(userAddress),
24698
24720
  enabled: internalEnabled && (options?.query?.enabled ?? true)
24699
24721
  });
@@ -24703,7 +24725,7 @@ function useSymmAccounts(userAddress, options) {
24703
24725
  return symmioClient.account.addAccount(name);
24704
24726
  },
24705
24727
  onSuccess: () => {
24706
- queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress) });
24728
+ queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress, chainId) });
24707
24729
  }
24708
24730
  });
24709
24731
  const editName = reactQuery.useMutation({
@@ -24715,7 +24737,7 @@ function useSymmAccounts(userAddress, options) {
24715
24737
  return symmioClient.account.editName(accountAddress, name);
24716
24738
  },
24717
24739
  onSuccess: () => {
24718
- queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress) });
24740
+ queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress, chainId) });
24719
24741
  }
24720
24742
  });
24721
24743
  return {
@@ -24728,8 +24750,74 @@ function useSymmAccounts(userAddress, options) {
24728
24750
  editName
24729
24751
  };
24730
24752
  }
24753
+ function useSymmAccountsApi(params) {
24754
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
24755
+ const { userAddress } = params;
24756
+ const chainId = params.chainId ?? ctxChainId;
24757
+ const internalEnabled = !!symmCoreClient && !!userAddress;
24758
+ const query = reactQuery.useQuery({
24759
+ ...params.query,
24760
+ queryKey: symmKeys.accountsApi(userAddress, chainId),
24761
+ queryFn: () => symmCoreClient.accounts.list({
24762
+ userAddress,
24763
+ chainId
24764
+ }),
24765
+ enabled: internalEnabled && (params.query?.enabled ?? true),
24766
+ staleTime: params.query?.staleTime ?? 1e4
24767
+ });
24768
+ return {
24769
+ accounts: query.data?.data?.accounts ?? [],
24770
+ total: query.data?.data?.total ?? 0,
24771
+ isLoading: query.isLoading,
24772
+ refetch: query.refetch
24773
+ };
24774
+ }
24775
+ function useSymmAccountsLength(params) {
24776
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
24777
+ const { userAddress } = params;
24778
+ const chainId = params.chainId ?? ctxChainId;
24779
+ const internalEnabled = !!symmCoreClient && !!userAddress;
24780
+ const query = reactQuery.useQuery({
24781
+ ...params.query,
24782
+ queryKey: symmKeys.accountsLength(userAddress, chainId),
24783
+ queryFn: () => symmCoreClient.accounts.getLength({
24784
+ userAddress,
24785
+ chainId
24786
+ }),
24787
+ enabled: internalEnabled && (params.query?.enabled ?? true),
24788
+ staleTime: params.query?.staleTime ?? 1e4
24789
+ });
24790
+ return {
24791
+ chains: query.data?.data?.chains ?? [],
24792
+ total: query.data?.data?.total ?? 0,
24793
+ isLoading: query.isLoading,
24794
+ refetch: query.refetch
24795
+ };
24796
+ }
24797
+ function useSymmAccountsWithPositions(params) {
24798
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
24799
+ const { userAddress } = params;
24800
+ const chainId = params.chainId ?? ctxChainId;
24801
+ const internalEnabled = !!symmCoreClient && !!userAddress;
24802
+ const query = reactQuery.useQuery({
24803
+ ...params.query,
24804
+ queryKey: symmKeys.accountsWithPositions(userAddress, chainId),
24805
+ queryFn: () => symmCoreClient.accounts.getWithPositions({
24806
+ userAddress,
24807
+ chainId
24808
+ }),
24809
+ enabled: internalEnabled && (params.query?.enabled ?? true),
24810
+ staleTime: params.query?.staleTime ?? 1e4
24811
+ });
24812
+ return {
24813
+ accounts: query.data?.data?.accounts ?? [],
24814
+ total: query.data?.data?.total ?? 0,
24815
+ isLoading: query.isLoading,
24816
+ refetch: query.refetch
24817
+ };
24818
+ }
24731
24819
  function useSymmApproval(params) {
24732
- const { symmioClient } = useSymmContext();
24820
+ const { symmioClient, chainId } = useSymmContext();
24733
24821
  const queryClient = reactQuery.useQueryClient();
24734
24822
  const { owner, amount, spender, collateralToken } = params;
24735
24823
  const resolvedSpender = spender ?? symmioClient?.addresses.multiAccount;
@@ -24744,7 +24832,7 @@ function useSymmApproval(params) {
24744
24832
  const internalEnabled = !!symmioClient && !!owner && !!resolvedSpender && !!resolvedToken;
24745
24833
  const approvalQuery = reactQuery.useQuery({
24746
24834
  ...params.query,
24747
- queryKey: symmKeys.approval(owner, resolvedSpender),
24835
+ queryKey: symmKeys.approval(owner, resolvedSpender, chainId),
24748
24836
  queryFn: async () => {
24749
24837
  const [allowance, balance] = await Promise.all([
24750
24838
  symmioClient.approval.getAllowance(resolvedToken, owner, resolvedSpender),
@@ -24762,7 +24850,7 @@ function useSymmApproval(params) {
24762
24850
  },
24763
24851
  onSuccess: () => {
24764
24852
  queryClient.invalidateQueries({
24765
- queryKey: symmKeys.approval(owner, resolvedSpender)
24853
+ queryKey: symmKeys.approval(owner, resolvedSpender, chainId)
24766
24854
  });
24767
24855
  }
24768
24856
  });
@@ -24774,6 +24862,57 @@ function useSymmApproval(params) {
24774
24862
  approve: approve2
24775
24863
  };
24776
24864
  }
24865
+ function useSymmCancelClose() {
24866
+ const { symmCoreClient, authToken: ctxAuthToken, refreshAuth, chainId } = useSymmContext();
24867
+ const queryClient = reactQuery.useQueryClient();
24868
+ const cancelClose = reactQuery.useMutation({
24869
+ mutationFn: async ({
24870
+ quoteId,
24871
+ authToken,
24872
+ accountAddress,
24873
+ overrideChainId
24874
+ }) => {
24875
+ if (!symmCoreClient) {
24876
+ throw new Error("symm-core client not available");
24877
+ }
24878
+ const resolvedAuthToken = authToken ?? ctxAuthToken ?? (accountAddress ? await refreshAuth(accountAddress) : null);
24879
+ if (!resolvedAuthToken) {
24880
+ throw new Error("auth token is required to cancel a pending close");
24881
+ }
24882
+ return symmCoreClient.orders.cancelClose({
24883
+ quoteId,
24884
+ authToken: resolvedAuthToken,
24885
+ chainId: overrideChainId ?? chainId
24886
+ });
24887
+ },
24888
+ onSuccess: () => {
24889
+ invalidateOrders(queryClient);
24890
+ invalidatePositions(queryClient);
24891
+ }
24892
+ });
24893
+ return { cancelClose };
24894
+ }
24895
+ function useSymmCloseOrder() {
24896
+ const { symmCoreClient, authToken: ctxAuthToken } = useSymmContext();
24897
+ const queryClient = reactQuery.useQueryClient();
24898
+ const closeOrder = reactQuery.useMutation({
24899
+ mutationFn: async (request) => {
24900
+ if (!symmCoreClient) {
24901
+ throw new Error("symm-core client not available");
24902
+ }
24903
+ return symmCoreClient.orders.close(request.id, {
24904
+ kind: request.kind,
24905
+ type: request.type,
24906
+ authToken: request.authToken ?? ctxAuthToken ?? void 0
24907
+ });
24908
+ },
24909
+ onSuccess: () => {
24910
+ invalidateOrders(queryClient);
24911
+ invalidatePositions(queryClient);
24912
+ }
24913
+ });
24914
+ return { closeOrder };
24915
+ }
24777
24916
  function useSymmDeposit() {
24778
24917
  const { symmioClient } = useSymmContext();
24779
24918
  const queryClient = reactQuery.useQueryClient();
@@ -24868,12 +25007,12 @@ function useSymmCollateral() {
24868
25007
  return { allocate: allocate2, deallocate: deallocate2, internalTransfer: internalTransfer2 };
24869
25008
  }
24870
25009
  function useSymmSignature(userAddress, options) {
24871
- const { symmioClient } = useSymmContext();
25010
+ const { symmioClient, chainId } = useSymmContext();
24872
25011
  const queryClient = reactQuery.useQueryClient();
24873
25012
  const internalEnabled = !!symmioClient && !!userAddress;
24874
25013
  const signedQuery = reactQuery.useQuery({
24875
25014
  ...options?.query,
24876
- queryKey: symmKeys.signature(userAddress),
25015
+ queryKey: symmKeys.signature(userAddress, chainId),
24877
25016
  queryFn: () => symmioClient.signature.hasSigned(userAddress),
24878
25017
  enabled: internalEnabled && (options?.query?.enabled ?? true)
24879
25018
  });
@@ -24885,7 +25024,7 @@ function useSymmSignature(userAddress, options) {
24885
25024
  },
24886
25025
  onSuccess: () => {
24887
25026
  queryClient.invalidateQueries({
24888
- queryKey: symmKeys.signature(userAddress)
25027
+ queryKey: symmKeys.signature(userAddress, chainId)
24889
25028
  });
24890
25029
  }
24891
25030
  });
@@ -24896,7 +25035,7 @@ function useSymmSignature(userAddress, options) {
24896
25035
  };
24897
25036
  }
24898
25037
  function useSymmAvailableMargin(params) {
24899
- const { symmioClient } = useSymmContext();
25038
+ const { symmioClient, chainId } = useSymmContext();
24900
25039
  const { accountAddress, upnl } = params;
24901
25040
  const resolvedUpnl = upnl ?? 0n;
24902
25041
  const selectWithUpnl = react.useCallback(
@@ -24910,7 +25049,7 @@ function useSymmAvailableMargin(params) {
24910
25049
  const internalEnabled = !!symmioClient && !!accountAddress;
24911
25050
  const query = reactQuery.useQuery({
24912
25051
  ...params.query,
24913
- queryKey: symmKeys.availableMargin(accountAddress, symmioClient?.chainId),
25052
+ queryKey: symmKeys.availableMargin(accountAddress, chainId),
24914
25053
  queryFn: () => symmioClient.stats.getPartyAStats(accountAddress),
24915
25054
  select: selectWithUpnl,
24916
25055
  enabled: internalEnabled && (params.query?.enabled ?? true),
@@ -25133,6 +25272,40 @@ function useSymmTpsl() {
25133
25272
  });
25134
25273
  return { setTpsl, cancelTpsl };
25135
25274
  }
25275
+ function useSymmTpslOrders(params) {
25276
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25277
+ const { accountAddress, mainAddress, positionId, type, status } = params;
25278
+ const chainId = params.chainId ?? ctxChainId;
25279
+ const internalEnabled = !!symmCoreClient && !!(accountAddress || mainAddress || positionId);
25280
+ const request = {
25281
+ address: accountAddress,
25282
+ mainAddress,
25283
+ positionId,
25284
+ type,
25285
+ status,
25286
+ chainId
25287
+ };
25288
+ const query = reactQuery.useQuery({
25289
+ ...params.query,
25290
+ queryKey: symmKeys.tpslOrdersList({
25291
+ accountAddress,
25292
+ mainAddress,
25293
+ positionId,
25294
+ type,
25295
+ status,
25296
+ chainId
25297
+ }),
25298
+ queryFn: () => symmCoreClient.orders.getTpslOrders(request),
25299
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25300
+ staleTime: params.query?.staleTime ?? 5e3
25301
+ });
25302
+ return {
25303
+ tpslOrders: query.data?.data?.tpslOrders ?? [],
25304
+ total: query.data?.data?.total ?? 0,
25305
+ isLoading: query.isLoading,
25306
+ refetch: query.refetch
25307
+ };
25308
+ }
25136
25309
  function useSymmTwap(params) {
25137
25310
  const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25138
25311
  const queryClient = reactQuery.useQueryClient();
@@ -25165,6 +25338,90 @@ function useSymmTwap(params) {
25165
25338
  cancelTwap
25166
25339
  };
25167
25340
  }
25341
+ function useSymmTriggerConfig(params) {
25342
+ const { symmCoreClient } = useSymmContext();
25343
+ const queryClient = reactQuery.useQueryClient();
25344
+ const { orderId } = params;
25345
+ const internalEnabled = !!symmCoreClient && !!orderId;
25346
+ const query = reactQuery.useQuery({
25347
+ ...params.query,
25348
+ queryKey: symmKeys.triggerConfig(orderId),
25349
+ queryFn: () => symmCoreClient.orders.getTriggerConfig(orderId),
25350
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25351
+ staleTime: params.query?.staleTime ?? 5e3
25352
+ });
25353
+ const setTriggerConfig = reactQuery.useMutation({
25354
+ mutationFn: async (request) => {
25355
+ if (!symmCoreClient || !orderId) {
25356
+ throw new Error("symm-core client or orderId not available");
25357
+ }
25358
+ return symmCoreClient.orders.setTriggerConfig(orderId, request);
25359
+ },
25360
+ onSuccess: () => {
25361
+ queryClient.invalidateQueries({
25362
+ queryKey: symmKeys.triggerConfig(orderId)
25363
+ });
25364
+ invalidateOrders(queryClient);
25365
+ }
25366
+ });
25367
+ const clearTriggerConfig = reactQuery.useMutation({
25368
+ mutationFn: async () => {
25369
+ if (!symmCoreClient || !orderId) {
25370
+ throw new Error("symm-core client or orderId not available");
25371
+ }
25372
+ return symmCoreClient.orders.clearTriggerConfig(orderId);
25373
+ },
25374
+ onSuccess: () => {
25375
+ queryClient.invalidateQueries({
25376
+ queryKey: symmKeys.triggerConfig(orderId)
25377
+ });
25378
+ invalidateOrders(queryClient);
25379
+ }
25380
+ });
25381
+ return {
25382
+ triggerConfig: query.data?.data?.triggerConfig ?? null,
25383
+ isLoading: query.isLoading,
25384
+ refetch: query.refetch,
25385
+ setTriggerConfig,
25386
+ clearTriggerConfig
25387
+ };
25388
+ }
25389
+ function useSymmTriggerOrders(params) {
25390
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25391
+ const { accountAddress, mainAddress, status, limit, offset } = params;
25392
+ const chainId = params.chainId ?? ctxChainId;
25393
+ const internalEnabled = !!symmCoreClient && !!(accountAddress || mainAddress);
25394
+ const request = {
25395
+ address: accountAddress,
25396
+ mainAddress,
25397
+ chainId,
25398
+ status,
25399
+ limit,
25400
+ offset
25401
+ };
25402
+ const query = reactQuery.useQuery({
25403
+ ...params.query,
25404
+ queryKey: symmKeys.triggerOrders({
25405
+ accountAddress,
25406
+ mainAddress,
25407
+ chainId,
25408
+ status,
25409
+ limit,
25410
+ offset
25411
+ }),
25412
+ queryFn: () => symmCoreClient.orders.listTriggerOrders(request),
25413
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25414
+ staleTime: params.query?.staleTime ?? 5e3
25415
+ });
25416
+ return {
25417
+ orders: query.data?.data?.orders ?? [],
25418
+ total: query.data?.data?.total ?? 0,
25419
+ limit: query.data?.data?.limit ?? limit ?? 0,
25420
+ offset: query.data?.data?.offset ?? offset ?? 0,
25421
+ isLoading: query.isLoading,
25422
+ refetch: query.refetch
25423
+ };
25424
+ }
25168
25425
  function useSymmMarkets(params) {
25169
25426
  const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25170
25427
  const chainId = params?.chainId ?? ctxChainId;
@@ -25188,6 +25445,66 @@ function useSymmMarkets(params) {
25188
25445
  refetch: query.refetch
25189
25446
  };
25190
25447
  }
25448
+ function useSymmHedgerMarketById(params) {
25449
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25450
+ const { id } = params;
25451
+ const chainId = params.chainId ?? ctxChainId;
25452
+ const internalEnabled = !!symmCoreClient && id != null;
25453
+ const query = reactQuery.useQuery({
25454
+ ...params.query,
25455
+ queryKey: symmKeys.hedgerMarketById(id, chainId),
25456
+ queryFn: () => symmCoreClient.markets.getById(id, chainId),
25457
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25458
+ staleTime: params.query?.staleTime ?? 3e4
25459
+ });
25460
+ return {
25461
+ market: query.data?.data?.markets?.[0] ?? null,
25462
+ markets: query.data?.data?.markets ?? [],
25463
+ isLoading: query.isLoading,
25464
+ refetch: query.refetch
25465
+ };
25466
+ }
25467
+ function useSymmHedgerMarketBySymbol(params) {
25468
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25469
+ const { symbol } = params;
25470
+ const chainId = params.chainId ?? ctxChainId;
25471
+ const internalEnabled = !!symmCoreClient && !!symbol;
25472
+ const query = reactQuery.useQuery({
25473
+ ...params.query,
25474
+ queryKey: symmKeys.hedgerMarketBySymbol(symbol, chainId),
25475
+ queryFn: () => symmCoreClient.markets.getBySymbol(symbol, chainId),
25476
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25477
+ staleTime: params.query?.staleTime ?? 3e4
25478
+ });
25479
+ return {
25480
+ market: query.data?.data?.markets?.[0] ?? null,
25481
+ markets: query.data?.data?.markets ?? [],
25482
+ isLoading: query.isLoading,
25483
+ refetch: query.refetch
25484
+ };
25485
+ }
25486
+ function useSymmLockedParams(params) {
25487
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25488
+ const { marketName, leverage } = params;
25489
+ const chainId = params.chainId ?? ctxChainId;
25490
+ const internalEnabled = !!symmCoreClient && !!marketName && leverage != null;
25491
+ const query = reactQuery.useQuery({
25492
+ ...params.query,
25493
+ queryKey: symmKeys.lockedParams(marketName, leverage, chainId),
25494
+ queryFn: () => symmCoreClient.markets.getLockedParams({
25495
+ marketName,
25496
+ leverage,
25497
+ chainId
25498
+ }),
25499
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25500
+ staleTime: params.query?.staleTime ?? 3e4
25501
+ });
25502
+ return {
25503
+ lockedParams: query.data?.data ?? null,
25504
+ isLoading: query.isLoading,
25505
+ refetch: query.refetch
25506
+ };
25507
+ }
25191
25508
  var EMPTY_MARKETS = [];
25192
25509
  var EMPTY_SYMBOLS = [];
25193
25510
  var EMPTY_MAP_BY_ID = /* @__PURE__ */ new Map();
@@ -25244,6 +25561,72 @@ function useSymmFunding(params) {
25244
25561
  isLoading: query.isLoading
25245
25562
  };
25246
25563
  }
25564
+ function useSymmFundingHistory(params) {
25565
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25566
+ const chainId = params.chainId ?? ctxChainId;
25567
+ const {
25568
+ period,
25569
+ longSymbols,
25570
+ shortSymbols,
25571
+ interval,
25572
+ weightMode,
25573
+ includeContributions
25574
+ } = params;
25575
+ const internalEnabled = !!symmCoreClient;
25576
+ const request = {
25577
+ chainId,
25578
+ period,
25579
+ longSymbols,
25580
+ shortSymbols,
25581
+ interval,
25582
+ weightMode,
25583
+ includeContributions
25584
+ };
25585
+ const query = reactQuery.useQuery({
25586
+ ...params.query,
25587
+ queryKey: symmKeys.fundingHistory(request),
25588
+ queryFn: () => symmCoreClient.funding.getHistory(request),
25589
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25590
+ staleTime: params.query?.staleTime ?? 3e4
25591
+ });
25592
+ return {
25593
+ history: query.data?.data ?? null,
25594
+ isLoading: query.isLoading,
25595
+ refetch: query.refetch
25596
+ };
25597
+ }
25598
+ function useSymmFundingPayments(params) {
25599
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25600
+ const { address, positionId, limit, offset } = params;
25601
+ const chainId = params.chainId ?? ctxChainId;
25602
+ const internalEnabled = !!symmCoreClient && !!(address || positionId);
25603
+ const request = {
25604
+ address,
25605
+ positionId,
25606
+ chainId,
25607
+ limit,
25608
+ offset
25609
+ };
25610
+ const query = reactQuery.useQuery({
25611
+ ...params.query,
25612
+ queryKey: symmKeys.fundingPayments({
25613
+ address,
25614
+ positionId,
25615
+ chainId,
25616
+ limit,
25617
+ offset
25618
+ }),
25619
+ queryFn: () => symmCoreClient.funding.getPayments(request),
25620
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25621
+ staleTime: params.query?.staleTime ?? 3e4
25622
+ });
25623
+ return {
25624
+ payments: query.data?.data?.payments ?? [],
25625
+ total: query.data?.data?.total ?? 0,
25626
+ isLoading: query.isLoading,
25627
+ refetch: query.refetch
25628
+ };
25629
+ }
25247
25630
  function useSymmPortfolio(params) {
25248
25631
  const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25249
25632
  const { accountAddress, mainAddress } = params;
@@ -25293,11 +25676,12 @@ function useSymmNotifications(params) {
25293
25676
  staleTime: params.query?.staleTime ?? 1e4
25294
25677
  });
25295
25678
  const markRead = reactQuery.useMutation({
25296
- mutationFn: async ({ id }) => {
25679
+ mutationFn: async ({ id, timestamp }) => {
25297
25680
  if (!symmCoreClient || !userAddress)
25298
25681
  throw new Error("symm-core client not available");
25299
25682
  return symmCoreClient.notifications.markRead({
25300
25683
  id,
25684
+ timestamp,
25301
25685
  userAddress,
25302
25686
  chainId
25303
25687
  });
@@ -25319,6 +25703,78 @@ function useSymmNotifications(params) {
25319
25703
  refetch: notificationsQuery.refetch
25320
25704
  };
25321
25705
  }
25706
+ function useSymmPendingIds(params) {
25707
+ const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25708
+ const { accountAddress } = params;
25709
+ const chainId = params.chainId ?? ctxChainId;
25710
+ const internalEnabled = !!symmCoreClient && !!accountAddress;
25711
+ const query = reactQuery.useQuery({
25712
+ ...params.query,
25713
+ queryKey: symmKeys.pendingIds(accountAddress, chainId),
25714
+ queryFn: () => symmCoreClient.positions.getPendingIds({
25715
+ address: accountAddress,
25716
+ chainId
25717
+ }),
25718
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25719
+ staleTime: params.query?.staleTime ?? 5e3
25720
+ });
25721
+ return {
25722
+ pendingIds: query.data?.data?.pendingIds ?? [],
25723
+ isLoading: query.isLoading,
25724
+ refetch: query.refetch
25725
+ };
25726
+ }
25727
+ function useSymmPendingInstantOpens(params) {
25728
+ const {
25729
+ symmCoreClient,
25730
+ chainId: ctxChainId,
25731
+ authToken: ctxAuthToken,
25732
+ refreshAuth
25733
+ } = useSymmContext();
25734
+ const { accountAddress, authToken: providedAuthToken } = params;
25735
+ const chainId = params.chainId ?? ctxChainId;
25736
+ const internalEnabled = !!symmCoreClient && !!accountAddress;
25737
+ const query = reactQuery.useQuery({
25738
+ ...params.query,
25739
+ queryKey: symmKeys.pendingInstantOpens(accountAddress, chainId),
25740
+ queryFn: async () => {
25741
+ const authToken = providedAuthToken ?? ctxAuthToken ?? await refreshAuth(accountAddress);
25742
+ if (!authToken) {
25743
+ throw new Error("failed to acquire auth token for pending instant opens");
25744
+ }
25745
+ return symmCoreClient.positions.getPendingInstantOpens({
25746
+ accountAddress,
25747
+ chainId,
25748
+ authToken
25749
+ });
25750
+ },
25751
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25752
+ staleTime: params.query?.staleTime ?? 5e3
25753
+ });
25754
+ return {
25755
+ pendingOpens: query.data?.data?.pendingOpens ?? [],
25756
+ total: query.data?.data?.total ?? 0,
25757
+ isLoading: query.isLoading,
25758
+ refetch: query.refetch
25759
+ };
25760
+ }
25761
+ function useSymmTwapOrder(params) {
25762
+ const { symmCoreClient } = useSymmContext();
25763
+ const { orderId } = params;
25764
+ const internalEnabled = !!symmCoreClient && !!orderId;
25765
+ const query = reactQuery.useQuery({
25766
+ ...params.query,
25767
+ queryKey: symmKeys.twapOrder(orderId),
25768
+ queryFn: () => symmCoreClient.orders.getTwapOrder(orderId),
25769
+ enabled: internalEnabled && (params.query?.enabled ?? true),
25770
+ staleTime: params.query?.staleTime ?? 5e3
25771
+ });
25772
+ return {
25773
+ order: query.data?.data ?? null,
25774
+ isLoading: query.isLoading,
25775
+ refetch: query.refetch
25776
+ };
25777
+ }
25322
25778
  function asUnsubscribeFn(value) {
25323
25779
  return typeof value === "function" ? value : null;
25324
25780
  }
@@ -25376,17 +25832,20 @@ function useSymmWs(params) {
25376
25832
  }));
25377
25833
  if (notificationsUnsub) unsubscribers.push(notificationsUnsub);
25378
25834
  const tpslUnsub = asUnsubscribeFn(ws.subscribeToTpsl(addr, chainId, () => {
25379
- queryClient.invalidateQueries({
25380
- queryKey: symmKeys.tpslOrders(accountAddress, chainId)
25381
- });
25835
+ queryClient.invalidateQueries({ queryKey: ["symm", "tpslOrders"] });
25836
+ queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
25382
25837
  }));
25383
25838
  if (tpslUnsub) unsubscribers.push(tpslUnsub);
25384
25839
  const twapUnsub = asUnsubscribeFn(ws.subscribeToTwapOrders(addr, chainId, () => {
25385
- queryClient.invalidateQueries({
25386
- queryKey: symmKeys.twapOrders(accountAddress, chainId)
25387
- });
25840
+ queryClient.invalidateQueries({ queryKey: ["symm", "twapOrders"] });
25841
+ queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
25388
25842
  }));
25389
25843
  if (twapUnsub) unsubscribers.push(twapUnsub);
25844
+ const triggerOrdersUnsub = asUnsubscribeFn(ws.subscribeToTriggerOrders(addr, chainId, () => {
25845
+ queryClient.invalidateQueries({ queryKey: ["symm", "triggerOrders"] });
25846
+ queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
25847
+ }));
25848
+ if (triggerOrdersUnsub) unsubscribers.push(triggerOrdersUnsub);
25390
25849
  const executionsUnsub = asUnsubscribeFn(ws.subscribeToExecutions(addr, chainId, () => {
25391
25850
  queryClient.invalidateQueries({
25392
25851
  queryKey: symmKeys.positions(accountAddress, chainId)
@@ -26432,32 +26891,48 @@ exports.symmKeys = symmKeys;
26432
26891
  exports.useSymmAccountData = useSymmAccountData;
26433
26892
  exports.useSymmAccountSummary = useSymmAccountSummary;
26434
26893
  exports.useSymmAccounts = useSymmAccounts;
26894
+ exports.useSymmAccountsApi = useSymmAccountsApi;
26895
+ exports.useSymmAccountsLength = useSymmAccountsLength;
26896
+ exports.useSymmAccountsWithPositions = useSymmAccountsWithPositions;
26435
26897
  exports.useSymmApproval = useSymmApproval;
26436
26898
  exports.useSymmAuth = useSymmAuth;
26437
26899
  exports.useSymmAvailableMargin = useSymmAvailableMargin;
26438
26900
  exports.useSymmBalances = useSymmBalances;
26901
+ exports.useSymmCancelClose = useSymmCancelClose;
26439
26902
  exports.useSymmChartCandles = useSymmChartCandles;
26440
26903
  exports.useSymmChartSelection = useSymmChartSelection;
26904
+ exports.useSymmCloseOrder = useSymmCloseOrder;
26441
26905
  exports.useSymmCollateral = useSymmCollateral;
26442
26906
  exports.useSymmContext = useSymmContext;
26443
26907
  exports.useSymmCoreClient = useSymmCoreClient;
26444
26908
  exports.useSymmDelegation = useSymmDelegation;
26445
26909
  exports.useSymmDeposit = useSymmDeposit;
26446
26910
  exports.useSymmFunding = useSymmFunding;
26911
+ exports.useSymmFundingHistory = useSymmFundingHistory;
26912
+ exports.useSymmFundingPayments = useSymmFundingPayments;
26913
+ exports.useSymmHedgerMarketById = useSymmHedgerMarketById;
26914
+ exports.useSymmHedgerMarketBySymbol = useSymmHedgerMarketBySymbol;
26447
26915
  exports.useSymmHedgerMarkets = useSymmHedgerMarkets;
26448
26916
  exports.useSymmInstantTrade = useSymmInstantTrade;
26917
+ exports.useSymmLockedParams = useSymmLockedParams;
26449
26918
  exports.useSymmMarkets = useSymmMarkets;
26450
26919
  exports.useSymmNotifications = useSymmNotifications;
26451
26920
  exports.useSymmOpenOrders = useSymmOpenOrders;
26921
+ exports.useSymmPendingIds = useSymmPendingIds;
26922
+ exports.useSymmPendingInstantOpens = useSymmPendingInstantOpens;
26452
26923
  exports.useSymmPerformanceOverlays = useSymmPerformanceOverlays;
26453
26924
  exports.useSymmPortfolio = useSymmPortfolio;
26454
26925
  exports.useSymmPositions = useSymmPositions;
26455
26926
  exports.useSymmSignature = useSymmSignature;
26456
26927
  exports.useSymmTokenSelectionMetadata = useSymmTokenSelectionMetadata;
26457
26928
  exports.useSymmTpsl = useSymmTpsl;
26929
+ exports.useSymmTpslOrders = useSymmTpslOrders;
26458
26930
  exports.useSymmTrade = useSymmTrade;
26459
26931
  exports.useSymmTradeHistory = useSymmTradeHistory;
26932
+ exports.useSymmTriggerConfig = useSymmTriggerConfig;
26933
+ exports.useSymmTriggerOrders = useSymmTriggerOrders;
26460
26934
  exports.useSymmTwap = useSymmTwap;
26935
+ exports.useSymmTwapOrder = useSymmTwapOrder;
26461
26936
  exports.useSymmWithdraw = useSymmWithdraw;
26462
26937
  exports.useSymmWs = useSymmWs;
26463
26938
  exports.useSymmioClient = useSymmioClient;