@pear-protocol/symmio-client 0.2.26 → 0.2.27

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.
@@ -25038,6 +25038,22 @@ async function fetch24hrTicker(symbol) {
25038
25038
  priceChangePercent: parseFloat(data.priceChangePercent)
25039
25039
  };
25040
25040
  }
25041
+ async function fetch24hrTickers() {
25042
+ const response = await fetch(`${BINANCE_FAPI_BASE}/fapi/v1/ticker/24hr`);
25043
+ if (!response.ok) {
25044
+ throw new Error(`Binance 24hr tickers failed: ${response.status}`);
25045
+ }
25046
+ const data = await response.json();
25047
+ const result = {};
25048
+ for (const item of data) {
25049
+ result[item.symbol] = {
25050
+ lastPrice: parseFloat(item.lastPrice),
25051
+ prevClosePrice: parseFloat(item.prevClosePrice),
25052
+ priceChangePercent: parseFloat(item.priceChangePercent)
25053
+ };
25054
+ }
25055
+ return result;
25056
+ }
25041
25057
 
25042
25058
  // src/utils/binance-symbol-map.ts
25043
25059
  var SYMBOL_OVERRIDES = {
@@ -25359,15 +25375,6 @@ var useBinanceMarkPriceStore = create((set) => ({
25359
25375
  }));
25360
25376
 
25361
25377
  // src/react/hooks/use-symm-token-selection-markets.ts
25362
- async function fetchTickerSnapshot(symbol) {
25363
- const resolution = resolveBinanceSymbol(symbol);
25364
- if (!resolution.binanceSymbol) return null;
25365
- const ticker = await fetch24hrTicker(resolution.binanceSymbol);
25366
- if (!ticker) return null;
25367
- return {
25368
- prevClosePrice: ticker.prevClosePrice
25369
- };
25370
- }
25371
25378
  function useSymmTokenSelectionMarkets(params) {
25372
25379
  const query = useSymmHedgerMarkets(params);
25373
25380
  const baseMarkets = query.data?.filteredMarkets ?? query.data?.markets ?? [];
@@ -25399,12 +25406,17 @@ function useSymmTokenSelectionMarkets(params) {
25399
25406
  const priceQuery = useQuery({
25400
25407
  queryKey: ["symm", "token-selection-markets-price", symbolsKey],
25401
25408
  queryFn: async () => {
25409
+ const allTickers = await fetch24hrTickers();
25402
25410
  const tickerSnapshots = {};
25403
- await Promise.all(
25404
- marketSymbols.map(async (symbol) => {
25405
- tickerSnapshots[symbol] = await fetchTickerSnapshot(symbol);
25406
- })
25407
- );
25411
+ marketSymbols.forEach((symbol) => {
25412
+ const binanceSymbol = resolveBinanceSymbol(symbol).binanceSymbol;
25413
+ if (!binanceSymbol) {
25414
+ tickerSnapshots[symbol] = null;
25415
+ return;
25416
+ }
25417
+ const ticker = allTickers[binanceSymbol];
25418
+ tickerSnapshots[symbol] = ticker ? { prevClosePrice: ticker.prevClosePrice } : null;
25419
+ });
25408
25420
  return { tickerSnapshots };
25409
25421
  },
25410
25422
  enabled: query.isSuccess && marketSymbols.length > 0,
@@ -25463,6 +25475,33 @@ function useSymmTokenSelectionMarkets(params) {
25463
25475
  isPriceLoading: priceQuery.isLoading
25464
25476
  };
25465
25477
  }
25478
+ function useSymmTokenMarkPrice(symbol) {
25479
+ const normalizedSymbol = symbol?.trim().toUpperCase() || null;
25480
+ const resolution = resolveBinanceSymbol(normalizedSymbol ?? "");
25481
+ const liveMarkPrices = useBinanceMarkPriceStore((state) => state.markPrices);
25482
+ const subscribeSymbol = useBinanceMarkPriceStore((state) => state.subscribeSymbol);
25483
+ const unsubscribeSymbol = useBinanceMarkPriceStore((state) => state.unsubscribeSymbol);
25484
+ useEffect(() => {
25485
+ if (!normalizedSymbol || !resolution.binanceSymbol || !resolution.supported) {
25486
+ return;
25487
+ }
25488
+ subscribeSymbol(normalizedSymbol, resolution.binanceSymbol);
25489
+ return () => {
25490
+ unsubscribeSymbol(normalizedSymbol, resolution.binanceSymbol);
25491
+ };
25492
+ }, [normalizedSymbol, resolution.binanceSymbol, resolution.supported, subscribeSymbol, unsubscribeSymbol]);
25493
+ const markPrice = useMemo(() => {
25494
+ if (!normalizedSymbol) return null;
25495
+ return liveMarkPrices[normalizedSymbol] ?? null;
25496
+ }, [liveMarkPrices, normalizedSymbol]);
25497
+ return {
25498
+ symbol: normalizedSymbol,
25499
+ binanceSymbol: resolution.binanceSymbol,
25500
+ markPrice,
25501
+ isSupported: resolution.supported,
25502
+ reason: resolution.reason
25503
+ };
25504
+ }
25466
25505
  function useSymmFunding(params) {
25467
25506
  const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
25468
25507
  const chainId = params?.chainId ?? ctxChainId;
@@ -25971,7 +26010,7 @@ function computeNetFundingSum({
25971
26010
  }
25972
26011
 
25973
26012
  // src/react/hooks/use-symm-token-selection-metadata.ts
25974
- async function fetchTickerSnapshot2(symbol) {
26013
+ async function fetchTickerSnapshot(symbol) {
25975
26014
  const resolution = resolveBinanceSymbol(symbol);
25976
26015
  if (!resolution.binanceSymbol) return null;
25977
26016
  const ticker = await fetch24hrTicker(resolution.binanceSymbol);
@@ -26027,7 +26066,7 @@ function useSymmTokenSelectionMetadata(selection, options = {}) {
26027
26066
  const results = await Promise.all(
26028
26067
  allSymbols.map(async ({ symbol }) => ({
26029
26068
  symbol,
26030
- ticker: await fetchTickerSnapshot2(symbol)
26069
+ ticker: await fetchTickerSnapshot(symbol)
26031
26070
  }))
26032
26071
  );
26033
26072
  const tickerSnapshots = {};
@@ -26500,6 +26539,6 @@ function getSymmErrorMessage(error) {
26500
26539
  return "An unexpected error occurred.";
26501
26540
  }
26502
26541
 
26503
- export { SymmProvider, getSymmErrorMessage, symmKeys, useBinanceMarkPriceStore, useSymmAccountData, useSymmAccountSummary, useSymmAccountsApi, useSymmAccountsLength, useSymmAccountsQuery, useSymmAccountsWithPositions, useSymmAllocateCollateralMutation, useSymmApprovalQuery, useSymmApproveMutation, useSymmAuth, useSymmAuthStore, useSymmAvailableMargin, useSymmBalances, useSymmCancelClose, useSymmCancelOpenMutation, useSymmCancelTpslMutation, useSymmCancelTwapOrderMutation, useSymmChartCandles, useSymmChartSelection, useSymmClearTriggerConfigMutation, useSymmCloseAllPositionsMutation, useSymmCloseOrder, useSymmClosePositionMutation, useSymmContext, useSymmCoreClient, useSymmCreateAccountMutation, useSymmDeallocateCollateralMutation, useSymmDelegation, useSymmDepositAndAllocateMutation, useSymmDepositMutation, useSymmEditAccountNameMutation, useSymmFunding, useSymmFundingHistory, useSymmFundingPayments, useSymmHedgerMarketById, useSymmHedgerMarketBySymbol, useSymmHedgerMarkets, useSymmInstantTradeEnsureReadyMutation, useSymmInstantTradeExecuteMutation, useSymmInternalTransferCollateralMutation, useSymmLockedParams, useSymmMarkReadNotificationMutation, useSymmMarkets, useSymmNotificationsQuery, useSymmOpenBasketMutation, useSymmOpenOrders, useSymmPendingIds, useSymmPendingInstantOpens, useSymmPerformanceOverlays, useSymmPortfolio, useSymmPositions, useSymmSetTpslMutation, useSymmSetTriggerConfigMutation, useSymmSignTermsMutation, useSymmSignatureQuery, useSymmTokenSelectionMarkets, useSymmTokenSelectionMetadata, useSymmTpslOrders, useSymmTradeHistory, useSymmTriggerConfigQuery, useSymmTriggerOrders, useSymmTwapOrder, useSymmTwapOrdersQuery, useSymmUnreadCountQuery, useSymmUpdatePositionMutation, useSymmWithdraw, useSymmWs, useSymmWsStore };
26542
+ export { SymmProvider, getSymmErrorMessage, symmKeys, useBinanceMarkPriceStore, useSymmAccountData, useSymmAccountSummary, useSymmAccountsApi, useSymmAccountsLength, useSymmAccountsQuery, useSymmAccountsWithPositions, useSymmAllocateCollateralMutation, useSymmApprovalQuery, useSymmApproveMutation, useSymmAuth, useSymmAuthStore, useSymmAvailableMargin, useSymmBalances, useSymmCancelClose, useSymmCancelOpenMutation, useSymmCancelTpslMutation, useSymmCancelTwapOrderMutation, useSymmChartCandles, useSymmChartSelection, useSymmClearTriggerConfigMutation, useSymmCloseAllPositionsMutation, useSymmCloseOrder, useSymmClosePositionMutation, useSymmContext, useSymmCoreClient, useSymmCreateAccountMutation, useSymmDeallocateCollateralMutation, useSymmDelegation, useSymmDepositAndAllocateMutation, useSymmDepositMutation, useSymmEditAccountNameMutation, useSymmFunding, useSymmFundingHistory, useSymmFundingPayments, useSymmHedgerMarketById, useSymmHedgerMarketBySymbol, useSymmHedgerMarkets, useSymmInstantTradeEnsureReadyMutation, useSymmInstantTradeExecuteMutation, useSymmInternalTransferCollateralMutation, useSymmLockedParams, useSymmMarkReadNotificationMutation, useSymmMarkets, useSymmNotificationsQuery, useSymmOpenBasketMutation, useSymmOpenOrders, useSymmPendingIds, useSymmPendingInstantOpens, useSymmPerformanceOverlays, useSymmPortfolio, useSymmPositions, useSymmSetTpslMutation, useSymmSetTriggerConfigMutation, useSymmSignTermsMutation, useSymmSignatureQuery, useSymmTokenMarkPrice, useSymmTokenSelectionMarkets, useSymmTokenSelectionMetadata, useSymmTpslOrders, useSymmTradeHistory, useSymmTriggerConfigQuery, useSymmTriggerOrders, useSymmTwapOrder, useSymmTwapOrdersQuery, useSymmUnreadCountQuery, useSymmUpdatePositionMutation, useSymmWithdraw, useSymmWs, useSymmWsStore };
26504
26543
  //# sourceMappingURL=index.mjs.map
26505
26544
  //# sourceMappingURL=index.mjs.map