bloxroute_sdk/models/
mod.rs1pub mod block;
2pub mod openbook;
3pub mod raydium;
4pub mod solana;
5pub mod subscription;
6pub mod transaction;
7use std::collections::HashMap;
8
9use block::BloxrouteBlock;
10use openbook::{
11 BloxrouteOpenbookGetDepthResponse, BloxrouteOpenbookGetMarketsResponse,
12 BloxrouteOpenbookGetOrderbookResponse, BloxrouteOpenbookGetTickersResponse,
13};
14use raydium::{BloxrouteRaydiumNewRaydiumPoolsResponse, BloxrouteRaydiumStreamReservesResponse, BloxrouteRaydiumStreamSwapsResponse};
15use serde::{Deserialize, Serialize};
16use solana::{BloxrouteGetBundleTipStreamResponse, BloxrouteGetStreamPriorityFee};
17use subscription::BloxrouteSubscription;
18use transaction::BloxrouteTransaction;
19
20#[derive(Deserialize, Debug, Clone)]
21pub struct BloxrouteGenericInner<T> {
22 pub result: T,
23 pub subscription: String,
24}
25
26#[derive(Deserialize, Debug, Clone)]
27pub struct BloxrouteGeneric<T> {
28 pub jsonrpc: String,
29 pub method: String,
30 pub params: BloxrouteGenericInner<T>,
31}
32
33#[derive(Deserialize, Debug, Clone)]
34pub struct BloxrouteGenericSolana<T> {
35 pub id: String,
36 pub result: T,
37}
38
39#[derive(Deserialize, Debug, Clone)]
40pub enum BloxrouteResponseEnum {
41 Subscription(BloxrouteSubscription),
42 Transaction(BloxrouteGeneric<BloxrouteTransaction>),
43 Block(BloxrouteGeneric<BloxrouteBlock>),
44 GetStreamPriorityFee(BloxrouteGeneric<BloxrouteGetStreamPriorityFee>),
45 GetBundleTipStream(BloxrouteGeneric<BloxrouteGetBundleTipStreamResponse>),
46 RaydiumStreamReservesResponse(BloxrouteGeneric<BloxrouteRaydiumStreamReservesResponse>),
47 RaydiumStreamSwapsResponse(BloxrouteGeneric<BloxrouteRaydiumStreamSwapsResponse>),
48 RaydiumNewRaydiumPoolsResponse(BloxrouteGeneric<BloxrouteRaydiumNewRaydiumPoolsResponse>),
49 OpenbookGetMarkets(BloxrouteGenericSolana<BloxrouteOpenbookGetMarketsResponse>),
50 OpenbookGetOrderbookResponse(BloxrouteGenericSolana<BloxrouteOpenbookGetOrderbookResponse>),
51 OpenbookGetDepth(BloxrouteGenericSolana<BloxrouteOpenbookGetDepthResponse>),
52 OpenbookGetTickers(BloxrouteGenericSolana<BloxrouteOpenbookGetTickersResponse>),
53}
54
55#[derive(Serialize, Deserialize, Debug, Clone)]
56#[serde(untagged)]
57pub enum BloxrouteRequestParams<T> {
58 String(String),
59 Object(T),
60 Array(Vec<T>),
61 Boolean(T),
62 Hashmap(HashMap<String, T>),
63}
64
65#[derive(Serialize, Deserialize, Debug, Clone)]
66pub struct BloxrouteRequestPayload<T> {
67 pub id: String,
68 pub jsonrpc: String,
69 pub method: String,
70 pub params: BloxrouteRequestParams<T>,
71}