Skip to content

Commit 79d8656

Browse files
committed
feat: rename firehose to watchAllOrderBooks, keep firehose as deprecated alias
1 parent e9e7f22 commit 79d8656

2 files changed

Lines changed: 26 additions & 12 deletions

File tree

sdks/python/pmxt/client.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1925,7 +1925,7 @@ def watch_order_books(
19251925
except ApiException as e:
19261926
raise self._parse_api_exception(e) from None
19271927

1928-
def firehose(
1928+
def watch_all_order_books(
19291929
self,
19301930
venues: Optional[List[str]] = None,
19311931
) -> "FirehoseEvent":
@@ -1941,18 +1941,25 @@ def firehose(
19411941
FirehoseEvent with source, symbol, and orderbook
19421942
"""
19431943
if not self.is_hosted:
1944-
raise PmxtError("firehose() requires hosted mode (set pmxt_api_key)")
1944+
raise PmxtError("watch_all_order_books() requires hosted mode (set pmxt_api_key)")
19451945

19461946
args: list = [venues] if venues else []
1947-
data = self._watch_via_ws("firehose", args)
1947+
data = self._watch_via_ws("watchAllOrderBooks", args)
19481948
if data is not None:
19491949
return FirehoseEvent(
19501950
source=data.get("_source", ""),
19511951
symbol=data.get("_symbol", ""),
19521952
orderbook=_convert_order_book(data),
19531953
)
19541954

1955-
raise PmxtError("firehose() requires WebSocket transport — connection failed")
1955+
raise PmxtError("watch_all_order_books() requires WebSocket transport — connection failed")
1956+
1957+
def firehose(
1958+
self,
1959+
venues: Optional[List[str]] = None,
1960+
) -> "FirehoseEvent":
1961+
"""Deprecated: Use :meth:`watch_all_order_books` instead."""
1962+
return self.watch_all_order_books(venues)
19561963

19571964
def watch_trades(
19581965
self,
@@ -2269,7 +2276,8 @@ def _execute_sor_order(self, **kwargs) -> "Order":
22692276
venue_opts["signature_type"] = account.get("signature_type", 3)
22702277
venue = venue_cls(**venue_opts)
22712278
result = venue.create_order(outcome_id=leg["tokenId"], side=leg["side"], amount=leg["shares"], price=leg["price"])
2272-
fills.append({"venue": leg["venue"], "venueOrderId": result.id, "venueMarketId": leg.get("venueMarketId"), "venueOutcomeId": leg.get("venueOutcomeId"), "shares": getattr(result, "filled", None) or leg["shares"], "price": getattr(result, "price", None) or leg["price"], "status": "filled"})
2279+
filled = getattr(result, "filled", 0) or 0
2280+
fills.append({"venue": leg["venue"], "venueOrderId": result.id, "venueMarketId": leg.get("venueMarketId"), "venueOutcomeId": leg.get("venueOutcomeId"), "shares": filled if filled > 0 else leg["shares"], "price": getattr(result, "price", None) or leg["price"], "status": "filled" if filled > 0 else "open"})
22732281
except Exception as e:
22742282
fills.append({"venue": leg["venue"], "venueMarketId": leg.get("venueMarketId"), "venueOutcomeId": leg.get("venueOutcomeId"), "shares": leg["shares"], "price": leg["price"], "status": "failed", "error": str(e)})
22752283

sdks/typescript/pmxt/client.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1603,26 +1603,26 @@ export abstract class Exchange {
16031603
* Requires hosted mode (`pmxtApiKey` set).
16041604
*
16051605
* @param venues - Optional venue filter (e.g. ["polymarket", "limitless"])
1606-
* @returns Next firehose event with source, symbol, and orderbook
1606+
* @returns Next event with source, symbol, and orderbook
16071607
*
16081608
* @example
16091609
* ```typescript
16101610
* const poly = new Polymarket({ pmxtApiKey: "pmxt_xxx" });
16111611
* while (true) {
1612-
* const event = await poly.firehose();
1612+
* const event = await poly.watchAllOrderBooks();
16131613
* console.log(event.source, event.symbol, event.orderbook.bids[0]);
16141614
* }
16151615
* ```
16161616
*/
1617-
async firehose(venues?: string[]): Promise<FirehoseEvent> {
1617+
async watchAllOrderBooks(venues?: string[]): Promise<FirehoseEvent> {
16181618
await this.initPromise;
16191619

16201620
if (!this.isHosted) {
1621-
throw new PmxtError("firehose() requires hosted mode (set pmxtApiKey)");
1621+
throw new PmxtError("watchAllOrderBooks() requires hosted mode (set pmxtApiKey)");
16221622
}
16231623

16241624
const args: any[] = venues ? [venues] : [];
1625-
const wsData = await this.watchViaWs("firehose", args);
1625+
const wsData = await this.watchViaWs("watchAllOrderBooks", args);
16261626
if (wsData !== null) {
16271627
return {
16281628
source: (wsData as any)._source || "",
@@ -1631,7 +1631,12 @@ export abstract class Exchange {
16311631
};
16321632
}
16331633

1634-
throw new PmxtError("firehose() requires WebSocket transport — connection failed");
1634+
throw new PmxtError("watchAllOrderBooks() requires WebSocket transport — connection failed");
1635+
}
1636+
1637+
/** @deprecated Use {@link watchAllOrderBooks} instead. */
1638+
async firehose(venues?: string[]): Promise<FirehoseEvent> {
1639+
return this.watchAllOrderBooks(venues);
16351640
}
16361641

16371642
/**
@@ -1897,7 +1902,8 @@ export abstract class Exchange {
18971902
}
18981903
const venue = new VenueClass(venueOpts);
18991904
const order = await venue.createOrder({ outcomeId: leg.tokenId, side: leg.side, amount: leg.shares, price: leg.price });
1900-
fills.push({ venue: leg.venue, venueOrderId: order.id, venueMarketId: leg.venueMarketId, venueOutcomeId: leg.venueOutcomeId, shares: order.filled || leg.shares, price: order.price || leg.price, status: 'filled' });
1905+
const filledShares = order.filled || 0;
1906+
fills.push({ venue: leg.venue, venueOrderId: order.id, venueMarketId: leg.venueMarketId, venueOutcomeId: leg.venueOutcomeId, shares: filledShares > 0 ? filledShares : leg.shares, price: order.price || leg.price, status: filledShares > 0 ? 'filled' : 'open' });
19011907
} catch (err: any) {
19021908
fills.push({ venue: leg.venue, venueMarketId: leg.venueMarketId, venueOutcomeId: leg.venueOutcomeId, shares: leg.shares, price: leg.price, status: 'failed', error: err.message });
19031909
}

0 commit comments

Comments
 (0)