Saltar al contenido principal

Cliente Ligero

El LightClient proporciona una API simplificada para consumidores ligeros que solo necesitan consultas básicas de la cadena y envío de transacciones.

Configuración

use savitri_sdk::LightClient;

let client = LightClient::new("http://localhost:8545")?;

API

// Verificación de conexión
let connected: bool = client.is_connected().await;

// Estado
let health = client.health().await?;
println!("{} - {}", health.mode, health.status);

// Altura del bloque
let height: u64 = client.get_block_number().await?;

// Bloque por altura
let block = client.get_block(42).await?;

// Información de cuenta
let account = client.get_account("address_hex").await?;
println!("Balance: {}, Nonce: {}", account.balance, account.nonce);

// Solo el saldo
let balance: String = client.get_balance("address_hex").await?;

// Enviar transacción
let result = client.send_raw_transaction("signed_tx_hex").await?;
println!("TX hash: {}", result.tx_hash);

// Estado PoU
let pou = client.pou_local().await?;

Cuándo Usar LightClient vs RpcClient

CaracterísticaLightClientRpcClient
Estado/ping
Consultas de bloqueAltura + por alturaTodos los métodos de bloque
Consultas de cuentaSaldo + cuentaSaldo, nonce, tokens
TransaccionesEnviar en brutoEnviar en bruto + obtener + recibo
PoUSolo localLocal, pares, grupos, masternodes
MempoolNoTamaño, estado, pendientes
TokensNoInformación, saldo, transferencias
Solicitudes en loteNo
JSON-RPC sin formatoNoSí (call_raw)

Usa LightClient para integraciones simples. Usa RpcClient directamente cuando necesites toda la superficie de la API. Puedes acceder al RpcClient interno mediante client.rpc() para operaciones avanzadas.