Passa al contenuto principale

Light Client

Il LightClient fornisce un'API semplificata per i consumatori leggeri che necessitano solo di interrogazioni di base alla catena e invio di transazioni.

Configurazione

use savitri_sdk::LightClient;

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

API

// Connection check
let connected: bool = client.is_connected().await;

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

// Block height
let height: u64 = client.get_block_number().await?;

// Block by height
let block = client.get_block(42).await?;

// Account info
let account = client.get_account("address_hex").await?;
println!("Balance: {}, Nonce: {}", account.balance, account.nonce);

// Balance only
let balance: String = client.get_balance("address_hex").await?;

// Submit transaction
let result = client.send_raw_transaction("signed_tx_hex").await?;
println!("TX hash: {}", result.tx_hash);

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

Quando Usare LightClient vs RpcClient

FunzionalitàLightClientRpcClient
Stato/ping
Interrogazioni blocchiAltezza + per altezzaTutti i metodi per blocchi
Interrogazioni accountSaldo + accountSaldo, nonce, token
TransazioniInvia rawInvia raw + ottieni + ricevuta
PoUSolo localeLocale, peer, gruppi, masternode
MempoolNoDimensione, stato, in attesa
TokenNoInfo, saldo, trasferimenti
Richieste in batchNo
JSON-RPC grezzoNoSì (call_raw)

Usa LightClient per integrazioni semplici. Usa RpcClient direttamente quando hai bisogno dell'intera superficie API. Puoi accedere all'RpcClient interno tramite client.rpc() per operazioni avanzate.