mod.rs (927B)
1 #![forbid(unsafe_code)] 2 3 use std::net::SocketAddr; 4 5 use anyhow::Result; 6 use jsonrpsee::server::{RpcModule, ServerHandle}; 7 8 use crate::app::config::RpcConfig; 9 use crate::core::Radrootsd; 10 11 mod auth; 12 mod context; 13 mod error; 14 mod params; 15 mod registry; 16 mod server; 17 18 pub mod methods; 19 pub mod nip46; 20 21 pub use context::RpcContext; 22 pub use error::RpcError; 23 pub use registry::MethodRegistry; 24 25 pub async fn start_rpc( 26 state: Radrootsd, 27 addr: SocketAddr, 28 rpc_cfg: &RpcConfig, 29 ) -> Result<ServerHandle> { 30 state.publish_proxy.config.validate()?; 31 let registry = MethodRegistry::default(); 32 let ctx = RpcContext::new(state, registry.clone()); 33 let publish_proxy_store = ctx.state.publish_proxy.store.clone(); 34 35 let mut root = RpcModule::new(ctx.clone()); 36 methods::register_all(&mut root, ctx, registry)?; 37 38 let handle = server::start_server(addr, rpc_cfg, publish_proxy_store, root).await?; 39 Ok(handle) 40 }