kaspa_cli_lib/modules/
server.rs1use crate::imports::*;
2use kaspa_wrpc_client::parse::parse_host;
3
4#[derive(Default, Handler)]
5#[help("Set RPC server address")]
6pub struct Server;
7
8impl Server {
9 async fn main(self: Arc<Self>, ctx: &Arc<dyn Context>, argv: Vec<String>, _cmd: &str) -> Result<()> {
10 let ctx = ctx.clone().downcast_arc::<KaspaCli>()?;
11
12 if let Some(url) = argv.first() {
13 let Ok(_) = parse_host(url) else {
14 tprintln!(ctx, "Invalid host: {url}");
15 return Ok(());
16 };
17
18 ctx.wallet().settings().set(WalletSettings::Server, url).await?;
19 tprintln!(ctx, "Setting RPC server to: {url}");
20 } else {
21 let server = ctx.wallet().settings().get(WalletSettings::Server).unwrap_or_else(|| "n/a".to_string());
22 tprintln!(ctx, "Current RPC server is: {server}");
23 }
24
25 Ok(())
26 }
27}