Fragment Donor SDKManba kodi

0.1.3 versiya · O‘rnatish buyruqlari aniq versiyalarni ishlatadi.

Go SDK: Telegram Stars va Premium

Mustaqil Fragment Donor Go 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: Go 1.23+. Paket registrda PUBLISHED bo‘lgach o‘rnating; ungacha public source ichidagi go katalogidan build/install qiling.

Klient Go 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

go get github.com/usnuz/fragment-donor-sdk/go@v0.1.3

Misol

package main

import (
    "context"
    "errors"
    "os"
    "time"
    donor "github.com/usnuz/fragment-donor-sdk/go"
)

func main() {
    client, err := donor.NewClient(donor.Config{
        BaseURL: donor.DefaultBaseURL,
        Timeout: 30 * time.Second,
        ConnectTimeout: 5 * time.Second,
        Credentials: donor.Credentials{
            Mnemonic: os.Getenv("FRAGMENT_MNEMONIC"),
            Cookie: os.Getenv("FRAGMENT_COOKIE"),
            WalletVersion: "auto", // auto, v5r1, v4r2, v3r2
            ProviderKey: os.Getenv("TONCONSOLE_API_KEY"), // optional provider key
        },
    })
    if err != nil { return }
    ctx := context.Background()
    user, err := client.GetUserInfo(ctx, "durov")
    _ = user
    if err != nil { return }
    balance, err := client.WalletBalance(ctx)
    _ = balance // TON and USDTTON are exact decimal strings.
    if err != nil { return }

    // Real-funds operations require both opt-in and one selected purchase.
    if os.Getenv("FRAGMENT_ALLOW_PURCHASES") != "yes" { return }
    switch os.Getenv("FRAGMENT_PURCHASE_KIND") {
    case "stars":
        _, err = client.BuyStars(ctx, "durov", 50, "usdt_ton")
    case "premium":
        _, err = client.BuyPremium(ctx, "durov", 3, "ton")
    default:
        return
    }
    var apiErr *donor.Error
    if errors.As(err, &apiErr) {
        if apiErr.OutcomeUnknown {
            _ = apiErr.Details["tx_hash"] // reconcile manually; do not repeat.
        }
        _ = apiErr.RetryAfter // communicate wait, never auto-replay purchase.
    }
}

Manba kodi · go

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