Rust SDK
openfiat-sdk (openfiat-sdks/rust) —
типизированный клиент для JSON-RPC-поверхности узла, плюс подпись
кошелька Ed25519 и поддержка моста цепочки Solana.
Установка
До 1.0 и пока не опубликован на crates.io — зависите от него как от git-зависимости, закреплённой на коммите:
[dependencies]
openfiat-sdk = { git = "https://github.com/OpenFiat-org/openfiat-sdks", rev = "<commit>" }
Быстрый старт
use openfiat_sdk::{Client, ClientConfig};
let client = Client::new(ClientConfig {
endpoint: "http://localhost:7080".to_string(),
..ClientConfig::default()
});
let version = client.get_version().await?;
Подпись и отправка записи
Каждый метод sendX принимает собственную структуру события домена плюс
Keypair — SDK строит подписанную нагрузку и отправляет её; узел никогда ничего
не конструирует и не подписывает от вашего имени:
use openfiat_sdk::wallet::Keypair;
use openfiat_oracles::events::OraclePublish;
let keypair = Keypair::generate(); // или Keypair::from_seed(...) / solana_keyfile::load(...)
let oracle_id = client.send_oracle_publish(publish, &keypair).await?;
Примеры
Каждый пример в rust/examples
работает против реального узла и покрыт интеграционным тестом в
tests/live_node.rs (запускается в CI), поэтому сломанный пример ломает сборку
так же, как сломанный тест:
basic_client.rs— постройте клиента.oracle_provider.rs— зарегистрируйтесь как поставщик оракула, опубликуйте курс.notification_provider.rs— зарегистрируйтесь как поставщик уведомлений, сообщите о доставке.trading_bot.rs— опубликуйте объявление, откройте резервирование против него.solana_transaction.rs— подпишите и отправьте реальную транзакцию Solana через мост цепочки.
Запустите любой из них против локального узла:
# терминал 1 — из openfiat-core
cargo run -p openfiat-cli -- --rpc-bind-address 127.0.0.1:7080
# терминал 2 — из openfiat-sdks/rust
cargo run --example trading_bot