Skip to main content
Baştan sona alloy tipleri kullanılır — Address, U256, B256, Filter, TransactionRequest, tiplenmiş bloklar, işlemler, makbuzlar ve günlükler — ve OrbitFlare’ın kendi taşıma katmanıyla gelir: yedek uç nokta, geri çekilmeli yeniden deneme ve kendi kendini onaran WebSocket abonelikleri. SDK, EVM uyumlu L2 Robinhood Chain’i hedefler ve varsayılan olarak OrbitFlare’ın üretim endpoint’lerine bağlanır.

Kurulum

Varsayılan olarak yalnızca RPC istemcisi etkindir. İhtiyacınız olanı etkinleştirin:

Alloy tipleri

Tüm adresler, hash’ler ve miktarlar alloy tipleridir. Yaygın olanlar crate kökünde yeniden dışa aktarılır (Address, U256, B256, Bytes, Filter, TransactionRequest, BlockNumberOrTag, …); crate’lerin tamamına ise orbitflare_robinhood_sdk::primitives (alloy-primitives) ve orbitflare_robinhood_sdk::rpc_types (alloy-rpc-types-eth) olarak erişilebilir.

RPC istemcisi

Tüm seçeneklerin ayarlı olduğu bir istemci:
Her şeyin makul bir varsayılanı vardır — builder varsayılan olarak üretimdeki OrbitFlare uç noktasını kullanır, bu yüzden minimal kurulum:

Builder yöntemleri

.url(url) — Birincil uç nokta. Çözümleme sırası: builder üzerindeki .url(), sonra ORBITFLARE_ROBINHOOD_RPC_URL ortam değişkeni, sonra varsayılan https://robinhood.rpc.orbitflare.com (rpc::DEFAULT_RPC_URL). .urls(&[...]) — Birincil ve tüm yedekleri tek çağrıda ayarlar. İlk eleman birincil, kalanlar yedeklerdir. .fallback_url(url) / .fallback_urls(&[...]) — Yedek uç noktalar ekler. Birincil başarısız olduğunda SDK yedekleri sırayla dener. Başarısız olan uç noktalar üstel bekleme süresiyle (10 sn, 20 sn, 40 sn, en çok 60 sn) karantinaya alınır ve süre dolduğunda otomatik olarak yeniden denenir; sağlıklı uç noktalar her zaman tercih edilir. .api_key(key) — OrbitFlare lisans anahtarınız. Ayarlanmazsa SDK ortamdan ORBITFLARE_LICENSE_KEY okur. Anahtar istek zamanında uç nokta URL’sine eklenir. .block_tag(tag) — Durum sorgularının (get_balance, call, get_code, …) kullandığı varsayılan blok etiketi. BlockNumberOrTag tipine dönüşen her şeyi alır. Varsayılan: Latest. .retry(policy) — Geçici hatalarda (5xx, 429, bağlantı kopmaları, JSON-RPC hata kodu -32005) sonraki uç noktaya geçmeden önce üstel geri çekilmeli yeniden denemeyi denetler. Retry-After başlığı taşıyan 429 yanıtlarına uyulur. .timeout(duration) — Her tekil istek için HTTP zaman aşımı.

Kullanılabilir RPC yöntemleri

Zincir durumunu okuma

Günlük filtreleri

get_logs, alloy’un Filter tipini doğrudan alır:

Kontrat çağrıları ve işlemler

call ve estimate_gas, alloy’un TransactionRequest tipini alır. İşlem göndermek için işlemi alloy ile (alloy-signer, alloy-network) oluşturup imzalayın, ardından SDK üzerinden yayınlayın:

Diğer yöntemler

request, herhangi bir RPC yöntemini ada göre çağırır — SDK JSON-RPC zarfını oluşturur, yeniden deneme ve yedek uç noktayı yönetir ve result alanını döndürür. Bu, Robinhood Chain’in bir Arbitrum Nitro ağı olarak sunduğu arb_* uzantı yöntemlerini de kapsar. request_raw ham JSON-RPC gövde dizgesi gönderir.

WebSocket istemcisi

ws özelliğini etkinleştirin. Robinhood Chain yaklaşık her 100 milisaniyede bir blok üretir; bu nedenle newHeads, Ethereum mainnet’e ve çoğu L2’ye göre çok daha hızlı tetiklenir.
Minimal:
.build() öğesinin asenkron olduğuna dikkat edin — döndürmeden önce WebSocket bağlantısını kurar. Builder; .urls(), .fallback_url(s)(), .api_key() ve .retry() yöntemlerini RPC builder ile paylaşır. WebSocket’e özgü seçenekler şunlardır: .url(url) — Birincil WebSocket uç noktası. Çözümleme sırası: .url(), sonra ORBITFLARE_ROBINHOOD_WS_URL, sonra varsayılan wss://robinhood.rpc.orbitflare.com (ws::DEFAULT_WS_URL). .ping_interval_secs(n) — SDK’nın ölü bağlantıları tespit etmek için WebSocket Ping çerçevelerini gönderme sıklığı. Varsayılan: 10. .max_missed_pongs(n) — Bağlantı ölü sayılıp yeniden bağlanılmadan önce yanıtsız kalan ping sayısı. Varsayılan: 3.

Abonelikler

Abonelikler tiplenmiştir — her biri ham JSON yerine karşılık gelen alloy tipini üretir:
Tüm abonelikler bir WsSubscription<T> döndürür. Sonraki tiplenmiş olay için .next() çağırın (None, aboneliğin kapatıldığı anlamına gelir); tiplenmemiş serde_json::Value yükü için .next_raw() kullanın.
Tüm abonelikler tek WebSocket bağlantısında çalışır ve istediğiniz zaman yeni abonelik ekleyebilirsiniz. sub.unsubscribe().await bir aboneliği açıkça kaldırır; bunu çağırmadan aboneliği düşürmek de işe yarar — SDK yetimi tespit eder ve abonelikten çıkmayı otomatik gönderir.

Yeniden bağlanma

Bağlantı koparsa arka plan görevi üstel geri çekilme ile yeniden bağlanır ve tüm etkin abonelikleri otomatik olarak yeniden abone eder. .next() çağrılarınız çalışmaya devam eder — bağlantı geri gelince olaylar sürer. Ölü bağlantılar etkin ping/pong ile tespit edilir; bu, .ping_interval_secs() ve .max_missed_pongs() ile yapılandırılabilir.

Ortam değişkenleri

Tam örnek

Bir cüzdanı okuyan, ardından yeni blokları ve ERC-20 transferlerini gerçek zamanlı takip eden bir izleme betiği:

Kaynak

SDK açık kaynaktır: github.com/orbitflare/orbitflare-robinhood-sdk-rs