@liberfi.io/react-predict 0.1.51 → 0.1.53

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.
package/dist/index.mjs CHANGED
@@ -346,6 +346,12 @@ var PredictClient = class {
346
346
  const url = `${this.endpoint}/api/v1/trades${query}`;
347
347
  return await httpGet(url);
348
348
  }
349
+ /** Maps to `GET /api/v1/trades?kalshi_user=...&polymarket_user=...`. */
350
+ async listTradesMulti(params) {
351
+ const query = buildQuery(params);
352
+ const url = `${this.endpoint}/api/v1/trades${query}`;
353
+ return await httpGet(url);
354
+ }
349
355
  // -------------------------------------------------------------------------
350
356
  // Withdraw
351
357
  // -------------------------------------------------------------------------
@@ -1497,6 +1503,19 @@ function useInfiniteTrades(params) {
1497
1503
  enabled: Boolean(params.wallet)
1498
1504
  });
1499
1505
  }
1506
+ function infiniteTradesMultiQueryKey(params) {
1507
+ return ["predict", "trades-by-wallet", "infinite-multi", params];
1508
+ }
1509
+ function useInfiniteTradesMulti(params) {
1510
+ const client = usePredictClient();
1511
+ return useInfiniteQuery({
1512
+ queryKey: infiniteTradesMultiQueryKey(params),
1513
+ queryFn: ({ pageParam }) => client.listTradesMulti({ ...params, cursor: pageParam }),
1514
+ initialPageParam: void 0,
1515
+ getNextPageParam: (lastPage) => lastPage.has_more ? lastPage.next_cursor : void 0,
1516
+ enabled: Boolean(params.kalshi_user || params.polymarket_user)
1517
+ });
1518
+ }
1500
1519
  function dflowQuoteQueryKey(params) {
1501
1520
  return ["predict", "dflow-quote", params];
1502
1521
  }
@@ -1987,6 +2006,16 @@ function floorDecimalPlaces(n, d) {
1987
2006
  const factor = 10 ** d;
1988
2007
  return Math.floor(n * factor) / factor;
1989
2008
  }
2009
+ function ceilDecimalPlaces(n, d) {
2010
+ const factor = 10 ** d;
2011
+ return Math.ceil(n * factor) / factor;
2012
+ }
2013
+ function countDecimalPlaces(n) {
2014
+ const s = n.toString();
2015
+ const dot = s.indexOf(".");
2016
+ if (dot === -1) return 0;
2017
+ return s.length - dot - 1;
2018
+ }
1990
2019
  function toMicroUsdc(amount) {
1991
2020
  return BigInt(Math.round(amount * 1e6));
1992
2021
  }
@@ -1996,16 +2025,48 @@ function normalizeTokenId(tokenId) {
1996
2025
  }
1997
2026
  return tokenId;
1998
2027
  }
