Ana içeriğe atla

Kurulum

İstemciyi oluşturma

Tüm seçenekleri ayarlanmış bir istemci:
Bunların çoğunun makul varsayılanları vardır. Minimal kurulum:
Her yöntem bir context.Context alır; bu nedenle çağrıyı sınırlamak için son tarihli bir context geçirin:

Builder yöntemleri

.URL(url) - İstekleri göndereceğiniz birincil uç nokta. Ayarlanmazsa SDK, ORBITFLARE_RPC_URL ortam değişkenine bakar.
.URLs(urls...) - Birincil ve tüm yedekleri tek çağrıda ayarlar. İlk eleman birincil, geri kalanlar yedektir.
.FallbackURL(url) - Tek bir yedek uç nokta ekler. Birden çok eklemek için birden çok kez çağırın. Birincil başarısız olduğunda SDK yedekleri sırayla dener.
.FallbackURLs(urls...) - FallbackURL ile aynı, ancak birden fazlasını birden alır.
.APIKey(key) - OrbitFlare lisans anahtarınız. Ayarlanmazsa SDK ortamdan ORBITFLARE_LICENSE_KEY değerini okur. Anahtar istek anında URL’ye eklenir, uç noktada asla saklanmaz ve loglara ya da hatalara asla yazdırılmaz.
.Commitment(level) - Tüm tiplenmiş yardımcılarda kullanılan varsayılan commitment düzeyi. Seçenekler: "processed", "confirmed", "finalized". Varsayılan "confirmed".
.Retry(policy) - SDK’nın başarısız istekleri nasıl yeniden deneyeceğini denetler. InitialDelay ilk yeniden denemeden önceki beklemedir. Multiplier her denemede gecikmeyi ölçekler. MaxDelay backoff’u sınırlar. MaxAttempts toplam yeniden deneme sayısını sınırlar (0 sonsuz demektir). Varsayılan: 100 ms başlangıç, 30 s maksimum, 2x çarpan, sonsuz deneme.
.Timeout(duration) - Her bir istek için HTTP zaman aşımı. Varsayılan 30 saniye.
.Logger(logger) - İstek yeniden denemeleri ve yedek uç nokta geçişleri için bir *slog.Logger. Ayarlanmazsa loglama ORBITFLARE_LOG ortam değişkeniyle denetlenir (trace|debug|info|warn|error|silent, varsayılan silent).

Kullanılabilir RPC yöntemleri

Tiplenmiş yardımcılar Go değerleri döndürür; diğer her şey, kendi tiplerinize çözebileceğiniz json.RawMessage döndürür.

GetSlot(ctx)

Geçerli slot numarasını döndürür.

GetBalance(ctx, address)

Bir hesabın bakiyesini lamports cinsinden döndürür.

GetAccountInfo(ctx, address)

Tam hesap verisini json.RawMessage olarak döndürür; hesap yoksa nil döner. Veri base64 kodludur.

GetMultipleAccounts(ctx, addresses)

Birden çok hesabı tek çağrıda getirir. 100’lük gruplara otomatik böler (Solana’nın istek başına limiti), böylece istediğiniz sayıda adres geçebilirsiniz.

GetLatestBlockhash(ctx)

En güncel blockhash’i ve geçerli olduğu son blok yüksekliğini döndürür.

GetTransaction(ctx, signature)

Onaylanmış bir işlemi imzasıyla getirir. Meta verilerle birlikte tam işlemi json.RawMessage olarak döndürür.

GetSignaturesForAddress(ctx, address, limit)

Bir adres için son işlem imzalarını, en yeniden başlayarak döndürür.

GetProgramAccounts(ctx, programID)

Bir programa ait tüm hesapları döndürür. Çok fazla veri dönebilir.

GetRecentPrioritizationFees(ctx, addresses)

Bir dizi hesap için son öncelik ücretlerini döndürür. Compute unit fiyatını tahmin etmek için kullanışlıdır.

SendTransaction(ctx, txBase64)

İmzalı bir işlemi ağa gönderir. base64 kodlu, serileştirilmiş bir işlem alır. İşlem imzasını döndürür.

SimulateTransaction(ctx, txBase64)

Bir işlemi göndermeden simüle eder. Logları, tüketilen compute unit’leri ve varsa hataları json.RawMessage olarak döndürür.

GetTokenAccountsByOwner(ctx, owner, mint, programID)

Bir cüzdanın token hesaplarını döndürür. Belirli bir mint veya bir token program ID’si geçin. İkisi de boş dizeyse SPL Token programı varsayılır.

GetTransactionsForAddress(ctx, address, options)

getSignaturesForAddress ve getTransaction’ı tek çağrıda birleştiren OrbitFlare’e özgü yöntem. Data dilimini ve sonraki sayfayı getirmek için isteğe bağlı bir PaginationToken içeren bir GetTransactionsResult döndürür. Dört ayrıntı düzeyini (signatures, none, accounts, full), iki yönlü sıralamayı, zaman/slot filtrelemesini, durum filtrelemesini ve token hesabı dahil etmeyi destekler. options varsayılanlar için nil olabilir.

Request(ctx, method, params)

Herhangi bir RPC yöntemini adıyla çağırın. SDK, JSON-RPC zarfını oluşturur, yeniden deneme ve yedek uç nokta geçişini yönetir ve result alanını json.RawMessage olarak döndürür.

RequestRaw(ctx, body)

Ham bir JSON-RPC gövde dizesi gönderin. Diğer her şeyle aynı yeniden deneme ve yedek uç nokta geçişi geçerlidir.

Tam örnek

Ağın durumunu kontrol eden, bir cüzdanın SOL bakiyesini getiren ve son işlemleri arayan bir program.