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

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