Версия 0.1.3 · Команды установки используют точные версии.
Rust SDK для Telegram Stars и Premium
Установка независимого SDK Fragment Donor для Rust: username, подарки Stars/Premium и rate limit.
При покупке mnemonic кошелька и сессия/cookie Fragment передаются оператору API.
Runtime: Rust 1.99+. Устанавливайте пакет из реестра только после статуса PUBLISHED; до этого используйте сборку каталога rust из public source.
Клиент предлагает username, покупку Stars, подарок Premium и баланс с naming, принятым в Rust. Запросы используют form-urlencoded. Баланс сохраняется decimal-строкой, дополнительные поля не удаляются.
Настройте timeout и данные кошелька на backend. Повтор чтения включается явно и ограничен; покупки никогда не повторяются автоматически. Точный constructor и типы ошибок приведены в README пакета.
Установка
cargo add fragment-donor-sdk@0.1.3Пример
use fragment_donor_sdk::{Client, Config, Credentials, ErrorKind};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new(Config {
credentials: Credentials {
mnemonic: std::env::var("FRAGMENT_MNEMONIC")?,
cookie: std::env::var("FRAGMENT_COOKIE")?,
provider_key: std::env::var("TONCONSOLE_API_KEY").unwrap_or_default(),
..Credentials::default()
},
..Config::default()
})?;
let user = client.get_user_info("durov")?;
let balance = client.wallet_balance()?;
let _ = (user, balance.ton, balance.usdt_ton); // exact decimal strings
// Real-funds operations require both opt-in and one selected purchase.
if std::env::var("FRAGMENT_ALLOW_PURCHASES").as_deref() != Ok("yes") {
return Ok(());
}
let result = match std::env::var("FRAGMENT_PURCHASE_KIND").as_deref() {
Ok("stars") => client.buy_stars("durov", 50, Some("usdt_ton")),
Ok("premium") => client.buy_premium("durov", 3, Some("ton")),
_ => return Ok(()),
};
match result {
Err(error) if error.kind == ErrorKind::PurchaseOutcomeUnknown || error.outcome_unknown => {
let _ = error.details.get("tx_hash"); // reconcile manually; no replay
}
result => { let _ = result?; }
}
Ok(())
}Читайте дальше
Telegram Stars API: 429, Retry-After и flood wait · Защита данных кошелька при интеграции API · Вопросы об API и SDK Fragment Donor