Client Léger
Le LightClient fournit une API simplifiée pour les consommateurs légers qui n'ont besoin que des requêtes de chaîne de base et de la soumission de transactions.
Configuration
use savitri_sdk::LightClient;
let client = LightClient::new("http://localhost:8545")?;
API
// Vérification de la connexion
let connected: bool = client.is_connected().await;
// État du nœud
let health = client.health().await?;
println!("{} - {}", health.mode, health.status);
// Hauteur de bloc
let height: u64 = client.get_block_number().await?;
// Bloc par hauteur
let block = client.get_block(42).await?;
// Informations du compte
let account = client.get_account("address_hex").await?;
println!("Solde : {}, Nonce : {}", account.balance, account.nonce);
// Solde uniquement
let balance: String = client.get_balance("address_hex").await?;
// Soumettre une transaction
let result = client.send_raw_transaction("signed_tx_hex").await?;
println!("Hash TX : {}", result.tx_hash);
// Statut PoU
let pou = client.pou_local().await?;
Quand Utiliser LightClient ou RpcClient
| Fonctionnalité | LightClient | RpcClient |
|---|---|---|
| État/ping | Oui | Oui |
| Requêtes de blocs | Hauteur + par hauteur | Toutes les méthodes de bloc |
| Requêtes de compte | Solde + compte | Solde, nonce, jetons |
| Transactions | Envoi brut | Envoi brut + récupération + reçu |
| PoU | Local uniquement | Local, pairs, groupes, masternodes |
| Mempool | Non | Taille, statut, en attente |
| Jetons | Non | Infos, solde, transferts |
| Requêtes par lot | Non | Oui |
| JSON-RPC brut | Non | Oui (call_raw) |
Utilisez LightClient pour les intégrations simples. Utilisez directement RpcClient lorsque vous avez besoin de la surface API complète. Vous pouvez accéder au RpcClient interne via client.rpc() pour les opérations avancées.