Savitri SDK
savitri-sdk — официальная клиентская библиотека на Rust для взаимодействия с Savitri Network. Она предоставляет:
- RpcClient -- клиент JSON-RPC 2.0 для всех API узлов
- LightClient -- упрощённая обёртка для общих операций
- Wallet -- управление ключами Ed25519 и подпись транзакций
- ContractClient -- высокоуровневые вспомогательные функции для контрактов, оракулов и управления
- TransactionBuilder -- строитель с fluent API для создания транзакций
Установка
Добавьте в Cargo.toml:
[dependencies]
savitri-sdk = { path = "../savitri-sdk" }
tokio = { version = "1", features = ["full"] }
anyhow = "1"
Для поддержки HTTP-клиента:
savitri-sdk = { path = "../savitri-sdk", features = ["http-client"] }
Быстрый старт
use savitri_sdk::{RpcClient, Wallet, TransactionBuilder};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Connect to a node
let client = RpcClient::from_url("http://localhost:8545")?;
// Health check
let health = client.health().await?;
println!("Node: {} ({})", health.service, health.mode);
// Block height
let height = client.get_block_number().await?;
println!("Height: {}", height);
// Create a wallet
let wallet = Wallet::new();
println!("Address: {}", wallet.address());
// Check balance
let account = client.get_account(wallet.address()).await?;
println!("Balance: {} (nonce: {})", account.balance, account.nonce);
Ok(())
}
Модули
| Модуль | Описание |
|---|---|
| RPC Клиент | Полный клиент JSON-RPC 2.0 |
| Кошелёк | Генерация ключей, подпись, запросы баланса |
| Транзакции | Создание, подпись и отправка транзакций |
| Контракты | Вызовы контрактов, оракул, управление |
| Лайт-клиент | Упрощённый API для облегчённых потребителей |
Безопасность
- Принудительный HTTPS: Удалённые (не localhost) эндпоинты по умолчанию требуют HTTPS. Установите
allow_insecure: trueдля отключения (не рекомендуется). - TLS 1.2 минимум: HTTPS-соединения требуют TLS 1.2+.
- Обнуление ключей: Приватные ключи обнуляются при вызове
Wallet::drop()для предотвращения утечки памяти. - Таймаут: По умолчанию 30 секунд на запрос.
Инструменты командной строки
SDK включает три бинарных инструмента:
# Generate ed25519 keypairs
cargo run -p savitri-sdk --bin key_generator
# Sign transactions offline
cargo run -p savitri-sdk --bin transaction_signer
# Monitor node health
cargo run -p savitri-sdk --bin network_monitor