1.12.0: Lighter on Robinhood Chain, account positions, Lighter liquidations - #12
Merged
Merged
Conversation
…tions (1.12.0) - client.rh_lighter: the Robinhood Chain Lighter deployment (/v1/rh-lighter), with the mainnet Lighter resources except the L3 order book. - liquidations on both Lighter clients (history and volume), with typed LighterLiquidation and LighterLiquidationVolume rows. - positions on the Hyperliquid, HIP-3, Lighter and Robinhood Chain clients: current and as-of positions, hourly history, the change log, market listings and summaries, and the bulk hourly listing; account summaries on Hyperliquid and HIP-3; Lighter account lookup by L1 address. - MetaResponse and ResponseMeta expose the full response meta (snapshot context, build and finality boundaries, totals, notices). - WebSocket: rh_lighter_* live and replay channels, interval_ms on rh_lighter_orderbook, and live payload decoding for both deployments. - Version 1.12.0; README, rustdoc pins and CHANGELOG updated.
…ts, account docs - Robinhood Chain liquidations are served from 2026-08-22 18:43 UTC, like the order book, open interest and funding. The README, rustdoc and CHANGELOG said 2026-06-26 20:10:26 UTC, which the API refuses. - TradesResource::list_with_meta() and recent_with_meta() return the same rows as list() and recent() with the full response meta, so Lighter callers can read finalized_through, requested_end, clamped_to and preliminary_row_count. list() and recent() are unchanged. - Instants: meta instants carry milliseconds; row instants carry a fraction only when it is not zero. The docs said every instant has milliseconds, and the test mocks now use the whole-second form for row instants. - WalletPositions.account documents when a summary is present on each venue, and the reconstructed-row docs name the exact field values.
Liquidations on Lighter on Robinhood Chain now share the trades floor, 2026-06-26 20:10:26 UTC. Rows from before live capture were backfilled from the venue's finalized export and have source "bucket" and an empty raw_json; rows captured live have source "ws" and the venue's raw JSON. Order book, open interest and funding still start 2026-08-22 18:43 UTC. - README coverage table, Lighter Liquidations section and Robinhood Chain coverage, CHANGELOG, RhLighterClient, LighterLiquidationsResource and LighterLiquidation docs say so. - Tests: the history request starts at the floor and returns the first backfilled liquidation next to a live row; the copy guard now pins the venue-launch floor and rejects the live-capture floor for liquidations.
- freshness() failed on every client: the response carries a symbol string next to the per-data-type entries, and the flattened data_types map tried to decode it as one. CoinFreshness has a symbol field now, and the test mock uses the response shape the API returns. - The Lighter positions routes accept uppercase market symbols only. LighterPositionsResource sends the market path and the symbol filter uppercase, as the Python and TypeScript SDKs do. - Leverage docs include unknown, which Hyperliquid snapshot rows can carry. - rustfmt on the files this release adds or rewrites. - CHANGELOG: 1.12.0 is dated 2026-09-28, with the order flow cursor, 1-minute interval and freshness changes.
0xFantomMenace
added a commit
that referenced
this pull request
Sep 29, 2026
…ations (#12) - client.rh_lighter: Lighter on Robinhood Chain under /v1/rh-lighter, with the mainnet Lighter resources except the L3 order book, and live and replay rh_lighter_* WebSocket channels (rh_lighter_candles is replay-only). - Lighter liquidations (history and volume) on both Lighter clients, and trades.list_with_meta() / recent_with_meta(). - Account positions on Hyperliquid, HIP-3, Lighter and Robinhood Chain: get, history, changes, market, market_summary, all, account and account_history (Hyperliquid and HIP-3), and lighter.accounts.by_l1(), with typed models and MetaResponse / ResponseMeta. - OiFundingInterval::OneMinute; cursor on the order flow params. - Fixed: freshness() decodes the response's symbol field. - Version 1.12.0.
0xFantomMenace
added a commit
that referenced
this pull request
Sep 29, 2026
…ations (#12) - client.rh_lighter: Lighter on Robinhood Chain under /v1/rh-lighter, with the mainnet Lighter resources except the L3 order book, and live and replay rh_lighter_* WebSocket channels (rh_lighter_candles is replay-only). - Lighter liquidations (history and volume) on both Lighter clients, and trades.list_with_meta() / recent_with_meta(). - Account positions on Hyperliquid, HIP-3, Lighter and Robinhood Chain: get, history, changes, market, market_summary, all, account and account_history (Hyperliquid and HIP-3), and lighter.accounts.by_l1(), with typed models and MetaResponse / ResponseMeta. - OiFundingInterval::OneMinute; cursor on the order flow params. - Fixed: freshness() decodes the response's symbol field. - Version 1.12.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 1.12.0 of the Rust SDK: Lighter on Robinhood Chain, account positions and Lighter liquidations. It also releases the order flow cursor and 1-minute interval changes from #13, and fixes
freshness().Lighter on Robinhood Chain
client.rh_lightercovers/v1/rh-lighter, the second Lighter deployment. It has the same resources asclient.lighterexcept the L3 order book:orderbook,trades,instruments,funding,open_interest,candles,liquidations,positions,freshness(),summary()andprice_history().BTC) and dashed spot pairs (AAPL-USDG).rh_lighter_orderbook,rh_lighter_trades,rh_lighter_open_interestandrh_lighter_funding;rh_lighter_candlesis replay-only.subscribe_with_interval()acceptsrh_lighter_orderbook(100 to 5000 ms). Live payloads decode withServerMsg::lighter_live_data().Lighter liquidations
liquidations.history()andliquidations.volume()on both Lighter clients, typed asLighterLiquidationandLighterLiquidationVolume. Mainnet history starts on 2026-06-10; Robinhood Chain at the venue launch.source"bucket"and an emptyraw_json; rows captured live havesource"ws"and the venue's raw JSON.Lighter trades meta
trades.list_with_meta()andtrades.recent_with_meta()return the same rows aslist()andrecent()with the fullmeta:finalized_through,requested_end,clamped_toandpreliminary_row_count.list()andrecent()are unchanged.Account positions
positionsonclient.hyperliquidandclient.hyperliquid.hip3(keyed by0xaddress) and onclient.lighterandclient.rh_lighter(keyed by account index):get,history,changes,market,market_summaryandall; Hyperliquid and HIP-3 addaccountandaccount_history.client.lighter.accounts.by_l1()finds the account indices of an L1 address (mainnet only).Position,MarketPosition,PositionChange,AccountSummary,MarketPositionsSummary,WalletPositionsandLighterL1Accounts, andMetaResponse<T>/ResponseMetawith the full responsemeta.ResponseMeta::position_totals()decodes the totals of a market listing.Order flow and intervals (from #13)
OiFundingInterval::OneMinute("1m").cursoronOrderFlowParamsandHip4OrderFlowParams. The API does not returnnext_cursoron order flow yet.Fixed
freshness()failed on every client with a deserialization error, because the response carries asymbolstring next to the per-data-type entries.CoinFreshnesshas asymbolfield now.Verification
cargo test --all-features: 89 passed (lib 32, coverage_contract 16, rh_lighter_and_positions 15, websocket_capability 17, doctests 9).cargo testwithout features passes.cargo clippy --all-features --all-targets -- -D warningsandRUSTDOCFLAGS="-D warnings" cargo docare clean.cargo package --listholds only tracked files and cargo metadata.Version 1.12.0 in
Cargo.toml; README and rustdoc install pins read1.12.