轻客户端
LightClient 为只需基本链查询和交易提交的轻量级消费者提供简化 API。
初始化
use savitri_sdk::LightClient;
let client = LightClient::new("http://localhost:8545")?;
API
// 连接检查
let connected: bool = client.is_connected().await;
// 健康状态
let health = client.health().await?;
println!("{} - {}", health.mode, health.status);
// 区块高度
let height: u64 = client.get_block_number().await?;
// 按高度获取区块
let block = client.get_block(42).await?;
// 账户信息
let account = client.get_account("address_hex").await?;
println!("Balance: {}, Nonce: {}", account.balance, account.nonce);
// 仅获取余额
let balance: String = client.get_balance("address_hex").await?;
// 提交交易
let result = client.send_raw_transaction("signed_tx_hex").await?;
println!("TX hash: {}", result.tx_hash);
// PoU 状态
let pou = client.pou_local().await?;
何时使用 LightClient 与 RpcClient
| 功能 | LightClient | RpcClient |
|---|---|---|
| 健康检查/ping | 是 | 是 |
| 区块查询 | 高度 + 按高度查询 | 所有区块方法 |
| 账户查询 | 余额 + 账户 | 余额、nonce、代币 |
| 交易 | 发送原始交易 | 发送原始 + 获取 + 收据 |
| PoU | 仅本地 | 本地、节点、分组、主节点 |
| 内存池 | 否 | 大小、状态、待处理 |
| 代币 | 否 | 信息、余额、转账记录 |
| 批量请求 | 否 | 是 |
| 原始 JSON-RPC | 否 | 是(call_raw) |
简单集成场景请使用 LightClient。需要完整 API 时,请直接使用 RpcClient。您可以通过 client.rpc() 访问内部的 RpcClient 以进行高级操作。