1999
- function buildOrderMessage(input) {
2000
- const side = input.side === "BUY" ? SIDE.BUY : SIDE.SELL;
2001
- const rc = ROUNDING_CONFIG[input.tickSize] ?? DEFAULT_ROUNDING;
2002
- const rawPrice = decimalPlaces(input.price, rc.price);
2003
- const rawSize = side === SIDE.SELL ? floorDecimalPlaces(input.size, rc.size) : decimalPlaces(input.size, rc.size);
2028
+ var MARKET_MAKER_MAX_DECIMALS = 2;
2029
+ var MARKET_TAKER_MAX_DECIMALS = 4;
2030
+ function getMarketOrderAmounts(side, size, price, rc) {
2031
+ const rawPrice = decimalPlaces(price, rc.price);
2032
+ const makerDecimals = Math.min(rc.size, MARKET_MAKER_MAX_DECIMALS);
2033
+ const takerDecimals = Math.min(rc.amount, MARKET_TAKER_MAX_DECIMALS);
2034
+ if (side === SIDE.BUY) {
2035
+ const rawMakerAmt2 = floorDecimalPlaces(size, makerDecimals);
2036
+ let rawTakerAmt2 = rawMakerAmt2 / rawPrice;
2037
+ if (countDecimalPlaces(rawTakerAmt2) > takerDecimals) {
2038
+ rawTakerAmt2 = floorDecimalPlaces(rawTakerAmt2, takerDecimals);
2039
+ }
2040
+ return {
2041
+ makerAmount: toMicroUsdc(rawMakerAmt2).toString(),
2042
+ takerAmount: toMicroUsdc(rawTakerAmt2).toString()
2043
+ };
2044
+ }
2045
+ const rawMakerAmt = floorDecimalPlaces(size, makerDecimals);
2046
+ let rawTakerAmt = rawMakerAmt * rawPrice;
2047
+ if (countDecimalPlaces(rawTakerAmt) > takerDecimals) {
2048
+ rawTakerAmt = ceilDecimalPlaces(rawTakerAmt, takerDecimals);
2049
+ }
2050
+ return {
2051
+ makerAmount: toMicroUsdc(rawMakerAmt).toString(),
2052
+ takerAmount: toMicroUsdc(rawTakerAmt).toString()
2053
+ };
2054
+ }
2055
+ function getLimitOrderAmounts(side, size, price, rc) {
2056
+ const rawPrice = decimalPlaces(price, rc.price);
2057
+ const rawSize = side === SIDE.SELL ? floorDecimalPlaces(size, rc.size) : decimalPlaces(size, rc.size);
2004
2058
  const sizeInMicro = toMicroUsdc(rawSize);
2005
2059
  const rawAmount = decimalPlaces(rawSize * rawPrice, rc.amount);
2006
2060
  const amountInMicro = toMicroUsdc(rawAmount);
2007
2061
  const makerAmount = side === SIDE.BUY ? amountInMicro.toString() : sizeInMicro.toString();
2008
2062
  const takerAmount = side === SIDE.BUY ? sizeInMicro.toString() : amountInMicro.toString();
2063
+ return { makerAmount, takerAmount };
2064
+ }
2065
+ function buildOrderMessage(input) {
2066
+ const side = input.side === "BUY" ? SIDE.BUY : SIDE.SELL;
2067
+ const rc = ROUNDING_CONFIG[input.tickSize] ?? DEFAULT_ROUNDING;
2068
+ const isMarketOrder = input.orderType === "FOK" || input.orderType === "FAK";
2069
+ const { makerAmount, takerAmount } = isMarketOrder ? getMarketOrderAmounts(side, input.size, input.price, rc) : getLimitOrderAmounts(side, input.size, input.price, rc);
2009
2070
  const maker = input.funderAddress ?? input.signerAddress;
2010
2071
  return {
2011
2072
  salt: Math.floor(Math.random() * 1e15).toString(),
@@ -2120,6 +2181,9 @@ function useCreatePolymarketOrder(mutationOptions = {}) {
2120
2181
  }
2121
2182
  function computeOrderCost(input) {
2122
2183
  if (input.side === "SELL") return "0";
2184
+ if (input.orderType === "FOK" || input.orderType === "FAK") {
2185
+ return input.size.toFixed(6);
2186
+ }
2123
2187
  return (input.price * input.size).toFixed(6);
2124
2188
  }
2125
2189
  async function pollTxConfirmed(fetchStatus, txHash) {
@@ -2136,6 +2200,6 @@ async function pollTxConfirmed(fetchStatus, txHash) {
2136
2200
  );
2137
2201
  }
2138
2202
 
2139
- export { CLOB_AUTH_DOMAIN, CLOB_AUTH_TYPES, CTF_EXCHANGE_ADDRESS, CTF_ORDER_TYPES, ChartRange, NEG_RISK_CTF_EXCHANGE_ADDRESS, ORDER_TYPE, POLYGON_CHAIN_ID, PolymarketContext, PolymarketProvider, PredictClient, PredictContext, PredictProvider, PredictWsClient, SIDE, USDC_ADDRESS, availableSharesQueryKey, balanceQueryKey, buildClobAuthMessage, buildClobPayload, buildCtfExchangeDomain, buildOrderMessage, buildPolymarketL2Headers, buildSignedOrder, candlesticksQueryKey, createPredictClient, createPredictWsClient, derivePolymarketApiKey, dflowKYCQueryKey, dflowQuoteQueryKey, eventQueryKey, eventStatsQueryKey, eventsQueryKey, fetchEvent, fetchEvents, fetchEventsPage, fetchMarket, fetchMatchMarketsPage, fetchMatchesPage, hmacSha256Base64, infiniteEventsQueryKey, infiniteOrdersQueryKey, infiniteTradesQueryKey, marketQueryKey, marketTradesQueryKey, matchMarketsQueryKey, matchQueryKey, matchesQueryKey, orderQueryKey, orderbookQueryKey, ordersMultiQueryKey, ordersQueryKey, polymarketDepositAddressesQueryKey, polymarketSetupQueryKey, positionsMultiQueryKey, positionsQueryKey, priceHistoryQueryKey, resolveEventsParams, resolveTagSlug, similarEventsQueryKey, tickSizeQueryKey, tradesQueryKey, useAvailableShares, useBalance, useCancelOrder, useCandlesticks, useCreatePolymarketOrder, useDFlowKYC, useDFlowQuote, useDFlowSubmit, useEvent, useEventStats, useEvents, useInfiniteEvents, useInfiniteMatchMarkets, useInfiniteMatches, useInfiniteOrders, useInfiniteTrades, useMarket, useMarketHistory, useMarketTrades, useMatch, useOrder, useOrderbook, useOrderbookSubscription, useOrders, useOrdersMulti, usePolymarket, usePolymarketDeposit, usePolymarketDepositAddresses, usePolymarketSetup, usePolymarketWithdraw, usePositions, usePositionsMulti, usePredictClient, usePredictWsClient, usePriceHistory, usePricesSubscription, useRealtimeOrderbook, useRealtimePrices, useRealtimeTrades, useRunPolymarketSetup, useSearchEvents, useSimilarEvents, useTickSize, useTrades, useTradesSubscription, useWithdrawBuildMutation, useWithdrawStatusQuery, useWithdrawSubmitMutation, withdrawStatusQueryKey };
2203
+ export { CLOB_AUTH_DOMAIN, CLOB_AUTH_TYPES, CTF_EXCHANGE_ADDRESS, CTF_ORDER_TYPES, ChartRange, NEG_RISK_CTF_EXCHANGE_ADDRESS, ORDER_TYPE, POLYGON_CHAIN_ID, PolymarketContext, PolymarketProvider, PredictClient, PredictContext, PredictProvider, PredictWsClient, SIDE, USDC_ADDRESS, availableSharesQueryKey, balanceQueryKey, buildClobAuthMessage, buildClobPayload, buildCtfExchangeDomain, buildOrderMessage, buildPolymarketL2Headers, buildSignedOrder, candlesticksQueryKey, createPredictClient, createPredictWsClient, derivePolymarketApiKey, dflowKYCQueryKey, dflowQuoteQueryKey, eventQueryKey, eventStatsQueryKey, eventsQueryKey, fetchEvent, fetchEvents, fetchEventsPage, fetchMarket, fetchMatchMarketsPage, fetchMatchesPage, hmacSha256Base64, infiniteEventsQueryKey, infiniteOrdersQueryKey, infiniteTradesMultiQueryKey, infiniteTradesQueryKey, marketQueryKey, marketTradesQueryKey, matchMarketsQueryKey, matchQueryKey, matchesQueryKey, orderQueryKey, orderbookQueryKey, ordersMultiQueryKey, ordersQueryKey, polymarketDepositAddressesQueryKey, polymarketSetupQueryKey, positionsMultiQueryKey, positionsQueryKey, priceHistoryQueryKey, resolveEventsParams, resolveTagSlug, similarEventsQueryKey, tickSizeQueryKey, tradesQueryKey, useAvailableShares, useBalance, useCancelOrder, useCandlesticks, useCreatePolymarketOrder, useDFlowKYC, useDFlowQuote, useDFlowSubmit, useEvent, useEventStats, useEvents, useInfiniteEvents, useInfiniteMatchMarkets, useInfiniteMatches, useInfiniteOrders, useInfiniteTrades, useInfiniteTradesMulti, useMarket, useMarketHistory, useMarketTrades, useMatch, useOrder, useOrderbook, useOrderbookSubscription, useOrders, useOrdersMulti, usePolymarket, usePolymarketDeposit, usePolymarketDepositAddresses, usePolymarketSetup, usePolymarketWithdraw, usePositions, usePositionsMulti, usePredictClient, usePredictWsClient, usePriceHistory, usePricesSubscription, useRealtimeOrderbook, useRealtimePrices, useRealtimeTrades, useRunPolymarketSetup, useSearchEvents, useSimilarEvents, useTickSize, useTrades, useTradesSubscription, useWithdrawBuildMutation, useWithdrawStatusQuery, useWithdrawSubmitMutation, withdrawStatusQueryKey };
2140
2204
  //# sourceMappingURL=index.mjs.map
2141
2205
  //# sourceMappingURL=index.mjs.map