Перейти к основному содержимому

Лайт-клиент

LightClient предоставляет упрощённый API для облегчённых потребителей, которым нужны только базовые запросы к цепочке и отправка транзакций.

Настройка

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?;

Когда использовать LightClient вместо RpcClient

ФункцияLightClientRpcClient
Проверка состояния/pingДаДа
Запросы блоковВысота + по высотеВсе методы блоков
Запросы аккаунтовБаланс + аккаунтБаланс, nonce, токены
ТранзакцииТолько отправкаОтправка + получение + квитанция
PoUТолько локальноЛокально, пиры, группы, мастерноды
МемпулНетРазмер, статус, ожидающие
ТокеныНетИнформация, баланс, переводы
Пакетные запросыНетДа
Прямой JSON-RPCНетДа (call_raw)

Используйте LightClient для простых интеграций. Используйте RpcClient напрямую, когда нужна полная поверхность API. Вы можете получить доступ к внутреннему RpcClient через client.rpc() для продвинутых операций.