kabu_rpc_handler/
router.rs

1use crate::handler::blocks::latest_block;
2use crate::handler::flashbots::flashbots;
3use crate::handler::pools::{market_stats, pool, pool_quote, pools};
4use crate::handler::ws::ws_handler;
5//use crate::openapi::ApiDoc;
6use axum::routing::{get, post};
7use axum::Router;
8use kabu_rpc_state::AppState;
9use revm::{DatabaseCommit, DatabaseRef};
10//use utoipa::OpenApi;
11//use utoipa_swagger_ui::SwaggerUi;
12
13pub fn router<DB: DatabaseRef<Error = kabu_evm_db::KabuDBError> + DatabaseCommit + Sync + Send + Clone + 'static>(
14    app_state: AppState<DB>,
15) -> Router<()> {
16    Router::new()
17        .nest(
18            "/api/v1",
19            Router::new()
20                .nest("/block", router_block()) // rename to node
21                .nest("/markets", router_market())
22                .nest("/flashbots", Router::new().route("/", post(flashbots))),
23        )
24        .route("/ws", get(ws_handler))
25        //.merge(SwaggerUi::new("/swagger-ui").url("/api-docs/openapi.json", ApiDoc::openapi()))
26        .with_state(app_state)
27}
28
29pub fn router_block<DB: DatabaseRef + DatabaseCommit + Sync + Send + Clone + 'static>() -> Router<AppState<DB>> {
30    Router::new().route("/latest_block", get(latest_block))
31}
32
33pub fn router_market<DB: DatabaseRef<Error = kabu_evm_db::KabuDBError> + DatabaseCommit + Sync + Send + Clone + 'static>(
34) -> Router<AppState<DB>> {
35    Router::new()
36        .route("/pools/:address", get(pool))
37        .route("/pools/:address/quote", post(pool_quote))
38        .route("/pools", get(pools))
39        .route("/", get(market_stats))
40}