kabu_rpc_handler/
router.rs1use 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;
5use axum::routing::{get, post};
7use axum::Router;
8use kabu_rpc_state::AppState;
9use revm::{DatabaseCommit, DatabaseRef};
10pub 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()) .nest("/markets", router_market())
22 .nest("/flashbots", Router::new().route("/", post(flashbots))),
23 )
24 .route("/ws", get(ws_handler))
25 .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}