tempo_node/rpc/dex/
books.rs1use crate::rpc::dex::orders::Tick;
2use alloy_primitives::{Address, B256};
3use serde::{Deserialize, Serialize};
4use tempo_alloy::rpc::pagination::FilterRange;
5
6#[derive(Clone, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct OrderbooksResponse {
9 pub next_cursor: Option<String>,
11 pub orderbooks: Vec<Orderbook>,
13}
14
15#[derive(Clone, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct Orderbook {
18 pub base_token: Address,
20 pub book_key: B256,
22 pub best_ask_tick: Tick,
24 pub best_bid_tick: Tick,
26 pub quote_token: Address,
28 pub spread: Tick,
30}
31
32#[derive(Clone, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
33#[serde(rename_all = "camelCase")]
34pub struct OrderbooksFilter {
35 pub base_token: Option<Address>,
37 pub best_ask_tick: Option<FilterRange<Tick>>,
39 pub best_bid_tick: Option<FilterRange<Tick>>,
41 pub quote_token: Option<Address>,
43 pub spread: Option<FilterRange<Tick>>,
45}