@solana/client

@solana/client çalışma zamanı yüzeyini yalın tutar. Tek bir depo, tek bir RPC yığını ve bir cüzdan kaydı, farklı yardımcılara güç sağlar; böylece aynı örnek CLI'ları, betikleri veya tam kullanıcı arayüzlerini destekleyebilir. Eylemler, izleyiciler ve yardımcılar, bu tek istemci aracılığıyla önbelleği, abonelikleri ve cüzdan oturumlarını paylaşır.

Tamamen React tabanlı bir deneyim oluştururken genellikle @solana/react-hooks ile başlamak daha hızlıdır. Hooks paketi aynı istemci çalışma zamanını sarar ve hazır hook'lar sunar; böylece headless istemciye yalnızca ekstra kontrole ihtiyaç duyduğunuzda inersiniz.

Kurulum

Terminal
$
npm install @solana/client

Herhangi bir paket yöneticisi kullanabilirsiniz; istemci tarayıcılarda, worker'larda, React'te, Svelte'de veya sunucu tarafı çalışma zamanlarında çalışır.

Bir kez istemci oluşturun

Wallet Standard bağlayıcılarını seçin (otomatik keşif başlamak için en hızlı yoldur), ardından istemciyi oluşturun. Bu tek nesne depoyu, eylemleri, izleyicileri ve yardımcıları ortaya çıkarır.

import { autoDiscover, createClient } from "@solana/client";
const client = createClient({
endpoint: "https://api.devnet.solana.com",
websocketEndpoint: "wss://api.devnet.solana.com",
walletConnectors: autoDiscover()
});
await client.actions.connectWallet("wallet-standard:phantom");
const balance = await client.actions.fetchBalance("Fke...address");
console.log(balance.lamports?.toString());

İstemci deposu küme yapılandırmasını, abonelikleri, bekleyen işlemleri ve cüzdan oturumlarını takip eder. Kalıcılığa veya çoklu sekme koordinasyonuna ihtiyacınız varsa kendi Zustand deponuzu sağlayabilirsiniz.

Cüzdan orkestrasyon

Bağlayıcılar, Wallet Standard meta verilerini ve bağlanma/bağlantıyı kesme mantığını kapsüller. Yerleşik phantom(), solflare(), backpack() veya autoDiscover() yardımcılarını kaydedin ya da özel sağlayıcıları createWalletStandardConnector ile sarın. Tüm cüzdan eylemleri (bağlanma, bağlantıyı kesme, imzalama, gönderme) istemci kaydından geçer; böylece her tüketici senkronize kalır.

Eylemler, izleyiciler ve yardımcılar

  • Eylemler depoyu güncellerken yaygın RPC okuma ve yazma işlemlerini sarar (örn. fetchAccount, requestAirdrop, setCluster).
  • İzleyiciler websocket aboneliklerini çoğullar, güncellemeleri depoya akıtır ve temizlik için iptal tutamaçları verir.
  • Yardımcılar SOL transferleri, SPL token yardımcıları, imza yoklaması ve işlem havuzları gibi üst düzey akışları ortaya çıkarır.
const abortWatcher = client.watchers.watchBalance(
{ address: "Fke...address" },
(lamports) => {
console.log("live balance", lamports.toString());
}
);
// Later when the component unmounts or the flow ends
abortWatcher.abort();

İşlem yardımcı deseni

İşlem yardımcısı blockhash yenileme, ücret ödeyici çözümlemesi ve imzalamayı yönetir. Tercih ettiğiniz UX ile hazırlayabilir, inceleyebilir ve gönderebilirsiniz.

const prepared = await client.helpers.transaction.prepare({
authority: client.store.getState().wallet.session!,
instructions: [instructionA, instructionB]
});
await client.helpers.transaction.simulate(prepared, {
commitment: "processed"
});
const signature = await client.helpers.transaction.send(prepared);
console.log("submitted", signature.toString());

Önceden hazırlanmış bir akış (simülasyon artı günlükleme) için prepareAndSend kullanın veya tel formatını kendiniz aktarmadan önce imzaları manuel olarak toplamak için sign / toWire çağırın.

Solana geliştiricileri için yaygın desenler

  • Başsız durum makineleri: Kullanıcı arayüzünüzü destekleyen aynı cüzdan + RPC orkestrasyon mantığını yeniden kullanmak için istemciyi API rotaları, betikler veya çalışanlar içinde çalıştırın.
  • Gerçek zamanlı panolar: İzleyicileri (bakiyeler, hesaplar, imzalar) tercih ettiğiniz kullanıcı arayüzü kütüphanesiyle birleştirin; istemci websocket dağıtımını ve önbellek geçersiz kılmayı yönetir.
  • Özel depolar: IndexedDB/localStorage'dan hidrate etmek, durumu sunucu oturumlarına yansıtmak veya tarayıcı sekmeleri arasında koordinasyon sağlamak için kendi Zustand deponuzu enjekte edin.
  • React hook'larına köprü: Aynı çalışma zamanının üzerinde ergonomik hook'lar istediğinizde yapılandırılmış bir istemci örneğini @solana/react-hooks öğesine aktarın.
  • Test edilebilirlik: Tek istemci arayüzü birim testlerinde taklit edilebilir, bu da tarayıcı cüzdanı olmadan RPC yanıtlarını veya cüzdan oturumlarını simüle etmeyi kolaylaştırır.

Is this page helpful?

İçindekiler

Sayfayı Düzenle

Yönetici

© 2026 Solana Vakfı.
Tüm hakları saklıdır.
Bağlanın