Fragment Donor SDKManba kodi

0.1.3 versiya · O‘rnatish buyruqlari aniq versiyalarni ishlatadi.

Rust SDK: Telegram Stars va Premium

Mustaqil Fragment Donor Rust SDK’ni o‘rnatish, username, Stars/Premium va rate limit bilan ishlash.

Xarid so‘rovi wallet mnemonic va Fragment sessiya/cookie ma’lumotini API operatoriga yuboradi.

Runtime: Rust 1.99+. Paket registrda PUBLISHED bo‘lgach o‘rnating; ungacha public source ichidagi rust katalogidan build/install qiling.

Klient Rust uslubidagi naming bilan username, Stars xaridi, Premium sovg‘asi va balansni beradi. So‘rovlar form-urlencoded. Balans decimal string sifatida, qo‘shimcha maydonlar esa yo‘qolmasdan saqlanadi.

Backend’da timeout va hamyon credentiallarini sozlang. Read retry alohida yoqilib chegaralanadi; xaridlar hech qachon avtomatik qaytarilmaydi. Aniq constructor va xato turlari paket README’sida bor.

O‘rnatish

cargo add fragment-donor-sdk@0.1.3

Misol

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(())
}

Manba kodi · rust

Davom eting

Telegram Stars API’da 429, Retry-After va flood wait · API integratsiyasida hamyon credentiallarini himoyalash · Fragment Donor API va SDK haqida savollar

OpenAPI 3.0 · Postman collection